Example #1
0
 def test_upload_job_printing(self, mock_post_uri, mock_get_uri):
     mock_get_uri.return_value.status_code = 200
     mock_get_uri.return_value.json.return_value = {
         "state": {
             "text": "Printing"
         },
         "temperature": {},
     }
     with self.assertRaises(PrinterClientException) as context:
         printer = Octoprint(
             "900c73b8-1f12-4027-941a-e4b29531e8e3",
             ip="192.168.1.15",
             client_props={"connected": True},
         )
         printer.upload_and_start_job(self.file_mock.name)
     self.assertTrue("Printer is printing" in str(context.exception))
Example #2
0
 def test_upload_job_ok(self, mock_post_uri, mock_get_uri):
     mock_get_uri.return_value.status_code = 200
     mock_get_uri.return_value.json.return_value = {
         "state": {
             "text": "Operational"
         },
         "temperature": {},
     }
     mock_post_uri.return_value.status_code = 201
     mock_post_uri.return_value.json.return_value = {
         "files": {
             "local": {
                 "name": "20mm-umlaut-box",
                 "origin": "local",
                 "refs": {
                     "resource":
                     "http://example.com/api/files/local/whistle_v2.gcode",
                     "download":
                     "http://example.com/downloads/files/local/whistle_v2.gcode",
                 },
             }
         },
         "done": True,
     }
     printer = Octoprint(
         "900c73b8-1f12-4027-941a-e4b29531e8e3",
         ip="192.168.1.15",
         client_props={"connected": True},
     )
     result = printer.upload_and_start_job(self.file_mock.name)
     self.assertTrue(result)
     args, kwargs = mock_post_uri.call_args
     self.assertEqual(kwargs["data"], {"path": "karmen", "print": True})
     self.assertEqual(kwargs["files"]["file"].name, self.file_mock.name)
     self.assertEqual(kwargs["timeout"], 200)
Example #3
0
 def test_upload_job_disconnected(self, mock_post_uri, mock_get_uri):
     mock_get_uri.return_value.status_code = 200
     mock_get_uri.return_value.json.return_value = {
         "state": {
             "text": "Operational"
         },
         "temperature": {},
     }
     printer = Octoprint("192.168.1.15")
     result = printer.upload_and_start_job(self.file_mock.name)
     self.assertEqual(mock_post_uri.call_count, 0)
     self.assertFalse(result)
Example #4
0
 def test_upload_job_no_response(self, mock_post_uri, mock_get_uri):
     mock_get_uri.return_value.status_code = 200
     mock_get_uri.return_value.json.return_value = {
         "state": {
             "text": "Operational"
         },
         "temperature": {},
     }
     printer = Octoprint(
         "900c73b8-1f12-4027-941a-e4b29531e8e3",
         ip="192.168.1.15",
         client_props={"connected": True},
     )
     result = printer.upload_and_start_job(self.file_mock.name)
     self.assertFalse(result)
Example #5
0
 def test_upload_job_no_api_access(self, mock_post_uri, mock_get_uri):
     mock_get_uri.return_value.status_code = 200
     mock_get_uri.return_value.json.return_value = {
         "state": {
             "text": "Operational"
         }
     }
     mock_post_uri.return_value.status_code = 403
     printer = Octoprint(
         "900c73b8-1f12-4027-941a-e4b29531e8e3",
         ip="192.168.1.15",
         client_props={
             "connected": True,
             "api_key": "1234",
             "access_level": PrinterClientAccessLevel.UNLOCKED,
         },
     )
     self.assertEqual(mock_post_uri.call_count, 0)
     result = printer.upload_and_start_job(self.file_mock.name)
     self.assertFalse(result)
     self.assertEqual(printer.client_info.access_level,
                      PrinterClientAccessLevel.PROTECTED)
Example #6
0
 def test_upload_job_inactive_printer(self, mock_post_uri, mock_get_uri):
     printer = Octoprint("192.168.1.15")
     self.assertEqual(mock_post_uri.call_count, 0)
     result = printer.upload_and_start_job(self.file_mock.name)
     self.assertFalse(result)