Example #1
0
    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')
Example #2
0
 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))