Exemplo n.º 1
0
    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))
Exemplo n.º 2
0
    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)