def test_two_axes(): registry: Registry[Union[str, object]] = Registry(("type", TypeAxis()), ("name", SimpleAxis())) target1 = "one" registry.register(target1, object) target2 = "two" registry.register(target2, DummyA) target3 = "three" registry.register(target3, DummyA, "foo") context1 = object() assert registry.lookup(context1) == target1 context2 = DummyB() assert registry.lookup(context2) == target2 assert registry.lookup(context2, "foo") == target3 target4 = object() registry.register(target4, DummyB) assert registry.lookup(context2) == target4 assert registry.lookup(context2, "foo") == target3
def test_get_registration(): registry = Registry(("type", TypeAxis()), ("name", SimpleAxis())) registry.register("one", object) registry.register("two", DummyA, "foo") assert registry.get_registration(object) == "one" assert registry.get_registration(DummyA, "foo") == "two" assert registry.get_registration(object, "foo") is None assert registry.get_registration(DummyA) is None
def test_get_registration(self): registry = Registry(("type", TypeAxis()), ("name", SimpleAxis())) registry.register("one", object) registry.register("two", DummyA, "foo") self.assertEqual(registry.get_registration(object), "one") self.assertEqual(registry.get_registration(DummyA, "foo"), "two") self.assertEqual(registry.get_registration(object, "foo"), None) self.assertEqual(registry.get_registration(DummyA), None)
def __init__(self, argspec, params_arity): """ Initialize dispatcher with ``argspec`` of type :class:`inspect.ArgSpec` and ``params_arity`` that represent number params.""" # Check if we have enough positional arguments for number of type params if _arity(argspec) < params_arity: raise TypeError("Not enough positional arguments " "for number of type parameters provided.") self.argspec = argspec self.params_arity = params_arity axis = [("arg_%d" % n, TypeAxis()) for n in range(params_arity)] self.registry = Registry(*axis)
def test_subtyping_on_axes(): registry = Registry(("type", TypeAxis())) target1 = "one" registry.register(target1, object) target2 = "two" registry.register(target2, DummyA) target3 = "three" registry.register(target3, DummyB) assert registry.lookup(object()) == target1 assert registry.lookup(DummyA()) == target2 assert registry.lookup(DummyB()) == target3
def test_subtyping_on_axes(self): registry = Registry(("type", TypeAxis())) target1 = "one" registry.register(target1, object) target2 = "two" registry.register(target2, DummyA) target3 = "three" registry.register(target3, DummyB) self.assertEqual(registry.lookup(object()), target1) self.assertEqual(registry.lookup(DummyA()), target2) self.assertEqual(registry.lookup(DummyB()), target3)
def test_query_subtyping_on_axes(): registry = Registry(("type", TypeAxis())) target1 = "one" registry.register(target1, object) target2 = "two" registry.register(target2, DummyA) target3 = "three" registry.register(target3, DummyB) target4 = "four" registry.register(target4, int) assert list(registry.query(object())) == [target1] assert list(registry.query(DummyA())) == [target2, target1] assert list(registry.query(DummyB())) == [target3, target2, target1] assert list(registry.query(3)) == [target4, target1]
def test_two_axes(self): registry = Registry(("type", TypeAxis()), ("name", SimpleAxis())) target1 = "one" registry.register(target1, object) target2 = "two" registry.register(target2, DummyA) target3 = "three" registry.register(target3, DummyA, "foo") context1 = object() self.assertEqual(registry.lookup(context1), target1) context2 = DummyB() self.assertEqual(registry.lookup(context2), target2) self.assertEqual(registry.lookup(context2, "foo"), target3) target4 = object() registry.register(target4, DummyB) self.assertEqual(registry.lookup(context2), target4) self.assertEqual(registry.lookup(context2, "foo"), target3)
def __init__(self): axes = (("event_type", TypeAxis()), ) self.registry = Registry(*axes)
def __init__(self) -> None: axes = (("event_type", TypeAxis()), ) self.registry = Registry[HandlerSet](*axes)