Exemple #1
0
    def test_check_for_fields_in_custom_user_model(self):
        from django.contrib.auth import get_user_model

        with wiki_override_settings(WIKI_ACCOUNT_HANDLING=False,
                                    AUTH_USER_MODEL="testdata.VeryCustomUser"):
            errors = registry.run_checks(
                tags=[Tags.fields_in_custom_user_model])
            self.assertEqual(errors, [])
        with wiki_override_settings(WIKI_ACCOUNT_HANDLING=True,
                                    AUTH_USER_MODEL="testdata.VeryCustomUser"):
            errors = registry.run_checks(
                tags=[Tags.fields_in_custom_user_model])
            expected_errors = [
                Error(
                    "%s.%s.%s refers to a field that is not of type %s" % (
                        get_user_model().__module__,
                        get_user_model().__name__,
                        field_fetcher,
                        required_field_type,
                    ),
                    hint=
                    "If you have your own login/logout views, turn off settings.WIKI_ACCOUNT_HANDLING",
                    obj=get_user_model(),
                    id="wiki.%s" % error_code,
                ) for check_function_name, field_fetcher, required_field_type,
                error_code in FIELDS_IN_CUSTOM_USER_MODEL
            ]
            self.assertEqual(errors, expected_errors)
        with wiki_override_settings(WIKI_ACCOUNT_HANDLING=True):
            errors = registry.run_checks(
                tags=[Tags.fields_in_custom_user_model])
            self.assertEqual(errors, [])
Exemple #2
0
 def test_required_installed_apps(self):
     for app in REQUIRED_INSTALLED_APPS:
         with self.settings(INSTALLED_APPS=_remove(settings.INSTALLED_APPS, app[0])):
             errors = registry.run_checks(tags=[Tags.required_installed_apps])
             expected_errors = [
                 Error("needs %s in INSTALLED_APPS" % app[1], id="wiki.%s" % app[2],)
             ]
             self.assertEqual(errors, expected_errors)
Exemple #3
0
 def test_required_installed_apps(self):
     for app in REQUIRED_INSTALLED_APPS:
         with self.settings(INSTALLED_APPS=_remove(settings.INSTALLED_APPS, app[0])):
             errors = registry.run_checks(tags=[Tags.required_installed_apps])
             expected_errors = [
                 Error(
                     'needs %s in INSTALLED_APPS' % app[1],
                     id='wiki.%s' % app[2],
                 )
             ]
             self.assertEqual(errors, expected_errors)
 def test_check_for_fields_in_custom_user_model(self):
     from django.contrib.auth import get_user_model
     with wiki_override_settings(WIKI_ACCOUNT_HANDLING=False, AUTH_USER_MODEL='testdata.VeryCustomUser'):
         errors = registry.run_checks(tags=[Tags.fields_in_custom_user_model])
         self.assertEqual(errors, [])
     with wiki_override_settings(WIKI_ACCOUNT_HANDLING=True, AUTH_USER_MODEL='testdata.VeryCustomUser'):
         errors = registry.run_checks(tags=[Tags.fields_in_custom_user_model])
         expected_errors = [
             Error(
                 '%s.%s.%s refers to a field that is not of type %s' % (
                     get_user_model().__module__, get_user_model().__name__, field_fetcher, required_field_type),
                 hint='If you have your own login/logout views, turn off settings.WIKI_ACCOUNT_HANDLING',
                 obj=get_user_model(),
                 id='wiki.%s' % error_code,
             )
             for check_function_name, field_fetcher, required_field_type, error_code in FIELDS_IN_CUSTOM_USER_MODEL]
         self.assertEqual(errors, expected_errors)
     with wiki_override_settings(WIKI_ACCOUNT_HANDLING=True):
         errors = registry.run_checks(tags=[Tags.fields_in_custom_user_model])
         self.assertEqual(errors, [])
Exemple #5
0
 def test_required_installed_apps(self):
     for app in REQUIRED_INSTALLED_APPS:
         with self.modify_settings(INSTALLED_APPS={'remove': [app[0]]}):
             errors = registry.run_checks(
                 tags=[Tags.required_installed_apps])
             expected_errors = [
                 Error(
                     'needs %s in INSTALLED_APPS' % app[1],
                     id='wiki.%s' % app[2],
                 )
             ]
             self.assertEqual(errors, expected_errors)
Exemple #6
0
def test_run_checks_all_things_that_can_go_wrong(settings):
    settings.CDN_URL = "http://cdn.example.com"
    settings.APP_SERVER_URL = "http://app.example.com"
    settings.OIDC_REMOTE_AUTH_HEADER = "Y_HTTP_HEADER"
    settings.OIDC_LOGOUT_URL = None
    settings.USE_OIDC = True
    errors = run_checks()
    assert errors != []
    error_ids = [x.id for x in errors]
    assert checks.ERROR_MISCONFIGURED_CDN_URL_SLASH in error_ids
    assert checks.ERROR_MISCONFIGURED_CDN_URL_HTTPS in error_ids
    assert checks.ERROR_MISCONFIGURED_APP_SERVER_URL_SLASH in error_ids
    assert checks.ERROR_MISCONFIGURED_APP_SERVER_URL_HTTPS in error_ids
    assert checks.ERROR_MISCONFIGURED_OIDC_LOGOUT_URL in error_ids
    assert checks.WARNING_MISCONFIGURED_OIDC_REMOTE_AUTH_HEADER_PREFIX in error_ids
Exemple #7
0
 def test_required_context_processors(self):
     for context_processor in REQUIRED_CONTEXT_PROCESSORS:
         TEMPLATES = copy.deepcopy(settings.TEMPLATES)
         TEMPLATES[0]["OPTIONS"]["context_processors"] = [
             cp for cp in TEMPLATES[0]["OPTIONS"]["context_processors"]
             if cp != context_processor[0]
         ]
         with self.settings(TEMPLATES=TEMPLATES):
             errors = registry.run_checks(tags=[Tags.context_processors])
             expected_errors = [
                 Error(
                     "needs %s in TEMPLATES[*]['OPTIONS']['context_processors']"
                     % context_processor[0],
                     id="wiki.%s" % context_processor[1],
                 )
             ]
             self.assertEqual(errors, expected_errors)
Exemple #8
0
 def test_required_context_processors(self):
     for context_processor in REQUIRED_CONTEXT_PROCESSORS:
         TEMPLATES = copy.deepcopy(settings.TEMPLATES)
         TEMPLATES[0]['OPTIONS']['context_processors'] = [
             cp
             for cp in TEMPLATES[0]['OPTIONS']['context_processors']
             if cp != context_processor[0]
         ]
         with self.settings(TEMPLATES=TEMPLATES):
             errors = registry.run_checks(tags=[Tags.context_processors])
             expected_errors = [
                 Error(
                     "needs %s in TEMPLATE['OPTIONS']['context_processors']" % context_processor[0],
                     id='wiki.%s' % context_processor[1],
                 )
             ]
             self.assertEqual(errors, expected_errors)
Exemple #9
0
def test_run_checks_happy_path():
    errors = run_checks()
    assert errors == []