def register(controller_type, filename): """Register a controller in the local registry.""" if controller_type not in CONTROLLER_TYPES: print(f"controller_type must be one of {CONTROLLER_TYPES}") sys.exit(1) if not os.path.exists(filename): print(f"{filename} does not exist") sys.exit(1) registry = Registry() for name in load_data(filename): data = {"name": name, "filename": filename} registry.register_controller(controller_type, data) print(f"Registered {controller_type} {name}")
def test_registry__register_controllers(registry_fixture): registry = Registry(registry_filename=TEST_FILENAME) clear_controllers(registry) controller = DEFAULT_REGISTRY["Controllers"][CTYPE][0] registry.register_controller(CTYPE, controller) controllers = registry.list_controllers(CTYPE) assert len(controllers) == 1 # Test that the the changes are reflected with a new instance. registry2 = Registry(registry_filename=TEST_FILENAME) controllers1 = registry.list_controllers(CTYPE) controllers2 = registry2.list_controllers(CTYPE) for data1, data2 in zip(controllers1, controllers2): for field in DEFAULT_REGISTRY["Controllers"][CTYPE][0]: assert data1[field] == data2[field]
def test_registry__register_controllers(registry_fixture): registry = Registry(registry_filename=TEST_FILENAME) registry.reset_defaults() new_controller = copy.deepcopy(DEFAULT_REGISTRY["Controllers"][CTYPE][0]) new_name = new_controller["name"] + "_new" new_controller["name"] = new_name registry.register_controller(CTYPE, new_controller) # Test that the the changes are reflected with a new instance. registry2 = Registry(registry_filename=TEST_FILENAME) controllers1 = registry.list_controllers(CTYPE) controllers2 = registry2.list_controllers(CTYPE) for data1, data2 in zip(controllers1, controllers2): for field in DEFAULT_REGISTRY["Controllers"][CTYPE][0]: assert data1[field] == data2[field] registry2.unregister_controller(CTYPE, new_name) assert not registry2.is_controller_registered(CTYPE, new_name)