def test_call_two_sources(): reg = Registry() @generic def target(a, b): pass class Adapted(object): def __init__(self, alpha, beta): self.alpha = alpha self.beta = beta def foo(self): pass reg.register(target, [IAlpha, IBeta], Adapted) alpha = Alpha() beta = Beta() adapted = reg.call(target, [alpha, beta]) assert isinstance(adapted, Adapted) assert adapted.alpha is alpha assert adapted.beta is beta adapted = target(alpha, beta, lookup=reg) assert isinstance(adapted, Adapted) assert adapted.alpha is alpha assert adapted.beta is beta
def test_call_two_sources(): reg = Registry() @generic def target(a, b): pass class Adapted(object): def __init__(self, alpha, beta): self.alpha = alpha self.beta = beta def foo(self): pass reg.register(target, [IAlpha, IBeta], Adapted) alpha = Alpha() beta = Beta() adapted = reg.call(target, [alpha, beta]) assert isinstance(adapted, Adapted) assert adapted.alpha is alpha assert adapted.beta is beta adapted = target(alpha, beta, lookup=reg) assert isinstance(adapted, Adapted) assert adapted.alpha is alpha assert adapted.beta is beta
def test_call_no_source(): reg = Registry() foo = object() @generic def target(): pass def factory(): return foo reg.register(target, (), factory) assert reg.call(target, []) is foo assert target(lookup=reg) is foo
def test_call_no_source(): reg = Registry() foo = object() @generic def target(): pass def factory(): return foo reg.register(target, (), factory) assert reg.call(target, []) is foo assert target(lookup=reg) is foo
def test_call_one_source(): reg = Registry() @generic def target(obj): pass class Adapted(object): def __init__(self, context): self.context = context def foo(self): pass reg.register(target, [IAlpha], Adapted) alpha = Alpha() adapted = reg.call(target, [alpha]) assert isinstance(adapted, Adapted) assert adapted.context is alpha adapted = target(alpha, lookup=reg) assert isinstance(adapted, Adapted) assert adapted.context is alpha
def test_call_one_source(): reg = Registry() @generic def target(obj): pass class Adapted(object): def __init__(self, context): self.context = context def foo(self): pass reg.register(target, [IAlpha], Adapted) alpha = Alpha() adapted = reg.call(target, [alpha]) assert isinstance(adapted, Adapted) assert adapted.context is alpha adapted = target(alpha, lookup=reg) assert isinstance(adapted, Adapted) assert adapted.context is alpha