def test_versioning(): 'test versioning' global versions # now lets try versioning s = site.Site.saget(1) assert s.name == 'demisauce' u = user.Person.saget(1) s.name = 'demisauce2' v1 = Version.create_version(s,u,expunge=True) assert v1.version == 0 versions.append(v1.id) meta.DBSession.close() meta.DBSession() # Test that the session get() does NOT get the version with 'demisauce2' s = site.Site.saget(1) u = user.Person.saget(1) assert s.name == 'demisauce' s.name = 'demisauce3' v2 = Version.create_version(s,u,expunge=True) versions.append(v2.id) v_id = v2.id assert v2.object_id == 1 assert v2.object_type == 'site' s2 = site.Site.saget(1) v2a = s2.version_latest v2b = Version.saget(v_id) assert v2a is v2b assert v2b.id == v2a.id, "Version from version_latest should match db" assert v2b.version == 1 s = v2b.use_version(site.Site) s.save() assert s.name == 'demisauce3' s.name = 'demisauce' s.save()