Skip to content

Unable to find sanitizer called 'x.y' #13

@ehaivala

Description

@ehaivala

I have a Django 1.8 project for which I'm trying to configure python-database-sanitizer using the django-sanitized-dump wrapper. Initially I created a issue under the django-sanitized-dump project but the issue seems to be with this package instead. The rest of the text is pretty much copied from the other issue.


I've created sanitizer functions and set up the sanitizer configuration. All I get is the following ConfigurationError:

root@2e57134ba7a2:/code# database-sanitizer -c .sanitizerconfig mysql://user:password@host/database
Traceback (most recent call last):
  File "/usr/local/bin/database-sanitizer", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.5/site-packages/database_sanitizer/__main__.py", line 48, in main
    config = Configuration.from_file(args.config[0])
  File "/usr/local/lib/python3.5/site-packages/database_sanitizer/config.py", line 45, in from_file
    instance.load(config_data)
  File "/usr/local/lib/python3.5/site-packages/database_sanitizer/config.py", line 65, in load
    self.load_sanitizers(config_data)
  File "/usr/local/lib/python3.5/site-packages/database_sanitizer/config.py", line 150, in load_sanitizers
    sanitizer_callback = self.find_sanitizer(sanitizer_name)
  File "/usr/local/lib/python3.5/site-packages/database_sanitizer/config.py", line 230, in find_sanitizer
    name,
database_sanitizer.config.ConfigurationError: Unable to find sanitizer called 'user.first_name'

The (dumbed down) project structure is as follows:

foobar/
    __init__.py
    forms.py
    models.py
    urls.py
    views.py
sanitizers/
    __init__.py
    generic.py
    user.py
manage.py
.sanitizerconfig

sanitizers/generic.py

from datetime import datetime
from django.utils import timezone

def sanitize_tz_aware_datetime(value):
    dt = datetime(year=2018, month=1, day=1, hour=12, minute=0, second=0)
    return timezone.make_aware(dt)

sanitizers/user.py

from faker import Faker

fake = Faker()

def sanitize_email(value):
    return fake.email(domain='example.com')

def sanitize_first_name(value):
    return fake.first_name()

def sanitize_last_name(value):
    return fake.last_name()

def sanitize_username(value):
    return fake.user_name()

.sanitizerconfig (relevant parts)

config:
  addons: []
strategy:
  auth_user:
    date_joined: generic.tz_aware_datetime
    document: null
    email: user.email
    first_name: user.first_name
    groups: null
    id: null
    image: null
    is_active: null
    is_staff: null
    is_superuser: null
    last_login: generic.tz_aware_datetime
    last_name: user.last_name
    logentry: null
    owned_pages: null
    pagerevision: null
    password: null
    user_permissions: null
    username: user.username
    userprofile: null

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions