def test_get_invalid_error(self): with self.settings() as settings: try: settings.get(["i", "do", "not", "exist"], error_on_path=True) self.fail("Expected NoSuchSettingsPath") except octoprint.settings.NoSuchSettingsPath: pass
def test_get_invalid_error(self): with self.mocked_config(): settings = octoprint.settings.Settings() try: settings.get(["i", "do", "not", "exist"], error_on_path=True) self.fail("Expected NoSuchSettingsPath") except octoprint.settings.NoSuchSettingsPath: pass
def test_get_empty_path(self): with self.settings() as settings: self.assertIsNone(settings.get([])) try: settings.get([], error_on_path=True) self.fail("Expected NoSuchSettingsPath") except octoprint.settings.NoSuchSettingsPath: pass
def test_get_empty_path(self): with self.mocked_config(): settings = octoprint.settings.Settings() self.assertIsNone(settings.get([])) try: settings.get([], error_on_path=True) self.fail("Expected NoSuchSettingsPath") except octoprint.settings.NoSuchSettingsPath: pass
def on_api_get(self, request): settings = self._settings return jsonify(dict( alarm=self.ALARM, weightraw=self.filament_weight.last_reading, weight=(self.filament_weight.last_reading - float(settings.get(["weight_empty"]))) * float(settings.get(["weight_scale"])), force=self.filament_force.last_reading, force_min=settings.get(["force_minforce"]), force_max=settings.get(["force_maxforce"]), odometry= float(settings.get(["odometry_circumfence"])) * self.filament_odometry.accumulated_movement / 24.0 ))
def test_set_default_subtree(self): with self.settings() as settings: default = {"host": "0.0.0.0", "port": 5000} self.assertEqual( {"host": "0.0.0.0", "port": 8080}, settings.get(["server"], merged=True) ) settings.set(["server"], default) self.assertNotIn("server", settings._config) self.assertEqual(default, settings.get(["server"], merged=True))
def on_sensor_update(self): settings = self._settings self._plugin_manager.send_plugin_message(self._identifier, dict( alarm=self.ALARM, force=self.filament_force.last_reading, weightraw=self.filament_weight.last_reading, weight= "{:10.2f}".format( (float(self.filament_weight.last_reading) - float(settings.get(["weight_empty"]))) * float(settings.get(["weight_scale"]))), weight_min=settings.get(["weight_minweight"]), force_min=settings.get(["force_minforce"]), force_max=settings.get(["force_maxforce"]), odometry= "{:10.3f}".format( float(settings.get(["odometry_circumfence"])) * self.filament_odometry.accumulated_movement / (4.0*24.0) ) ))
def test_set_none(self): with self.settings() as settings: self.assertTrue("port" in settings._config["server"]) settings.set(["server", "port"], None) self.assertIs(settings.get(["server", "port"]), None)
def printer(comm, node_uuid, settings, httpretty): #pylint: disable=redefined-outer-name comm.node_uuid = node_uuid url = urljoin(settings.get(["authentise_url"]), "/printer/instance/") printer_uri = urljoin(url, "abc-123/") printer_payload = {"baud_rate": 250000, "port": "/dev/tty.derp", "uri": printer_uri, 'status': 'ONLINE', 'nozzle_temperature': 185.9, 'current_print': { 'status': 'PRINTING', 'percent_complete': 10.55, 'elapsed': 30, 'remaining': 0.4, }} httpretty.register_uri(httpretty.GET, url, body=json.dumps({"resources": [printer_payload]}), content_type='application/json') httpretty.register_uri(httpretty.GET, printer_uri, body=json.dumps(printer_payload), content_type='application/json') return {'uri':printer_uri, 'request_url':url, 'port':'/dev/tty.derp', 'baud_rate':250000}
def test_get_invalid(self): with self.mocked_config(): settings = octoprint.settings.Settings() value = settings.get(["i", "do", "not", "exist"]) self.assertIsNone(value)
def test_get_boolean(self): with self.mocked_config(): settings = octoprint.settings.Settings() value = settings.get(["devel", "virtualPrinter", "enabled"]) self.assertTrue(value)
def test_get_map(self): with self.mocked_config(): settings = octoprint.settings.Settings() data = settings.get(["devel", "virtualPrinter"]) self.assertEqual(len(data), 1) self.assertDictEqual(dict(enabled=True), data)
def test_get_list(self): with self.mocked_config(): settings = octoprint.settings.Settings() data = settings.get(["serial", "additionalPorts"]) self.assertEqual(len(data), 2) self.assertListEqual(["/dev/portA", "/dev/portB"], data)
def test_get_map(self): with self.mocked_config(): settings = octoprint.settings.Settings() data = settings.get(["devel", "virtualPrinter"]) self.assertEqual(len(data), 1) self.assertDictEqual({"enabled": True}, data)
def test_get_map_merged(self): with self.settings() as settings: data = settings.get(["devel", "virtualPrinter"], merged=True) expected = dict_merge( self.overlay["devel"]["virtualPrinter"], self.config["devel"]["virtualPrinter"], ) self.assertEqual(expected, data)
def test_set_default(self): with self.settings() as settings: self.assertEqual(8080, settings._config["server"]["port"]) settings.set(["server", "port"], 5000) self.assertNotIn("server", settings._config) self.assertEqual(5000, settings.get(["server", "port"]))
def test_get_float(self): with self.settings() as settings: expected_serial_timeout = 1.0 serial_timeout = settings.get(["serial", "timeout", "detection"]) self.assertIsNotNone(serial_timeout) self.assertEqual(serial_timeout, expected_serial_timeout)
def test_get_int(self): with self.settings() as settings: expected_server_port = 8080 server_port = settings.get(["server", "port"]) self.assertIsNotNone(server_port) self.assertEqual(server_port, expected_server_port)
def test_get(self): with self.settings() as settings: expected_api_key = "test" api_key = settings.get(["api", "key"]) self.assertIsNotNone(api_key) self.assertEqual(api_key, expected_api_key)
def test_basedir_initialization(self): with self.mocked_basedir() as basedir: # construct settings settings = octoprint.settings.Settings() # verify self.assertTrue(os.path.isdir(basedir)) self.assertTrue(os.path.isfile(os.path.join(basedir, "config.yaml"))) self.assertIsNotNone(settings.get(["api", "key"]))
def test_get_multiple_asdict(self): with self.settings() as settings: data = settings.get(["serial", ["timeout", "additionalPorts"]], asdict=True) self.assertIsInstance(data, dict) self.assertEqual(len(data), 2) self.assertTrue("timeout" in data) self.assertTrue("additionalPorts" in data)
def test_get_multiple(self): with self.settings() as settings: data = settings.get(["serial", ["timeout", "additionalPorts"]]) self.assertIsInstance(data, list) self.assertEqual(len(data), 2) self.assertIsInstance(data[0], dict) self.assertIsInstance(data[1], list)
def test_get_map_merged(self): with self.mocked_config(): settings = octoprint.settings.Settings() data = settings.get(["devel", "virtualPrinter"], merged=True) self.assertGreater(len(data), 1) self.assertDictContainsSubset( dict(enabled=True, sendWait=True, waitInterval=1.0), data)
def test_get_map_merged(self): with self.mocked_config(): settings = octoprint.settings.Settings() data = settings.get(["devel", "virtualPrinter"], merged=True) self.assertGreater(len(data), 1) test_dict = dict(enabled=True, sendWait=True, waitInterval=1.0) test_data = dict((k, v) for k, v in data.items() if k in test_dict) self.assertEqual(test_dict, test_data)
def test_get(self): with self.mocked_config(): expected_api_key = "test" settings = octoprint.settings.Settings() api_key = settings.get(["api", "key"]) self.assertIsNotNone(api_key) self.assertEqual(api_key, expected_api_key)
def test_get_int(self): with self.mocked_config(): expected_server_port = 8080 settings = octoprint.settings.Settings() server_port = settings.get(["server", "port"]) self.assertIsNotNone(server_port) self.assertEqual(server_port, expected_server_port)
def test_get_float(self): with self.mocked_config(): expected_serial_timeout = 1.0 settings = octoprint.settings.Settings() serial_timeout = settings.get(["serial", "timeout", "detection"]) self.assertIsNotNone(serial_timeout) self.assertEqual(serial_timeout, expected_serial_timeout)
def test_remove(self): with self.settings() as settings: self.assertTrue("port" in settings._config["server"]) settings.remove(["server", "port"]) self.assertFalse( "server" in settings._config and "port" in settings._config["server"] ) self.assertEqual(5000, settings.get(["server", "port"]))
def test_set_default(self): with self.mocked_config(): settings = octoprint.settings.Settings() self.assertEqual(8080, settings._config["server"]["port"]) settings.set(["server", "port"], 5000) self.assertNotIn("port", settings._config["server"]) self.assertEqual(5000, settings.get(["server", "port"]))
def test_get_map_merged(self): with self.mocked_config(): settings = octoprint.settings.Settings() data = settings.get(["devel", "virtualPrinter"], merged=True) self.assertGreater(len(data), 1) test_dict = {"enabled": True, "sendWait": True, "waitInterval": 1.0} test_data = {k: v for k, v in data.items() if k in test_dict} self.assertEqual(test_dict, test_data)
def test_remove(self): with self.mocked_config(): settings = octoprint.settings.Settings() self.assertTrue("port" in settings._config["server"]) settings.remove(["server", "port"]) self.assertFalse("port" in settings._config["server"]) self.assertEqual(5000, settings.get(["server", "port"]))
def test_get_multiple(self): with self.mocked_config(): settings = octoprint.settings.Settings() data = settings.get(["serial", ["timeout", "additionalPorts"]]) self.assertIsInstance(data, list) self.assertEqual(len(data), 2) self.assertIsInstance(data[0], dict) self.assertIsInstance(data[1], list)
def test_get_map_merged(self): with self.mocked_config(): settings = octoprint.settings.Settings() data = settings.get(["devel", "virtualPrinter"], merged=True) self.assertGreater(len(data), 1) self.assertDictContainsSubset(dict(enabled=True, sendWait=True, waitInterval=1.0), data)
def test_get_multiple_asdict(self): with self.mocked_config(): settings = octoprint.settings.Settings() data = settings.get(["serial", ["timeout", "additionalPorts"]], asdict=True) self.assertIsInstance(data, dict) self.assertEqual(len(data), 2) self.assertTrue("timeout" in data) self.assertTrue("additionalPorts" in data)
def test_set_external_modification(self): with self.mocked_config() as paths: basedir, configfile = paths settings = octoprint.settings.Settings() self.assertEqual("0.0.0.0", settings.get(["server", "host"])) # modify yaml file externally with open(configfile, "r+b") as f: config = yaml.safe_load(f) config["server"]["host"] = "127.0.0.1" with open(configfile, "w+b") as f: yaml.safe_dump(config, f) # set some value, should also reload file before setting new api key settings.set(["api", "key"], "key") # verify updated values self.assertEqual("127.0.0.1", settings.get(["server", "host"])) self.assertEqual("key", settings.get(["api", "key"]))
def test_set_external_modification(self): with self.settings() as settings: configfile = settings._configfile # Make sure the config files last modified time changes time.sleep(1.0) self.assertEqual("0.0.0.0", settings.get(["server", "host"])) # modify yaml file externally config = _load_yaml(configfile) config["server"]["host"] = "127.0.0.1" _dump_yaml(configfile, config) # set some value, should also reload file before setting new api key settings.set(["api", "key"], "key") # verify updated values self.assertEqual("127.0.0.1", settings.get(["server", "host"])) self.assertEqual("key", settings.get(["api", "key"]))
def test_get_preprocessor(self): with self.mocked_config(): config = dict() defaults = dict(test="some string") preprocessors = dict(test=lambda x: x.upper()) settings = octoprint.settings.Settings() value = settings.get(["test"], config=config, defaults=defaults, preprocessors=preprocessors) self.assertEqual("SOME STRING", value)
def claim_code_uri(settings, claim_code): #pylint: disable=redefined-outer-name return urljoin(settings.get(["authentise_url"]), "client/claim/{}/".format(claim_code))
def client_uri(settings, node_uuid): #pylint: disable=redefined-outer-name return urljoin(settings.get(["authentise_url"]), "client/{}/".format(node_uuid))
def on_after_startup(self): settings = self._settings self.filament_force = filament_pulling_sensor.filament_pulling_sensor( self, settings.get(["force_pin_data"]), settings.get(["force_pin_clk"]), settings.get(["force_pin_scale"]), settings.get(["force_pin_reference_unit"]), settings.get(["force_maxforce"]), settings.get(["force_minforce"]) ) self.filament_odometry = filament_odometry_sensor.filament_odometry_sensor(self, settings.get(["odometry_pina"]), settings.get(["odometry_pinb"]), settings.get(["odometry_min_rpm"]), settings.get(["odometry_timeout"]), settings.get(["odometry_min_reverse"]) ) self.filament_weight = filament_weight_sensor.filament_weight_sensor( self, settings.get(["weight_pin_data"]), settings.get(["weight_pin_clk"]), settings.get(["weight_pin_scale"]), settings.get(["weight_pin_reference_unit"]), settings.get(["weight_minweight"]) ) self.filament_weight.start()