def test_managed_edits(self): with revision: queen = Artist(name='Queen') queen.save() self.assertEquals(len(Artist.objects.versions(queen)), 0) prince = Artist(name='Prince') prince.save() self.assertEquals(len(Artist.objects.versions(prince)), 0) prince.name = 'The Artist Formerly Known As Prince' prince.save() self.assertEquals(len(Artist.objects.versions(prince)), 0) prince.name = 'Prince' prince.save() self.assertEquals(len(Artist.objects.versions(prince)), 0) # Finish the versioning session. # Verify that we have only commited once for all of the edits. self.assertEquals(len(Artist.objects.versions(prince)), 1) self.assertEquals(len(Artist.objects.versions(queen)), 1) # Verify that both edits to Queen and Prince were tracked in the same revision. self.assertEquals(Artist.objects.versions(prince), Artist.objects.versions(queen))
def test_revision_retrieval(self): with revision: prince = Artist(name='Prince') prince.save() first_revision = revision.latest_transactions['default'] with revision: prince.name = 'The Artist Formerly Known As Prince' prince.save() second_revision = revision.latest_transactions['default'] with revision: prince.name = 'Prince' prince.save() third_revision = revision.latest_transactions['default'] first_prince = Artist.objects.version(first_revision).get(pk=prince.pk) self.assertEquals(first_prince.name, 'Prince') self.assertEquals(first_prince._versions_revision, first_revision) second_prince = Artist.objects.version(second_revision).get(pk=prince.pk) self.assertEquals(second_prince.name, 'The Artist Formerly Known As Prince') self.assertEquals(second_prince._versions_revision, second_revision) third_prince = Artist.objects.version(third_revision).get(pk=prince.pk) self.assertEquals(third_prince.name, 'Prince') self.assertEquals(third_prince._versions_revision, third_revision)