예제 #1
0
 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)
예제 #2
0
 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,
         },
     )
예제 #3
0
 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"})
예제 #4
0
 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"})
예제 #5
0
 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,
         },
     )
예제 #6
0
 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"})
예제 #7
0
 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)