def test_reversion_delete(self): from reversion import revisions as reversion from reversion.models import Version from gdpr.utils import get_reversion_versions anon = ContactFormAnonymizer() anon.Meta.delete_reversion = True user = User(username='******') user.save() with reversion.create_revision(): form = ContactForm() form.email = CUSTOMER__EMAIL form.full_name = CUSTOMER__LAST_NAME form.save() reversion.set_user(user) with reversion.create_revision(): form.email = CUSTOMER__EMAIL2 form.save() reversion.set_user(user) with reversion.create_revision(): form.email = CUSTOMER__EMAIL3 form.save() reversion.set_user(user) versions: List[Version] = get_reversion_versions(form).order_by('id') assert_equal(versions[0].field_dict['email'], CUSTOMER__EMAIL) assert_equal(versions[1].field_dict['email'], CUSTOMER__EMAIL2) assert_equal(versions[2].field_dict['email'], CUSTOMER__EMAIL3) anon.anonymize_obj(form, base_encryption_key=self.base_encryption_key) anon_versions: List[Version] = get_reversion_versions(form).order_by( 'id') assert_equal(len(anon_versions), 0)
def test_reversion_anonymization(self): from reversion import revisions as reversion from reversion.models import Version from gdpr.utils import get_reversion_versions anon = ContactFormAnonymizer() anon.Meta.anonymize_reversion = True anon.Meta.reversible_anonymization = True user = User(username='******') user.save() with reversion.create_revision(): form = ContactForm() form.email = CUSTOMER__EMAIL form.full_name = CUSTOMER__LAST_NAME form.save() reversion.set_user(user) with reversion.create_revision(): form.email = CUSTOMER__EMAIL2 form.save() reversion.set_user(user) with reversion.create_revision(): form.email = CUSTOMER__EMAIL3 form.save() reversion.set_user(user) versions: List[Version] = get_reversion_versions(form).order_by('id') self.assertEqual(versions[0].field_dict['email'], CUSTOMER__EMAIL) self.assertEqual(versions[1].field_dict['email'], CUSTOMER__EMAIL2) self.assertEqual(versions[2].field_dict['email'], CUSTOMER__EMAIL3) anon.anonymize_obj(form, base_encryption_key=self.base_encryption_key) anon_versions: List[Version] = get_reversion_versions(form).order_by( 'id') anon_form = ContactForm.objects.get(pk=form.pk) self.assertNotEqual(anon_versions[0].field_dict['email'], CUSTOMER__EMAIL) self.assertNotEqual(anon_versions[1].field_dict['email'], CUSTOMER__EMAIL2) self.assertNotEqual(anon_versions[2].field_dict['email'], CUSTOMER__EMAIL3) self.assertNotEqual(anon_form.email, CUSTOMER__EMAIL3) anon.deanonymize_obj(anon_form, base_encryption_key=self.base_encryption_key) deanon_versions: List[Version] = get_reversion_versions(form).order_by( 'id') deanon_form = ContactForm.objects.get(pk=form.pk) self.assertEqual(deanon_versions[0].field_dict['email'], CUSTOMER__EMAIL) self.assertEqual(deanon_versions[1].field_dict['email'], CUSTOMER__EMAIL2) self.assertEqual(deanon_versions[2].field_dict['email'], CUSTOMER__EMAIL3) self.assertEqual(deanon_form.email, CUSTOMER__EMAIL3) self.assertDictEqual(versions[0].field_dict, deanon_versions[0].field_dict) self.assertDictEqual(versions[1].field_dict, deanon_versions[1].field_dict) self.assertDictEqual(versions[2].field_dict, deanon_versions[2].field_dict)