|
8 | 8 | from apps.feed.serializers import WebcamAPISerializer, EventAPISerializer |
9 | 9 | from apps.shared.tests import BaseTest |
10 | 10 | from django.conf import settings |
| 11 | +from apps.webcam.models import CameraSource |
| 12 | +from pathlib import Path |
| 13 | +import json |
11 | 14 |
|
12 | 15 | logging.getLogger().setLevel(logging.CRITICAL) |
13 | 16 |
|
@@ -245,19 +248,47 @@ def test_get_list_feed_with_params(self, mock_get): |
245 | 248 |
|
246 | 249 | class TestFeedClientWebcam(BaseTest): |
247 | 250 | """Test webcam feed methods.""" |
| 251 | + |
| 252 | + def populate_webcam_data(self, mock_data=None): |
| 253 | + for cam in mock_data['webcams']: |
| 254 | + CameraSource.objects.using('mssql').create( |
| 255 | + id=cam['id'], |
| 256 | + cam_internetname=cam['cam_internetname'], |
| 257 | + cam_internetcaption=cam['cam_internetcaption'], |
| 258 | + cam_internetcredit=cam['cam_internetcredit'], |
| 259 | + cam_internetdbc_mark=cam['cam_internetdbc_mark'], |
| 260 | + cam_locationsregion=cam['cam_locationsregion'], |
| 261 | + cam_locationshighway=cam['cam_locationshighway'], |
| 262 | + cam_controldisabled=cam['cam_controldisabled'], |
| 263 | + cam_controldisappear=cam['cam_controldisappear'], |
| 264 | + isnew=cam['isnew'], |
| 265 | + cam_maintenanceis_on_demand=cam['cam_maintenanceis_on_demand'], |
| 266 | + seq=cam['seq'] |
| 267 | + ) |
248 | 268 |
|
249 | 269 | def setUp(self): |
250 | 270 | super().setUp() |
251 | 271 | self.client = FeedClient() |
252 | 272 |
|
253 | | - @patch('apps.feed.client.httpx.get') |
254 | | - def test_get_webcam_list(self, mock_get): |
255 | | - mock_response = create_mock_response(200, {'webcams': []}) |
256 | | - mock_get.return_value = mock_response |
257 | | - |
258 | | - result = self.client.get_webcam_list() |
259 | | - self.assertIn('webcams', result) |
260 | | - |
| 273 | + def test_get_webcam_list(self): |
| 274 | + fake_cam = MagicMock() |
| 275 | + fake_cam.cam_internetname = "TestWebCam New" |
| 276 | + with patch("apps.webcam.models.CameraSource.objects.using") as mock_using: |
| 277 | + mock_qs = MagicMock() |
| 278 | + mock_qs.all.return_value = [fake_cam] |
| 279 | + mock_using.return_value = mock_qs |
| 280 | + result = self.client.get_webcam_list() |
| 281 | + self.assertEqual(len(result), 1) |
| 282 | + self.assertEqual(result[0].cam_internetname, "TestWebCam New") |
| 283 | + |
| 284 | + def test_get_webcam_list_exception(self): |
| 285 | + with patch("apps.webcam.models.CameraSource.objects.using") as mock_using: |
| 286 | + mock_using.side_effect = Exception("DB error") |
| 287 | + |
| 288 | + result = self.client.get_webcam_list() |
| 289 | + |
| 290 | + assert result == [] |
| 291 | + |
261 | 292 | @patch('apps.feed.client.FeedClient.get_single_feed') |
262 | 293 | def test_get_webcam(self, mock_get_single): |
263 | 294 | mock_get_single.return_value = {'id': 123, 'name': 'Test'} |
|
0 commit comments