def test_unicode(self): s = u'foobar' d = Definition(unicode, s) self.assertIsDefinition(d) o = dereference(d) self.assertIs(o, s)
def test_str(self): s = 'foobar' d = Definition(str, s) self.assertIsDefinition(d) o = dereference(d) self.assertIs(o, s)
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
def test_integer(self): d = Definition(int, 42) self.assertIsDefinition(d) o = dereference(d) self.assertIs(o, 42)
def test_reference(self): p = self.thetype(capture) self.assertEqual(dereference(self.thetype(p)), ((), {}))
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)
def tuple_reference(seq=()): _tuple = lambda: dereference(seq) _tuple.__reference__ = True _tuple.__repr__ = lambda self: '*' + repr(seq) return _tuple