Beispiel #1
0
    def test_unicode(self):
        s = u'foobar'
        d = Definition(unicode, s)
        self.assertIsDefinition(d)

        o = dereference(d)
        self.assertIs(o, s)
Beispiel #2
0
    def test_str(self):
        s = 'foobar'
        d = Definition(str, s)
        self.assertIsDefinition(d)

        o = dereference(d)
        self.assertIs(o, s)
Beispiel #3
0
    def _test_iterable(self, t, args, expected=None, tester=None):
        src = t(*args)
        expected = expected or copy(src)
        tester = tester or self.assertEqual

        d = Definition(t, src)
        self.assertIsDefinition(d)

        o = dereference(d)
        self.assertIsInstance(o, t)
        tester(o, expected)

        return src, o
Beispiel #4
0
    def test_integer(self):
        d = Definition(int, 42)
        self.assertIsDefinition(d)

        o = dereference(d)
        self.assertIs(o, 42)
Beispiel #5
0
 def test_reference(self):
     p = self.thetype(capture)
     self.assertEqual(dereference(self.thetype(p)), ((), {}))
Beispiel #6
0
 def test_intref(self):
     loader = self.__build_loader()
     l, d, s, f = loader.load('intref.xml')
     self.assertIs(dereference(l[0]), 42)
     self.assertIs(dereference(l[1]), 42)
Beispiel #7
0
def tuple_reference(seq=()):
    _tuple = lambda: dereference(seq)
    _tuple.__reference__ = True
    _tuple.__repr__ = lambda self: '*' + repr(seq)

    return _tuple