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))
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)
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)
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)
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)
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)