1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 __docformat__ = 'reStructuredText'
20
21 import unittest
22
23 from pytilities.delegation import delegator_factory, delegated
24 from pytilities import AttributeCollectionBase
25
26 @delegator_factory()
27 -class A(object):
30
32 self._f = self._xw = None
33 self._g = self._xr = False
34
35 @delegated("public")
36 - def f(self, a, b, c):
37 self._f = (a, b , c)
38
39 @delegated()
41 self._g = True
42
43 @delegated(modifiers='w')
44 @property
47
48 @x.setter
51
52
53 p = A._delegator_factory.get_profile('default')
54 p |= A._delegator_factory.get_profile('public')
55
56
57 -class Public(AttributeCollectionBase):
61
62
63 -class Default(AttributeCollectionBase):
71
72
73 -class MainTestCase(unittest.TestCase):
74 - def test_public(self):
75 a = A()
76 p = Public(a)
77
78
79 p.f(5, None, 3)
80 self.assertEquals(a._f, (5, None, 3))
81 a.reset()
82
83 self.assertRaises(AttributeError, lambda: p.g)
84 self.assertRaises(AttributeError, lambda: p.x)
85
86
87 d = Default(a)
88 d.f(5, None, 3)
89 self.assertEquals(a._f, (5, None, 3))
90 a.reset()
91
92 d.g()
93 self.assert_(a._g)
94 a.reset()
95
96 d.x = 2
97 self.assertEquals(a._xw, 2)
98 a.reset()
99
100 self.assertEquals(d.x, 666)
101