def test_irreversible_deanonymization(self): contact_form: ContactForm = ContactForm(email=CUSTOMER__EMAIL, full_name=CUSTOMER__LAST_NAME) contact_form.save() contact_form._anonymize_obj(fields=('__ALL__', )) assert_raises(ModelAnonymizer.IrreversibleAnonymizerException, contact_form._deanonymize_obj, fields=('__ALL__', ))
def test_contact_form(self): FULL_NAME = '%s %s' % (CUSTOMER__FIRST_NAME, CUSTOMER__LAST_NAME) self.contact_form: ContactForm = ContactForm(email=CUSTOMER__EMAIL, full_name=FULL_NAME) self.contact_form.save() self.contact_form._anonymize_obj() anon_contact_form: ContactForm = ContactForm.objects.get( pk=self.contact_form.pk) assert_not_equal(anon_contact_form.email, CUSTOMER__EMAIL) self.assertAnonymizedDataExists(anon_contact_form, 'email') assert_not_equal(anon_contact_form.full_name, FULL_NAME) self.assertAnonymizedDataExists(anon_contact_form, 'full_name')
def test_generic_relation_anonymizer(self): contact_form: ContactForm = ContactForm(email=CUSTOMER__EMAIL, full_name=CUSTOMER__LAST_NAME) contact_form.save() note: Note = Note(note='Test message') note.content_object = contact_form note.save() note._anonymize_obj(fields=(('contact_form', '__ALL__'), ), base_encryption_key=self.base_encryption_key) anon_contact_form: ContactForm = ContactForm.objects.get( pk=contact_form.pk) assert_not_equal(anon_contact_form.email, CUSTOMER__EMAIL) self.assertAnonymizedDataExists(anon_contact_form, 'email') assert_not_equal(anon_contact_form.full_name, CUSTOMER__LAST_NAME) self.assertAnonymizedDataExists(anon_contact_form, 'full_name')
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)