示例#1
0
def test_make_proxy():
    ip = IProperty(getter=True)
    ip.get = MethodType(lambda s, o: False, ip)

    pm = _ProxyManager()
    ip_p = pm.make_proxy(ip, WeakRef(),
                         {'get': lambda s, o: True, 'toto': 'test'})

    assert not ip.get(None)
    assert ip_p.get(None)
    assert ip_p.toto == 'test'
示例#2
0
def test_make_proxy():
    ip = IProperty(getter=True)
    ip.get = MethodType(lambda s, o: False, ip)

    pm = _ProxyManager()
    ip_p = pm.make_proxy(ip, WeakRef(), {
        'get': lambda s, o: True,
        'toto': 'test'
    })

    assert not ip.get(None)
    assert ip_p.get(None)
    assert ip_p.toto == 'test'
def test_set_check():

    class Tester(FalseDriver):
        t1 = True
        t2 = False

    p = IProperty(True, checks=(None, '{t1} is True; {t2} == False'))
    p.name = 'test'
    p.get = MethodType(lambda s, o: None, p)
    p.set = MethodType(lambda s, o, v: v, p)
    t = Tester()

    assert not hasattr(p, 'get_check')
    assert hasattr(p, 'set_check')

    p._get(t)
    p._set(t, 1)
    t.t2 = True

    with raises(AssertionError):
        p._set(t, 1)
    try:
        p._set(t, 1)
    except AssertionError as e:
        m = 'Setting test assertion t2 == False failed, values are : t2=True'
        assert e.message == m
def test_cloning():
    p = IProperty(True, True)

    def aux(self, obj):
        return self
    m = MethodType(aux, p)
    p.get = m
    p.val = 1
    p.__doc__ = 'test'

    p2 = p.clone()
    assert p2 is not p
    assert p2.val == 1
    assert p2.get.__func__ == aux
    assert p2.get(None) != p.get(None)
    assert p2.__doc__ == p.__doc__
def test_set_check():
    class Tester(FalseDriver):
        t1 = True
        t2 = False

    p = IProperty(True, checks=(None, '{t1} is True; {t2} == False'))
    p.name = 'test'
    p.get = MethodType(lambda s, o: None, p)
    p.set = MethodType(lambda s, o, v: v, p)
    t = Tester()

    assert not hasattr(p, 'get_check')
    assert hasattr(p, 'set_check')

    p._get(t)
    p._set(t, 1)
    t.t2 = True

    with raises(AssertionError):
        p._set(t, 1)
    try:
        p._set(t, 1)
    except AssertionError as e:
        m = 'Setting test assertion t2 == False failed, values are : t2=True'
        assert e.message == m
def test_cloning():
    p = IProperty(True, True)

    def aux(self, obj):
        return self

    m = MethodType(aux, p)
    p.get = m
    p.val = 1
    p.__doc__ = 'test'

    p2 = p.clone()
    assert p2 is not p
    assert p2.val == 1
    assert p2.get.__func__ == aux
    assert p2.get(None) != p.get(None)
    assert p2.__doc__ == p.__doc__
    def setup(self):
        p = IProperty()
        p.name = 'test'

        def getter(self, obj):
            return 'Test'

        p.get = MethodType(getter, p)
        self.p = p
    def setup(self):
        p = IProperty()
        p.name = 'test'

        def getter(self, obj):
            return 'Test'

        p.get = MethodType(getter, p)
        self.p = p
示例#9
0
def test_obsolete():
    ip = IProperty(getter=True)
    ip.get = MethodType(lambda s, o: False, ip)

    pm = _ProxyManager()
    ip_p = pm.make_proxy(ip, WeakRef(),
                         {'get': lambda s, o: True, 'toto': 'test'})
    assert not ip_p.obsolete

    ip_p.unpatch(['get'])
    assert not ip_p.obsolete

    ip_p.unpatch(['toto'])
    assert ip_p.obsolete
示例#10
0
def test_obsolete():
    ip = IProperty(getter=True)
    ip.get = MethodType(lambda s, o: False, ip)

    pm = _ProxyManager()
    ip_p = pm.make_proxy(ip, WeakRef(), {
        'get': lambda s, o: True,
        'toto': 'test'
    })
    assert not ip_p.obsolete

    ip_p.unpatch(['get'])
    assert not ip_p.obsolete

    ip_p.unpatch(['toto'])
    assert ip_p.obsolete