def test_create_single_namespace(): test_registry = catalogue.create("test") assert catalogue.REGISTRY == {} @test_registry.register("a") def a(): pass def b(): pass test_registry.register("b", func=b) items = test_registry.get_all() assert len(items) == 2 assert items["a"] == a assert items["b"] == b assert catalogue.check_exists("test", "a") assert catalogue.check_exists("test", "b") assert catalogue._get(("test", "a")) == a assert catalogue._get(("test", "b")) == b with pytest.raises(TypeError): # The decorator only accepts one argument @test_registry.register("x", "y") def x(): pass
def test_create_multi_namespace(): test_registry = catalogue.create("x", "y") @test_registry.register("z") def z(): pass items = test_registry.get_all() assert len(items) == 1 assert items["z"] == z assert catalogue.check_exists("x", "y", "z") assert catalogue._get(("x", "y", "z")) == z
def test_get_set(): catalogue._set(("a", "b", "c"), "test") assert len(catalogue.REGISTRY) == 1 assert ("a", "b", "c") in catalogue.REGISTRY assert catalogue.check_exists("a", "b", "c") assert catalogue.REGISTRY[("a", "b", "c")] == "test" assert catalogue._get(("a", "b", "c")) == "test" with pytest.raises(catalogue.RegistryError): catalogue._get(("a", "b", "d")) with pytest.raises(catalogue.RegistryError): catalogue._get(("a", "b", "c", "d")) catalogue._set(("x", "y", "z1"), "test1") catalogue._set(("x", "y", "z2"), "test2") assert catalogue._remove(("a", "b", "c")) == "test" catalogue._set(("x", "y2"), "test3") with pytest.raises(catalogue.RegistryError): catalogue._remove(("x", "y")) assert catalogue._remove(("x", "y", "z2")) == "test2"