def pytest_configure(config):
    from django.conf import settings

    settings.configure(
        DEBUG_PROPAGATE_EXCEPTIONS=True,
        DATABASES={
            "default": {"ENGINE": "django.db.backends.sqlite3", "NAME": ":memory:"},
            "secondary": {"ENGINE": "django.db.backends.sqlite3", "NAME": ":memory:"},
        },
        SITE_ID=1,
        SECRET_KEY="not very secret in tests",
        USE_I18N=True,
        USE_L10N=True,
        STATIC_URL="/static/",
        ROOT_URLCONF="tests.urls",
        TEMPLATES=[
            {
                "BACKEND": "django.template.backends.django.DjangoTemplates",
                "APP_DIRS": True,
                "OPTIONS": {
                    "debug": True,  # We want template errors to raise
                },
            },
        ],
        MIDDLEWARE=(
            "django.middleware.common.CommonMiddleware",
            "django.contrib.sessions.middleware.SessionMiddleware",
            "django.contrib.auth.middleware.AuthenticationMiddleware",
            "django.contrib.messages.middleware.MessageMiddleware",
        ),
        INSTALLED_APPS=(
            "django.contrib.admin",
            "django.contrib.auth",
            "django.contrib.contenttypes",
            "django.contrib.sessions",
            "django.contrib.sites",
            "django.contrib.staticfiles",
            "phonenumber_field",
            "graphene_django",
            "graphene_django_phonenumber",
            "tests",
        ),
        PASSWORD_HASHERS=("django.contrib.auth.hashers.MD5PasswordHasher",),
        GRAPHENE={"SCHEMA": "tests.schema.schema"},
    )

    region = config.getoption("--phone-number-region")
    if region:
        validate_region(region)
        settings.PHONENUMBER_DB_FORMAT = "NATIONAL"
        settings.PHONENUMBER_DEFAULT_REGION = region

    django.setup()
    def __init__(self, *args, region=None, **kwargs):
        super().__init__(*args, **kwargs)
        self.widget.input_type = "tel"

        validate_region(region)
        self.region = region

        if "invalid" not in self.error_messages:
            if region:
                number = phonenumbers.example_number(region)
                example_number = to_python(number).as_national
                # Translators: {example_number} is a national phone number.
                error_message = _(
                    "Enter a valid phone number (e.g. {example_number}) "
                    "or a number with an international call prefix.")
            else:
                example_number = "+12125552368"  # Ghostbusters
                # Translators: {example_number} is an international phone number.
                error_message = _(
                    "Enter a valid phone number (e.g. {example_number}).")
            self.error_messages["invalid"] = format_lazy(
                error_message, example_number=example_number)
Ejemplo n.º 3
0
 def _check_region(self):
     try:
         validate_region(self.region)
     except ValueError as e:
         return [checks.Error(force_text(e), obj=self)]
     return []
 def _check_region(self):
     try:
         validate_region(self.region)
     except ValueError as e:
         return [checks.Error(force_text(e), obj=self)]
     return []
Ejemplo n.º 5
0
 def __init__(self, *args, **kwargs):
     self.region = kwargs.pop("region", None)
     validate_region(self.region)
     super(PhoneNumberField, self).__init__(*args, **kwargs)
     self.widget.input_type = "tel"