예제 #1
0
 def test_deactivate_non_200_responding_printer(self, mock_get_uri):
     mock_get_uri.return_value.status_code = 404
     printer = Octoprint("192.168.1.15")
     printer.sniff()
     self.assertEqual(printer.client.connected, False)
     self.assertEqual(printer.client.version, {})
     self.assertEqual(printer.client.read_only, False)
예제 #2
0
 def test_403_not_octoprint(self, mock_get_uri):
     mock_get_uri.return_value.status_code = 403
     printer = Octoprint("192.168.1.15")
     printer.sniff()
     self.assertEqual(printer.client.connected, False)
     self.assertEqual(printer.client.read_only, False)
     self.assertEqual(printer.client.version, {})
예제 #3
0
 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("192.168.1.15")
     printer.sniff()
     self.assertEqual(printer.client.connected, True)
     self.assertEqual(printer.client.version, {"text": "OctoPrint"})
     self.assertEqual(printer.client.read_only, False)
예제 #4
0
 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("192.168.1.15")
     printer.sniff()
     self.assertEqual(printer.client.connected, False)
     self.assertEqual(printer.client.version, {"random": "field"})
     self.assertEqual(printer.client.read_only, False)
예제 #5
0
 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("192.168.1.15")
     printer.sniff()
     self.assertEqual(printer.client.connected, False)
     self.assertEqual(printer.client.version, {})
     self.assertEqual(printer.client.read_only, False)
예제 #6
0
    def test_access_protected_octoprint(self, mock_get_uri):
        class Response:
            def __init__(self, status_code, contents):
                self.status_code = status_code
                self.contents = contents

            def json(self):
                return {"text": "something"}

        def mock_call(ip, **kwargs):
            if "settings" in kwargs["endpoint"]:
                return Response(200, "")
            return Response(403, "")

        mock_get_uri.side_effect = mock_call

        printer = Octoprint("192.168.1.15")
        printer.sniff()
        self.assertEqual(printer.client.connected, True)
        self.assertEqual(printer.client.read_only, True)
        self.assertEqual(printer.client.version, {})
예제 #7
0
 def test_deactivate_non_responding_printer(self, mock_get_uri):
     printer = Octoprint("192.168.1.15")
     self.assertFalse(printer.client.connected)
     printer.sniff()
     self.assertEqual(printer.client.connected, False)
     self.assertEqual(printer.client.version, {})