def test_anonymise_deconstruct__deconstructs(self): string, imports = self.serialize(gdpr_assist.ANONYMISE( models.SET_NULL)) self.assertEqual( string, "gdpr_assist.ANONYMISE(django.db.models.deletion.SET_NULL)") self.serialize_round_trip(gdpr_assist.ANONYMISE(models.SET_NULL))
class ForeignKeyToUnregisteredModel(models.Model): chars = models.CharField(max_length=255, blank=True) target = models.ForeignKey( "PrivateUnregisteredTargetModel", null=True, blank=True, on_delete=gdpr_assist.ANONYMISE(models.SET_NULL), related_name="foreignkey", ) class PrivacyMeta: fields = ["chars"]
class OneToOneFieldModel(models.Model): chars = models.CharField(max_length=255, blank=True) target = models.OneToOneField( "PrivateTargetModel", null=True, blank=True, on_delete=gdpr_assist.ANONYMISE(models.SET_NULL), related_name="onetoonefield", ) class PrivacyMeta: fields = ["chars"]
class ForeignKeyModel(models.Model): chars = models.CharField(max_length=255, blank=True) target = models.ForeignKey( 'PrivateTargetModel', null=True, blank=True, on_delete=gdpr_assist.ANONYMISE(models.SET_NULL), related_name='foreignkey', ) class PrivacyMeta: fields = ['chars']
class ForeignKeyToCanNotAnonymisedModel(models.Model): chars = models.CharField(max_length=255, blank=True) target = models.ForeignKey( "PrivateTargetCanNotAnonymiseModel", null=True, blank=True, on_delete=gdpr_assist.ANONYMISE(models.SET_NULL), related_name="foreignkey", ) class PrivacyMeta: fields = ["chars"] can_anonymise = False
class Like(models.Model, Activity): user = models.ForeignKey(User, verbose_name='uzytkownicy', on_delete=gdpr_assist.ANONYMISE(models.SET_NULL)) created_at = models.DateTimeField(auto_now_add=True) content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) object_id = models.PositiveIntegerField() content_object = GenericForeignKey() @property def activity_actor_attr(self): return self.user
def test_register_on_delete_anonymise__finds_target(self): TargetMockModel = mock.MagicMock() mock_field = mock.MagicMock(spec=models.ForeignKey) mock_field.remote_field = mock.MagicMock() mock_field.remote_field.on_delete = gdpr_assist.ANONYMISE(None) mock_field.related_model = TargetMockModel MockModel = mock.MagicMock() MockModel._meta.get_fields.return_value = [mock_field] registry.models[MockModel] = None self.app_config.register_on_delete_anonymise() self.assertEqual(registry.watching_on_delete, [TargetMockModel])
def test_validate_on_delete_anonymise__not_registered__raises_exception( self): mock_field = mock.MagicMock(spec=models.ForeignKey) mock_field.name = "sample_field" mock_field.remote_field = mock.MagicMock() mock_field.remote_field.on_delete = gdpr_assist.ANONYMISE(None) MockModel = mock.MagicMock() MockModel._meta.get_fields.return_value = [mock_field] MockModel._meta.app_label = "test" MockModel._meta.object_name = "Sample" with mock.patch.object(apps, "get_models"): apps.get_models.return_value = [MockModel] with self.assertRaises(ValueError) as cm: self.app_config.validate_on_delete_anonymise() self.assertEqual( ("Relationship test.Sample.sample_field set to anonymise on " "delete, but model is not registered with gdpr-assist"), str(cm.exception), )
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name="HealthRecord", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("anonymised", models.BooleanField(default=False)), ("notes", models.CharField(max_length=255)), ], ), migrations.CreateModel( name="MailingListLog", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("anonymised", models.BooleanField(default=False)), ("email", models.EmailField(max_length=254)), ("sent_at", models.DateTimeField()), ], ), migrations.CreateModel( name="Person", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("anonymised", models.BooleanField(default=False)), ("name", models.CharField(max_length=255)), ("email", models.EmailField(max_length=254)), ], options={"verbose_name_plural": "People"}, ), migrations.CreateModel( name="PersonProfile", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("anonymised", models.BooleanField(default=False)), ("age", models.IntegerField(blank=True, null=True)), ("address", models.TextField(blank=True)), ("has_children", models.BooleanField(null=True)), ( "person", models.ForeignKey( blank=True, null=True, on_delete=gdpr_assist.ANONYMISE( django.db.models.deletion.SET_NULL), to="example.Person", ), ), ], ), migrations.AddField( model_name="healthrecord", name="person", field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="example.Person"), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] run_before = [("gdpr_assist", "0002_privacyanonymised")] operations = [ migrations.CreateModel( name="FirstSearchModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(max_length=255)), ("email", models.EmailField(max_length=254)), ], ), migrations.CreateModel( name="ForeignKeyModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(blank=True, max_length=255)), ], ), migrations.CreateModel( name="ForeignKeyToUnregisteredModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(blank=True, max_length=255)), ], ), migrations.CreateModel( name="ModelWithoutPrivacyMeta", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(max_length=255)), ("email", models.EmailField(max_length=254)), ], ), migrations.CreateModel( name="ModelWithPrivacyMeta", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(max_length=255)), ("email", models.EmailField(max_length=254)), ], ), migrations.CreateModel( name="OneToOneFieldModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(blank=True, max_length=255)), ], ), migrations.CreateModel( name="PrivateTargetModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(blank=True, max_length=255)), ], ), migrations.CreateModel( name="PrivateUnregisteredTargetModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(blank=True, max_length=255)), ], ), migrations.CreateModel( name="SecondSearchModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(max_length=255)), ("email", models.EmailField(max_length=254)), ], ), migrations.CreateModel( name="TargetModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(blank=True, max_length=255)), ], ), migrations.CreateModel( name="TestModelForbiddenForAutoField", fields=[("id", models.AutoField(primary_key=True, serialize=False))], ), migrations.CreateModel( name="TestModelForbiddenForManyToManyField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "field", models.ManyToManyField( related_name="_testmodelforbiddenformanytomanyfield_field_+", to="gdpr_assist_tests_app.TargetModel", ), ), ], ), migrations.CreateModel( name="TestModelForbiddenForUnknownCustomField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "field", tests.gdpr_assist_tests_app.models.UnknownCustomField( max_length=255 ), ), ], ), migrations.CreateModel( name="TestModelForBigIntegerField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.BigIntegerField()), ], ), migrations.CreateModel( name="TestModelForBinaryField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.BinaryField()), ], ), migrations.CreateModel( name="TestModelForBooleanField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.BooleanField()), ], ), migrations.CreateModel( name="TestModelForCharField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.CharField(max_length=255)), ], ), migrations.CreateModel( name="TestModelForDateField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.DateField()), ], ), migrations.CreateModel( name="TestModelForDateTimeField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.DateTimeField()), ], ), migrations.CreateModel( name="TestModelForDecimalField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.DecimalField(decimal_places=2, max_digits=7)), ], ), migrations.CreateModel( name="TestModelForDurationField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.DurationField()), ], ), migrations.CreateModel( name="TestModelForEmailField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.EmailField(max_length=254)), ], ), migrations.CreateModel( name="TestModelForFileField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.FileField(upload_to="")), ], ), migrations.CreateModel( name="TestModelForFilePathField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.FilePathField()), ], ), migrations.CreateModel( name="TestModelForFloatField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.FloatField()), ], ), migrations.CreateModel( name="TestModelForForeignKey", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "field", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="+", to="gdpr_assist_tests_app.TargetModel", ), ), ], ), migrations.CreateModel( name="TestModelForGenericIPAddressField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.GenericIPAddressField()), ], ), migrations.CreateModel( name="TestModelForImageField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.ImageField(upload_to="")), ], ), migrations.CreateModel( name="TestModelForIntegerField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.IntegerField()), ], ), migrations.CreateModel( name="TestModelForKnownCustomField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "field", tests.gdpr_assist_tests_app.models.KnownCustomField(max_length=255), ), ], ), migrations.CreateModel( name="TestModelForNullableBigIntegerField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.BigIntegerField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableBinaryField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.BinaryField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableCharField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.CharField(blank=True, max_length=255)), ], ), migrations.CreateModel( name="TestModelForNullableDateField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.DateField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableDateTimeField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.DateTimeField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableDecimalField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "field", models.DecimalField( blank=True, decimal_places=2, max_digits=7, null=True ), ), ], ), migrations.CreateModel( name="TestModelForNullableDurationField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.DurationField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableEmailField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.EmailField(blank=True, max_length=254, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableFileField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.FileField(blank=True, null=True, upload_to="")), ], ), migrations.CreateModel( name="TestModelForNullableFilePathField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.FilePathField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableFloatField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.FloatField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableForeignKey", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "field", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name="+", to="gdpr_assist_tests_app.TargetModel", ), ), ], ), migrations.CreateModel( name="TestModelForNullableGenericIPAddressField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.GenericIPAddressField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableImageField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.ImageField(blank=True, null=True, upload_to="")), ], ), migrations.CreateModel( name="TestModelForNullableIntegerField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.IntegerField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableNullBooleanField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.NullBooleanField()), ], ), migrations.CreateModel( name="TestModelForNullableOneToOneField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "field", models.OneToOneField( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name="+", to="gdpr_assist_tests_app.TargetModel", ), ), ], ), migrations.CreateModel( name="TestModelForNullablePositiveIntegerField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.PositiveIntegerField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullablePositiveSmallIntegerField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.PositiveSmallIntegerField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableSlugField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.SlugField(blank=True)), ], ), migrations.CreateModel( name="TestModelForNullableSmallIntegerField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.SmallIntegerField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableTextField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.TextField(blank=True)), ], ), migrations.CreateModel( name="TestModelForNullableTimeField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.TimeField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableURLField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.URLField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullableUUIDField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.UUIDField(blank=True, null=True)), ], ), migrations.CreateModel( name="TestModelForNullBooleanField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.NullBooleanField()), ], ), migrations.CreateModel( name="TestModelForOneToOneField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "field", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, related_name="+", to="gdpr_assist_tests_app.TargetModel", ), ), ], ), migrations.CreateModel( name="TestModelForPositiveIntegerField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.PositiveIntegerField()), ], ), migrations.CreateModel( name="TestModelForPositiveSmallIntegerField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.PositiveSmallIntegerField()), ], ), migrations.CreateModel( name="TestModelForSlugField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.SlugField()), ], ), migrations.CreateModel( name="TestModelForSmallIntegerField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.SmallIntegerField()), ], ), migrations.CreateModel( name="TestModelForTextField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.TextField()), ], ), migrations.CreateModel( name="TestModelForTimeField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.TimeField()), ], ), migrations.CreateModel( name="TestModelForURLField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.URLField()), ], ), migrations.CreateModel( name="TestModelForUUIDField", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.UUIDField()), ], ), migrations.CreateModel( name="TestModelForUUIDFieldUnique", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("field", models.UUIDField(unique=True)), ], ), migrations.CreateModel( name="ThirdSearchModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(max_length=255)), ("email", models.EmailField(max_length=254)), ], ), migrations.CreateModel( name="ForeignKeyToCanNotAnonymisedModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(blank=True, max_length=255)), ], ), migrations.CreateModel( name="ForthSearchModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(max_length=255)), ("email", models.EmailField(max_length=254)), ], ), migrations.CreateModel( name="ModelWithPrivacyMetaCanNotAnonymise", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(max_length=255)), ("email", models.EmailField(max_length=254)), ], ), migrations.CreateModel( name="PrivateTargetCanNotAnonymiseModel", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("chars", models.CharField(blank=True, max_length=255)), ], ), migrations.AddField( model_name="onetoonefieldmodel", name="target", field=models.OneToOneField( blank=True, null=True, on_delete=gdpr_assist.ANONYMISE(django.db.models.deletion.SET_NULL), related_name="onetoonefield", to="gdpr_assist_tests_app.PrivateTargetModel", ), ), migrations.AddField( model_name="foreignkeytounregisteredmodel", name="target", field=models.ForeignKey( blank=True, null=True, on_delete=gdpr_assist.ANONYMISE(django.db.models.deletion.SET_NULL), related_name="foreignkey", to="gdpr_assist_tests_app.PrivateUnregisteredTargetModel", ), ), migrations.AddField( model_name="foreignkeymodel", name="target", field=models.ForeignKey( blank=True, null=True, on_delete=gdpr_assist.ANONYMISE(django.db.models.deletion.SET_NULL), related_name="foreignkey", to="gdpr_assist_tests_app.PrivateTargetModel", ), ), migrations.AddField( model_name="foreignkeytocannotanonymisedmodel", name="target", field=models.ForeignKey( blank=True, null=True, on_delete=gdpr_assist.ANONYMISE(django.db.models.deletion.SET_NULL), related_name="foreignkey", to="gdpr_assist_tests_app.PrivateTargetCanNotAnonymiseModel", ), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='HealthRecord', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('anonymised', models.BooleanField(default=False)), ('notes', models.CharField(max_length=255)), ], ), migrations.CreateModel( name='MailingListLog', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('anonymised', models.BooleanField(default=False)), ('email', models.EmailField(max_length=254)), ('sent_at', models.DateTimeField()), ], ), migrations.CreateModel( name='Person', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('anonymised', models.BooleanField(default=False)), ('name', models.CharField(max_length=255)), ('email', models.EmailField(max_length=254)), ], options={ 'verbose_name_plural': 'People', }, ), migrations.CreateModel( name='PersonProfile', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('anonymised', models.BooleanField(default=False)), ('age', models.IntegerField(blank=True, null=True)), ('address', models.TextField(blank=True)), ('has_children', models.NullBooleanField()), ('person', models.ForeignKey(blank=True, null=True, on_delete=gdpr_assist.ANONYMISE( django.db.models.deletion.SET_NULL), to='example.Person')), ], ), migrations.AddField( model_name='healthrecord', name='person', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to='example.Person'), ), ]
def test_anonymise_action__protect__raises_error(self): with self.assertRaises(ValueError) as cm: gdpr_assist.ANONYMISE(models.PROTECT) self.assertEqual('Cannot ANONYMISE(PROTECT)', str(cm.exception))
def test_anonymise_action__cascade__raises_error(self): with self.assertRaises(ValueError) as cm: gdpr_assist.ANONYMISE(models.CASCADE) self.assertEqual('Cannot ANONYMISE(CASCADE)', str(cm.exception))
def test_anonymise_action__set_default__initialises(self): action = gdpr_assist.ANONYMISE(models.SET_DEFAULT) self.assertIsInstance(action, gdpr_assist.ANONYMISE)
def test_anonymise_action__set_null__initialises(self): action = gdpr_assist.ANONYMISE(models.SET_NULL) self.assertIsInstance(action, gdpr_assist.ANONYMISE)