def test_webcam_disconnect(self, mock_get_uri): printer = Octoprint( "900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15", client_props={"connected": True}, ) self.assertTrue(printer.client_info.connected) printer.webcam() self.assertFalse(printer.client_info.connected)
def test_webcam_absolute_url(self, mock_get_uri): mock_get_uri.return_value.status_code = 200 mock_get_uri.return_value.json.return_value = { "webcam": { "flipH": True, "flipV": True, "rotate90": False, "streamUrl": "http://1.2.3.4/webcam/?action=stream", "snapshotUrl": "http://1.2.3.4/?action=snapshot", "webcamEnabled": True, } } printer = Octoprint( "900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15", client_props={"connected": True}, ) result = printer.webcam() self.assertEqual( result, { "message": "OK", "stream": "http://1.2.3.4/webcam/?action=stream", "snapshot": "http://1.2.3.4/?action=snapshot", "flipHorizontal": True, "flipVertical": True, "rotate90": False, }, )
def test_webcam_no_response(self, mock_get_uri): printer = Octoprint( "900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15", client_props={"connected": True}, ) result = printer.webcam() self.assertEqual(result, {"message": "Webcam not accessible"})
def test_webcam_malformed_json(self, mock_get_uri): mock_get_uri.return_value.status_code = 200 mock_get_uri.return_value.json.side_effect = json.decoder.JSONDecodeError( "msg", "aa", 123) printer = Octoprint( "900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15", client_props={"connected": True}, ) result = printer.webcam() self.assertEqual(result, {"message": "Cannot decode JSON"})
def test_webcam_snapshot_local_hostname_url(self, mock_get_uri): mock_get_uri.return_value.status_code = 200 mock_get_uri.return_value.json.return_value = { "webcam": { "bitrate": "5000k", "ffmpegPath": "/usr/bin/ffmpeg", "ffmpegThreads": 1, "flipH": True, "flipV": True, "rotate90": False, "snapshotSslValidation": True, "snapshotTimeout": 5, "snapshotUrl": "http://localhost:8080/?action=snapshot", "streamRatio": "4:3", "streamTimeout": 5, "streamUrl": "/webcam/?action=stream", "timelapseEnabled": True, "watermark": True, "webcamEnabled": True, } } printer = Octoprint( "900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15", port=1234, client_props={"connected": True}, ) result = printer.webcam() self.assertEqual( result, { "message": "OK", "stream": "http://192.168.1.15:1234/webcam/?action=stream", "snapshot": "http://192.168.1.15:8080/?action=snapshot", "flipHorizontal": True, "flipVertical": True, "rotate90": False, }, )
def test_webcam_inactive_printer(self, mock_get_uri): printer = Octoprint("900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15") self.assertEqual(mock_get_uri.call_count, 0) result = printer.webcam() self.assertEqual(result, {"message": "Webcam not accessible"})
def test_webcam_disconnected(self, mock_get_uri): printer = Octoprint("900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15") printer.webcam() self.assertEqual(mock_get_uri.call_count, 0)