def test_play_last_video(self, mock): """Test ArloCamera.play_last_video.""" arlo = self.load_arlo(mock) camera = arlo.cameras[0] last_video_url = camera.last_video.video_url response_body = open_fixture("last_image.jpg", binary=True) mock.get(last_video_url, body=response_body) video = camera.play_last_video() self.assertTrue(video)
def test_camera_properties(self, mock): """Test ArloCamera properties.""" arlo = self.load_arlo(mock) cameras = arlo.cameras basestation = arlo.base_stations[0] basestation.update() self.assertEqual(len(cameras), 2) for camera in cameras: camera.update() self.assertTrue(camera.__repr__().startswith("<ArloCamera:")) self.assertIsNone(arlo.refresh_attributes(camera)) self.assertIsInstance(camera, ArloCamera) self.assertTrue(camera.device_type, "camera") self.assertTrue(camera.user_id, USERID) self.assertEqual(camera.hw_version, "H7") self.assertEqual(camera.timezone, "America/New_York") self.assertEqual(camera.user_role, "ADMIN") self.assertTrue(len(camera.captured_today), 1) self.assertIsNotNone(camera.properties) self.assertEqual(camera.base_station, basestation) if camera.name == "Front Door": self.assertTrue(camera.device_id, "48B14CAAAAAAA") self.assertEqual(camera.unique_id, "235-48B14CAAAAAAA") self.assertEqual(camera.unseen_videos, 39) self.assertEqual(camera.parent_id, "48B14CBBBBBBB") self.assertEqual(camera.xcloud_id, "1005-123-999999") self.assertEqual(camera.serial_number, camera.device_id) self.assertEqual(camera.battery_level, 77) self.assertEqual(camera.signal_strength, 3) self.assertEqual(camera.brightness, 0) self.assertEqual(camera.mirror_state, 0) self.assertEqual(camera.flip_state, 0) self.assertEqual(camera.powersave_mode, 2) self.assertTrue(camera.is_camera_connected) self.assertEqual(camera.motion_detection_sensitivity, 80) image_url = camera._attrs.get("presignedLastImageUrl") response_body = open_fixture("last_image.jpg", binary=True) mock.get(image_url, body=response_body) self.assertEqual( camera.last_image, load_fixture("last_image.jpg", binary=True) ) videos = load_fixture_json("pyarlo_videos.json") last_video_url = videos["data"][-1]["presignedContentUrl"] self.assertEqual(camera.last_video.video_url, last_video_url) if camera.name == "Patio": self.assertTrue(camera.model_id, "VMC3030") self.assertEqual(camera.unique_id, "999-123456_48B14C1299999") self.assertEqual(camera.unseen_videos, 233)