Ejemplo n.º 1
0
    def test_backup_delta_created(self):
        draw = self.create()
        assert not draw.results.all()
        draw.schedule_toss(NOW)
        assert self.raffle_count() == 1

        with tempfile.NamedTemporaryFile() as dump_file:
            backup.serialize_updated_delta(open(dump_file.name, "w"),
                                           since=NOW - ONE_DAY)

            self.purge()
            assert self.raffle_count() == 0

            backup.deserialize_draws(open(dump_file.name))
            assert self.raffle_count() == 1

        with tempfile.NamedTemporaryFile() as dump_file:
            backup.serialize_updated_delta(open(dump_file.name, "w"),
                                           since=NOW + ONE_DAY)

            self.purge()
            assert self.raffle_count() == 0

            backup.deserialize_draws(open(dump_file.name))
            assert self.raffle_count() == 0
Ejemplo n.º 2
0
    def test_backup_delta_override(self):
        draw = self.create()
        draw.schedule_toss(NOW)
        with freeze_time(NOW + ONE_DAY):
            draw.save()

        with tempfile.NamedTemporaryFile(
        ) as dump_file1, tempfile.NamedTemporaryFile() as dump_file2:
            backup.serialize_updated_delta(open(dump_file1.name, "w"),
                                           since=NOW)
            draw.schedule_toss(NOW)
            draw.save()
            backup.serialize_updated_delta(open(dump_file2.name, "w"),
                                           since=NOW)
            self.purge()
            assert self.raffle_count() == 0

            backup.deserialize_draws(open(dump_file1.name))
            assert self.raffle_count() == 1
            draw.refresh_from_db()
            assert len(draw.results.all()) == 1

            backup.deserialize_draws(open(dump_file2.name))
            assert self.raffle_count() == 1
            draw.refresh_from_db()
            assert len(draw.results.all()) == 2
Ejemplo n.º 3
0
    def test_backup_delta_updated(self):
        draw = self.create()
        assert not draw.results.all()
        draw.schedule_toss(NOW)
        with freeze_time(NOW + ONE_DAY):
            draw.save()
        assert self.raffle_count() == 1

        SecretSantaResult(source="Mario", target="David").save()
        Payment(draw=draw).save()

        with tempfile.NamedTemporaryFile() as dump_file:
            backup.serialize_updated_delta(open(dump_file.name, "w"),
                                           since=NOW)

            self.purge()
            assert self.raffle_count() == 0

            backup.deserialize_draws(open(dump_file.name))
            assert self.raffle_count() == 1

        with tempfile.NamedTemporaryFile() as dump_file:
            backup.serialize_updated_delta(open(dump_file.name, "w"),
                                           since=NOW + 2 * ONE_DAY)

            self.purge()
            assert self.raffle_count() == 0

            backup.deserialize_draws(open(dump_file.name))
            assert self.raffle_count() == 0
Ejemplo n.º 4
0
    def test_backup_secret_santa(self):
        SecretSantaResult(source="Mario", target="David").save()
        assert SecretSantaResult.objects.count() == 1

        with tempfile.NamedTemporaryFile() as dump_file:
            backup.serialize_public_draws(open(dump_file.name, "w"))
            self.purge()
            assert SecretSantaResult.objects.count() == 0

            backup.deserialize_draws(open(dump_file.name))
            assert SecretSantaResult.objects.count() == 1
Ejemplo n.º 5
0
    def test_past_draw_is_not_backedup(self):
        draw = self.create()
        assert not draw.results.all()
        draw.schedule_toss(NOW - dt.timedelta(days=11))
        assert draw.results.all()
        assert self.raffle_count() == 1

        with tempfile.NamedTemporaryFile() as dump_file:
            backup.serialize_public_draws(open(dump_file.name, "w"))

            self.purge()
            assert self.raffle_count() == 0

            backup.deserialize_draws(open(dump_file.name))
            assert self.raffle_count() == 0