def test_clone(self): pk = PrimaryKey(table='eggs',key='spam',family='bacon') ppkk = pk.clone() self.assert_(repr(pk) == repr(ppkk)) for k in ('table', 'key', 'family'): self.assert_(getattr(pk, k) == getattr(ppkk, k)) # Changes override base keys, but don't change them. _pk = pk.clone(key='sausage') self.assert_(_pk.key == 'sausage') self.assert_(pk.key == 'spam') _pk = pk.clone(supercol='sausage', superkey='tomato') self.assert_(_pk.supercol == 'sausage' and _pk.superkey == 'tomato') self.assertRaises(AttributeError, _pk.__getattr__, 'sopdfj') self.assert_(hasattr(pk, 'supercol')) self.assert_(hasattr(pk, 'key')) # Changes to the base propagate to cloned PKs. pk.table = 'beans' self.assert_(_pk.table == 'beans') __pk = _pk.clone() self.assert_(__pk.table == 'beans') pk.table = 'tomato' self.assert_(__pk.table == 'tomato')
def test_unicode(self): pk = PrimaryKey(table='eggs', key='spam', family='bacon') x = pk.__unicode__() self.assert_(type(x) is unicode) self.assert_(str(x) == str(pk))