示例#1
0
def test_BasicPropertyDescriptor__delete__():
    class Foo(object):
        _property_values = dict(foo=0)

    f = Foo()
    d1 = pd.BasicPropertyDescriptor("foo", f)
    d2 = pd.BasicPropertyDescriptor("bar", f)
    d1.__delete__(f)
    assert f._property_values == {}
    d2.__delete__(f)
    assert f._property_values == {}
示例#2
0
    def test___str__(self):
        class Foo(object):
            pass

        f = Foo()
        d = bcpd.BasicPropertyDescriptor("foo", f)
        assert str(d) == str(f)
示例#3
0
 def test___set__improper(self):
     class Foo(object): pass
     f = Foo()
     d = bcpd.BasicPropertyDescriptor("foo", f)
     with pytest.raises(RuntimeError) as e:
         d.__set__("junk", None)
     assert str(e).endswith("Cannot set a property value 'foo' on a str instance before HasProps.__init__")
示例#4
0
 def test___get__improper(self):
     class Foo(object): pass
     f = Foo()
     d = bcpd.BasicPropertyDescriptor("foo", f)
     with pytest.raises(ValueError) as e:
         d.__get__(None, None)
     assert str(e).endswith("both 'obj' and 'owner' are None, don't know what to do")
示例#5
0
    def test_has_ref(self):
        class Foo(object):
            pass

        f = Foo()
        f.has_ref = "stuff"
        d = bcpd.BasicPropertyDescriptor("foo", f)
        assert d.has_ref == "stuff"
示例#6
0
    def test_readonly(self):
        class Foo(object):
            pass

        f = Foo()
        f.readonly = "stuff"
        d = bcpd.BasicPropertyDescriptor("foo", f)
        assert d.readonly == "stuff"
示例#7
0
    def test_serialized(self):
        class Foo(object):
            pass

        f = Foo()
        f.serialized = "stuff"
        d = bcpd.BasicPropertyDescriptor("foo", f)
        assert d.serialized == "stuff"
示例#8
0
    def test__trigger(self, mock_trigger):
        class Foo(object):
            _property_values = dict(foo=10, bar=20)
        class Match(object):
            def matches(*args, **kw): return True
        class NoMatch(object):
            def matches(*args, **kw): return False
        m = Match()
        nm = NoMatch()
        d1 = bcpd.BasicPropertyDescriptor("foo", m)
        d2 = bcpd.BasicPropertyDescriptor("bar", nm)

        d1.trigger_if_changed(Foo, "junk")
        assert not mock_trigger.called

        d2.trigger_if_changed(Foo, "junk")
        assert mock_trigger.called
示例#9
0
 def test___init__(self):
     class Foo(object):
         '''doc'''
         pass
     f = Foo()
     d = bcpd.BasicPropertyDescriptor("foo", f)
     assert d.name == "foo"
     assert d.property == f
     assert d.__doc__ == f.__doc__
示例#10
0
def test_BasicPropertyDescriptor__delete__():
    class Foo(object):
        _property_values = dict(foo=0)
        _unstable_default_values = dict(bar=[10])

    f = Foo()
    d1 = pd.BasicPropertyDescriptor("foo", f)
    d2 = pd.BasicPropertyDescriptor("bar", f)
    d3 = pd.BasicPropertyDescriptor("baz", f)
    d1.__delete__(f)
    assert f._property_values == {}
    assert f._unstable_default_values == dict(bar=[10])
    d2.__delete__(f)
    assert f._property_values == {}
    assert f._unstable_default_values == {}
    d3.__delete__(f)
    assert f._property_values == {}
    assert f._unstable_default_values == {}
示例#11
0
 def test_class_default(self):
     result = {}
     class Foo(object):
         def themed_default(*args, **kw):
             result['called'] = True
     f = Foo()
     f.readonly = "stuff"
     d = bcpd.BasicPropertyDescriptor("foo", f)
     d.class_default(d)
     assert result['called']