def test_increment(self): dnn = 1000000 rev = 100 dn = DatasetNumber(dnn, rev) self.assertEqual('d000004c9201C', str(dn)) dn2 = ObjectNumber.increment(dn) self.assertEqual(101, dn2.revision) dn3 = ObjectNumber.increment(dn2) self.assertEqual(102, dn3.revision) tn = TableNumber(dn3, 1) self.assertEqual(102, tn.revision) self.assertEqual('t000004c920101E', str(tn)) tn2 = ObjectNumber.increment(tn) self.assertEqual(103, tn2.revision)
def incver(o, prop_names): """Increment the version numbers of a set of properties and return a new object""" from ambry.identity import ObjectNumber d = {} for p in o.__mapper__.attrs: v = getattr(o, p.key) if v is None: d[p.key] = None elif p.key in prop_names: d[p.key] = str(ObjectNumber.increment(v)) else: if not hasattr(v, '__mapper__'): # Only copy values, never objects d[p.key] = v return o.__class__(**d)