def test_deactivate_non_responding_printer(self, mock_get_uri): printer = Octoprint("900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15") self.assertFalse(printer.client_info.connected) printer.sniff() self.assertEqual(printer.client_info.connected, False) self.assertEqual(printer.client_info.version, {})
def test_deactivate_non_200_responding_printer(self, mock_get_uri): mock_get_uri.return_value.status_code = 404 printer = Octoprint("900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15") printer.sniff() self.assertEqual(printer.client_info.connected, False) self.assertEqual(printer.client_info.version, {}) self.assertEqual(printer.client_info.access_level, PrinterClientAccessLevel.UNKNOWN)
def test_access_protected_octoprint_forcelogin(self, mock_get_uri): mock_get_uri.return_value.status_code = 403 printer = Octoprint("900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15") printer.sniff() self.assertEqual(printer.client_info.connected, True) self.assertEqual(printer.client_info.access_level, PrinterClientAccessLevel.PROTECTED) self.assertEqual(printer.client_info.version, {})
def test_no_crash_on_different_response(self, mock_get_uri): mock_get_uri.return_value.status_code = 200 mock_get_uri.return_value.json.return_value = {"random": "field"} printer = Octoprint("900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15") printer.sniff() self.assertEqual(printer.client_info.connected, False) self.assertEqual(printer.client_info.version, {"random": "field"}) self.assertEqual(printer.client_info.access_level, PrinterClientAccessLevel.UNKNOWN)
def test_deactivate_no_data_responding_printer(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") printer.sniff() self.assertEqual(printer.client_info.connected, False) self.assertEqual(printer.client_info.version, {}) self.assertEqual(printer.client_info.access_level, PrinterClientAccessLevel.UNKNOWN)
def test_activate_responding_printer(self, mock_get_uri): mock_get_uri.return_value.status_code = 200 mock_get_uri.return_value.json.return_value = {"text": "OctoPrint"} printer = Octoprint("900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15", protocol="https") printer.sniff() mock_get_uri.assert_called_with("https://192.168.1.15/api/version", timeout=2) self.assertEqual(printer.client_info.connected, True) self.assertEqual(printer.client_info.version, {"text": "OctoPrint"}) self.assertEqual(printer.client_info.access_level, PrinterClientAccessLevel.UNLOCKED)
def test_access_protected_not_octoprint(self, mock_get_uri): def mock_call(uri, **kwargs): if "settings" in uri: return Response(404) return Response(403) mock_get_uri.side_effect = mock_call printer = Octoprint("900c73b8-1f12-4027-941a-e4b29531e8e3", ip="192.168.1.15") printer.sniff() self.assertEqual(printer.client_info.connected, False) self.assertEqual(printer.client_info.access_level, PrinterClientAccessLevel.UNKNOWN) self.assertEqual(printer.client_info.version, {})