Exemple #1
0
def test_adapter_two_sources():
    reg = Registry()

    @implements(ITarget)
    class Adapted(object):
        def __init__(self, alpha, beta):
            self.alpha = alpha
            self.beta = beta

    reg.register([IAlpha, IBeta], ITarget, '', Adapted)

    alpha = Alpha()
    beta = Beta()
    adapted = reg.adapt([alpha, beta], ITarget, '')

    assert isinstance(adapted, Adapted)
    assert adapted.alpha is alpha
    assert adapted.beta is beta

    adapted = ITarget(alpha, beta, lookup=reg)
    assert isinstance(adapted, Adapted)
    assert adapted.alpha is alpha
    assert adapted.beta is beta

    adapted = ITarget.adapt(alpha, beta, lookup=reg)
    assert isinstance(adapted, Adapted)
    assert adapted.alpha is alpha
    assert adapted.beta is beta
Exemple #2
0
def test_adapter_two_sources():
    reg = Registry()

    @implements(ITarget)
    class Adapted(object):
        def __init__(self, alpha, beta):
            self.alpha = alpha
            self.beta = beta

    reg.register([IAlpha, IBeta], ITarget, '', Adapted)

    alpha = Alpha()
    beta = Beta()
    adapted = reg.adapt([alpha, beta], ITarget, '')

    assert isinstance(adapted, Adapted)
    assert adapted.alpha is alpha
    assert adapted.beta is beta

    adapted = ITarget(alpha, beta, lookup=reg)
    assert isinstance(adapted, Adapted)
    assert adapted.alpha is alpha
    assert adapted.beta is beta

    adapted = ITarget.adapt(alpha, beta, lookup=reg)
    assert isinstance(adapted, Adapted)
    assert adapted.alpha is alpha
    assert adapted.beta is beta
Exemple #3
0
def test_adapter_to_itself():
    reg = Registry()

    alpha = Alpha()

    @implements(IAlpha)
    class Adapter(object):
        def __init__(self, context):
            self.context = context

    # behavior without any registration; we get the object back
    assert reg.adapt([alpha], IAlpha, '') is alpha
    assert IAlpha(alpha, lookup=reg) is alpha
    # it works even without registry
    assert IAlpha(alpha) is alpha
    
    # behavior is the same with registration
    reg.register([IAlpha], IAlpha, '', Adapter)
    assert reg.adapt([alpha], IAlpha, '') is alpha
    assert IAlpha(alpha, lookup=reg) is alpha
    assert IAlpha(alpha) is alpha
Exemple #4
0
def test_adapter_no_source():
    reg = Registry()

    foo = object()
    def factory():
        return foo
    
    reg.register((), ITarget, '', factory)

    assert reg.adapt([], ITarget, '') is foo
    assert ITarget.adapt(lookup=reg) is foo
    assert ITarget(lookup=reg) is foo
Exemple #5
0
def test_adapter_to_itself():
    reg = Registry()
    alpha = Alpha()

    @implements(IAlpha)
    class Adapter(object):
        def __init__(self, context):
            self.context = context

    # behavior without any registration; we get the object back
    assert reg.adapt([alpha], IAlpha, '') is alpha
    assert IAlpha(alpha, lookup=reg) is alpha

    # it works even without registry
    assert IAlpha(alpha) is alpha

    # behavior is the same with registration
    reg.register([IAlpha], IAlpha, '', Adapter)
    assert reg.adapt([alpha], IAlpha, '') is alpha
    assert IAlpha(alpha, lookup=reg) is alpha
    assert IAlpha(alpha) is alpha
Exemple #6
0
def test_adapter_no_source():
    reg = Registry()

    foo = object()

    def factory():
        return foo

    reg.register((), ITarget, '', factory)

    assert reg.adapt([], ITarget, '') is foo
    assert ITarget.adapt(lookup=reg) is foo
    assert ITarget(lookup=reg) is foo
Exemple #7
0
def test_adapter_one_source():
    reg = Registry()

    @implements(ITarget)
    class Adapted(object):
        def __init__(self, context):
            self.context = context
    
    reg.register([IAlpha], ITarget, '', Adapted)
    
    alpha = Alpha()
    adapted = reg.adapt([alpha], ITarget, '')
    assert isinstance(adapted, Adapted)
    assert adapted.context is alpha
    adapted = ITarget(alpha, lookup=reg)
    assert isinstance(adapted, Adapted)
    assert adapted.context is alpha
    adapted = ITarget.adapt(alpha, lookup=reg)
    assert isinstance(adapted, Adapted)
    assert adapted.context is alpha
Exemple #8
0
def test_adapter_one_source():
    reg = Registry()

    @implements(ITarget)
    class Adapted(object):
        def __init__(self, context):
            self.context = context

    reg.register([IAlpha], ITarget, '', Adapted)

    alpha = Alpha()
    adapted = reg.adapt([alpha], ITarget, '')
    assert isinstance(adapted, Adapted)
    assert adapted.context is alpha
    adapted = ITarget(alpha, lookup=reg)
    assert isinstance(adapted, Adapted)
    assert adapted.context is alpha
    adapted = ITarget.adapt(alpha, lookup=reg)
    assert isinstance(adapted, Adapted)
    assert adapted.context is alpha