diff options
| author | Marc Tamlyn <marc.tamlyn@gmail.com> | 2014-01-14 15:43:27 +0000 |
|---|---|---|
| committer | Marc Tamlyn <marc.tamlyn@gmail.com> | 2014-01-14 15:43:27 +0000 |
| commit | 2607fa901699916c4825f145fa8a84f49b8524ff (patch) | |
| tree | e211144ca488e24b1b00deda973b5f6bea482843 /tests/view_tests | |
| parent | ac8d0a48157c4a53f971cf2450cb6c8ee6c05f36 (diff) | |
Fixed #21774 -- Isolate all test urls from eachother.
This (nearly) completes the work to isolate all the test modules from
each other. This is now more important as importing models from another
module will case PendingDeprecationWarnings if those modules are not in
INSTALLED_APPS. The only remaining obvious dependencies are:
- d.c.auth depends on d.c.admin (because of the is_admin flag to some
views), but this is not so important and d.c.admin is in
always_installed_apps
- test_client_regress depends on test_client. Eventually these should
become a single module, as the split serves no useful purpose.
Diffstat (limited to 'tests/view_tests')
| -rw-r--r-- | tests/view_tests/models.py | 2 | ||||
| -rw-r--r-- | tests/view_tests/tests/test_debug.py | 17 | ||||
| -rw-r--r-- | tests/view_tests/tests/test_defaults.py | 17 | ||||
| -rw-r--r-- | tests/view_tests/tests/test_i18n.py | 33 | ||||
| -rw-r--r-- | tests/view_tests/tests/test_static.py | 17 |
5 files changed, 46 insertions, 40 deletions
diff --git a/tests/view_tests/models.py b/tests/view_tests/models.py index f2707b1796..cb45d915f3 100644 --- a/tests/view_tests/models.py +++ b/tests/view_tests/models.py @@ -14,7 +14,7 @@ class Author(models.Model): return self.name def get_absolute_url(self): - return '/views/authors/%s/' % self.id + return '/authors/%s/' % self.id @python_2_unicode_compatible diff --git a/tests/view_tests/tests/test_debug.py b/tests/view_tests/tests/test_debug.py index ca08f3cce9..44e70347bd 100644 --- a/tests/view_tests/tests/test_debug.py +++ b/tests/view_tests/tests/test_debug.py @@ -49,7 +49,7 @@ class DebugViewTests(TestCase): # Ensure no 403.html template exists to test the default case. setup_test_template_loader({}) try: - response = self.client.get('/views/raises403/') + response = self.client.get('/raises403/') self.assertContains(response, '<h1>403 Forbidden</h1>', status_code=403) finally: restore_template_loaders() @@ -60,13 +60,13 @@ class DebugViewTests(TestCase): {'403.html': 'This is a test template for a 403 Forbidden error.'} ) try: - response = self.client.get('/views/raises403/') + response = self.client.get('/raises403/') self.assertContains(response, 'test template', status_code=403) finally: restore_template_loaders() def test_404(self): - response = self.client.get('/views/raises404/') + response = self.client.get('/raises404/') self.assertEqual(response.status_code, 404) def test_view_exceptions(self): @@ -79,7 +79,7 @@ class DebugViewTests(TestCase): Numeric IDs and fancy traceback context blocks line numbers shouldn't be localized. """ with self.settings(DEBUG=True, USE_L10N=True): - response = self.client.get('/views/raises500/') + response = self.client.get('/raises500/') # We look for a HTML fragment of the form # '<div class="context" id="c38123208">', not '<div class="context" id="c38,123,208"' self.assertContains(response, '<div class="context" id="', status_code=500) @@ -518,6 +518,7 @@ class ExceptionReporterFilterTests(TestCase, ExceptionReportTestMixin): Ensure that sensitive information can be filtered out of error reports. Refs #14614. """ + urls = 'view_tests.urls' rf = RequestFactory() def test_non_sensitive_request(self): @@ -640,7 +641,7 @@ class ExceptionReporterFilterTests(TestCase, ExceptionReportTestMixin): def callable_setting(): return "This should not be displayed" with self.settings(DEBUG=True, FOOBAR=callable_setting): - response = self.client.get('/views/raises500/') + response = self.client.get('/raises500/') self.assertNotContains(response, "This should not be displayed", status_code=500) def test_dict_setting_with_non_str_key(self): @@ -649,7 +650,7 @@ class ExceptionReporterFilterTests(TestCase, ExceptionReportTestMixin): debug page (#12744). """ with self.settings(DEBUG=True, FOOBAR={42: None}): - response = self.client.get('/views/raises500/') + response = self.client.get('/raises500/') self.assertContains(response, 'FOOBAR', status_code=500) def test_sensitive_settings(self): @@ -665,7 +666,7 @@ class ExceptionReporterFilterTests(TestCase, ExceptionReportTestMixin): ] for setting in sensitive_settings: with self.settings(DEBUG=True, **{setting: "should not be displayed"}): - response = self.client.get('/views/raises500/') + response = self.client.get('/raises500/') self.assertNotContains(response, 'should not be displayed', status_code=500) def test_settings_with_sensitive_keys(self): @@ -685,7 +686,7 @@ class ExceptionReporterFilterTests(TestCase, ExceptionReportTestMixin): 'recursive': {setting: "should not be displayed"}, } with self.settings(DEBUG=True, FOOBAR=FOOBAR): - response = self.client.get('/views/raises500/') + response = self.client.get('/raises500/') self.assertNotContains(response, 'should not be displayed', status_code=500) diff --git a/tests/view_tests/tests/test_defaults.py b/tests/view_tests/tests/test_defaults.py index 128fb7cb07..38a11dfcb1 100644 --- a/tests/view_tests/tests/test_defaults.py +++ b/tests/view_tests/tests/test_defaults.py @@ -9,9 +9,10 @@ from ..models import UrlArticle class DefaultsTests(TestCase): """Test django views in django/views/defaults.py""" + urls = 'view_tests.urls' fixtures = ['testdata.json'] - non_existing_urls = ['/views/non_existing_url/', # this is in urls.py - '/views/other_non_existing_url/'] # this NOT in urls.py + non_existing_urls = ['/non_existing_url/', # this is in urls.py + '/other_non_existing_url/'] # this NOT in urls.py def test_page_not_found(self): "A 404 status is returned by the page_not_found view" @@ -32,7 +33,7 @@ class DefaultsTests(TestCase): def test_server_error(self): "The server_error view raises a 500 status" - response = self.client.get('/views/server_error/') + response = self.client.get('/server_error/') self.assertEqual(response.status_code, 500) def test_custom_templates(self): @@ -45,7 +46,7 @@ class DefaultsTests(TestCase): '500.html': 'This is a test template for a 500 error.'} ) try: - for code, url in ((404, '/views/non_existing_url/'), (500, '/views/server_error/')): + for code, url in ((404, '/non_existing_url/'), (500, '/server_error/')): response = self.client.get(url) self.assertContains(response, "test template for a %d error" % code, status_code=code) @@ -65,14 +66,14 @@ class DefaultsTests(TestCase): """ Content-Type of the default error responses is text/html. Refs #20822. """ - response = self.client.get('/views/raises400/') + response = self.client.get('/raises400/') self.assertEqual(response['Content-Type'], 'text/html') - response = self.client.get('/views/raises403/') + response = self.client.get('/raises403/') self.assertEqual(response['Content-Type'], 'text/html') - response = self.client.get('/views/non_existing_url/') + response = self.client.get('/non_existing_url/') self.assertEqual(response['Content-Type'], 'text/html') - response = self.client.get('/views/server_error/') + response = self.client.get('/server_error/') self.assertEqual(response['Content-Type'], 'text/html') diff --git a/tests/view_tests/tests/test_i18n.py b/tests/view_tests/tests/test_i18n.py index a939fd6fc1..1262ad4786 100644 --- a/tests/view_tests/tests/test_i18n.py +++ b/tests/view_tests/tests/test_i18n.py @@ -23,6 +23,7 @@ from ..urls import locale_dir class I18NTests(TestCase): """ Tests django views in django/views/i18n.py """ + urls = 'view_tests.urls' def test_setlang(self): """ @@ -31,9 +32,9 @@ class I18NTests(TestCase): The user is redirected to the 'next' argument if provided. """ for lang_code, lang_name in settings.LANGUAGES: - post_data = dict(language=lang_code, next='/views/') - response = self.client.post('/views/i18n/setlang/', data=post_data) - self.assertRedirects(response, 'http://testserver/views/') + post_data = dict(language=lang_code, next='/') + response = self.client.post('/i18n/setlang/', data=post_data) + self.assertRedirects(response, 'http://testserver/') self.assertEqual(self.client.session['_language'], lang_code) def test_setlang_unsafe_next(self): @@ -43,12 +44,12 @@ class I18NTests(TestCase): """ lang_code, lang_name = settings.LANGUAGES[0] post_data = dict(language=lang_code, next='//unsafe/redirection/') - response = self.client.post('/views/i18n/setlang/', data=post_data) + response = self.client.post('/i18n/setlang/', data=post_data) self.assertEqual(response.url, 'http://testserver/') self.assertEqual(self.client.session['_language'], lang_code) def test_setlang_reversal(self): - self.assertEqual(reverse('set_language'), '/views/i18n/setlang/') + self.assertEqual(reverse('set_language'), '/i18n/setlang/') def test_jsi18n(self): """The javascript_catalog can be deployed with language settings""" @@ -59,7 +60,7 @@ class I18NTests(TestCase): trans_txt = catalog.gettext('this is to be translated') else: trans_txt = catalog.ugettext('this is to be translated') - response = self.client.get('/views/jsi18n/') + response = self.client.get('/jsi18n/') # response content must include a line like: # "this is to be translated": <value of trans_txt Python variable> # javascript_quote is used to be able to check unicode strings @@ -74,6 +75,7 @@ class JsI18NTests(TestCase): Tests django views in django/views/i18n.py that need to change settings.LANGUAGE_CODE. """ + urls = 'view_tests.urls' def test_jsi18n_with_missing_en_files(self): """ @@ -86,7 +88,7 @@ class JsI18NTests(TestCase): than English. """ with self.settings(LANGUAGE_CODE='es'), override('en-us'): - response = self.client.get('/views/jsi18n/') + response = self.client.get('/jsi18n/') self.assertNotContains(response, 'esto tiene que ser traducido') def test_jsi18n_fallback_language(self): @@ -95,7 +97,7 @@ class JsI18NTests(TestCase): in cases where the selected language cannot be found. """ with self.settings(LANGUAGE_CODE='fr'), override('fi'): - response = self.client.get('/views/jsi18n/') + response = self.client.get('/jsi18n/') self.assertContains(response, 'il faut le traduire') def testI18NLanguageNonEnglishDefault(self): @@ -106,7 +108,7 @@ class JsI18NTests(TestCase): #3594 and #13726 for more details. """ with self.settings(LANGUAGE_CODE='fr'), override('en-us'): - response = self.client.get('/views/jsi18n/') + response = self.client.get('/jsi18n/') self.assertNotContains(response, 'Choisir une heure') @modify_settings(INSTALLED_APPS={'append': 'view_tests.app0'}) @@ -117,7 +119,7 @@ class JsI18NTests(TestCase): with the proper English translations. See #13726 for more details. """ with self.settings(LANGUAGE_CODE='fr'), override('en-us'): - response = self.client.get('/views/jsi18n_english_translation/') + response = self.client.get('/jsi18n_english_translation/') self.assertContains(response, javascript_quote('this app0 string is to be translated')) def testI18NLanguageNonEnglishFallback(self): @@ -126,16 +128,17 @@ class JsI18NTests(TestCase): in cases where the selected language cannot be found. """ with self.settings(LANGUAGE_CODE='fr'), override('none'): - response = self.client.get('/views/jsi18n/') + response = self.client.get('/jsi18n/') self.assertContains(response, 'Choisir une heure') def test_escaping(self): # Force a language via GET otherwise the gettext functions are a noop! - response = self.client.get('/views/jsi18n_admin/?language=de') + response = self.client.get('/jsi18n_admin/?language=de') self.assertContains(response, '\\x04') class JsI18NTestsMultiPackage(TestCase): + urls = 'view_tests.urls' """ Tests for django views in django/views/i18n.py that need to change settings.LANGUAGE_CODE and merge JS translation from several packages. @@ -150,7 +153,7 @@ class JsI18NTestsMultiPackage(TestCase): #3594 and #13514 for more details. """ with self.settings(LANGUAGE_CODE='en-us'), override('fr'): - response = self.client.get('/views/jsi18n_multi_packages1/') + response = self.client.get('/jsi18n_multi_packages1/') self.assertContains(response, javascript_quote('il faut traduire cette chaîne de caractères de app1')) @modify_settings(INSTALLED_APPS={'append': ['view_tests.app3', 'view_tests.app4']}) @@ -160,7 +163,7 @@ class JsI18NTestsMultiPackage(TestCase): English. """ with self.settings(LANGUAGE_CODE='fr'), override('es-ar'): - response = self.client.get('/views/jsi18n_multi_packages2/') + response = self.client.get('/jsi18n_multi_packages2/') self.assertContains(response, javascript_quote('este texto de app3 debe ser traducido')) def testI18NWithLocalePaths(self): @@ -169,7 +172,7 @@ class JsI18NTestsMultiPackage(TestCase): path.dirname(path.abspath(upath(__file__)))), 'app3', 'locale'),) with self.settings(LANGUAGE_CODE='es-ar', LOCALE_PATHS=extended_locale_paths): with override('es-ar'): - response = self.client.get('/views/jsi18n/') + response = self.client.get('/jsi18n/') self.assertContains(response, javascript_quote('este texto de app3 debe ser traducido')) diff --git a/tests/view_tests/tests/test_static.py b/tests/view_tests/tests/test_static.py index 8b051c5e62..6b2d961c5e 100644 --- a/tests/view_tests/tests/test_static.py +++ b/tests/view_tests/tests/test_static.py @@ -18,13 +18,14 @@ from ..urls import media_dir class StaticTests(SimpleTestCase): """Tests django views in django/views/static.py""" + urls = 'view_tests.urls' prefix = 'site_media' def test_serve(self): "The static view can serve static media" media_files = ['file.txt', 'file.txt.gz'] for filename in media_files: - response = self.client.get('/views/%s/%s' % (self.prefix, filename)) + response = self.client.get('/%s/%s' % (self.prefix, filename)) response_content = b''.join(response) file_path = path.join(media_dir, filename) with open(file_path, 'rb') as fp: @@ -33,19 +34,19 @@ class StaticTests(SimpleTestCase): self.assertEqual(mimetypes.guess_type(file_path)[1], response.get('Content-Encoding', None)) def test_unknown_mime_type(self): - response = self.client.get('/views/%s/file.unknown' % self.prefix) + response = self.client.get('/%s/file.unknown' % self.prefix) self.assertEqual('application/octet-stream', response['Content-Type']) def test_copes_with_empty_path_component(self): file_name = 'file.txt' - response = self.client.get('/views/%s//%s' % (self.prefix, file_name)) + response = self.client.get('/%s//%s' % (self.prefix, file_name)) response_content = b''.join(response) with open(path.join(media_dir, file_name), 'rb') as fp: self.assertEqual(fp.read(), response_content) def test_is_modified_since(self): file_name = 'file.txt' - response = self.client.get('/views/%s/%s' % (self.prefix, file_name), + response = self.client.get('/%s/%s' % (self.prefix, file_name), HTTP_IF_MODIFIED_SINCE='Thu, 1 Jan 1970 00:00:00 GMT') response_content = b''.join(response) with open(path.join(media_dir, file_name), 'rb') as fp: @@ -54,7 +55,7 @@ class StaticTests(SimpleTestCase): def test_not_modified_since(self): file_name = 'file.txt' response = self.client.get( - '/views/%s/%s' % (self.prefix, file_name), + '/%s/%s' % (self.prefix, file_name), HTTP_IF_MODIFIED_SINCE='Mon, 18 Jan 2038 05:14:07 GMT' # This is 24h before max Unix time. Remember to fix Django and # update this test well before 2038 :) @@ -69,7 +70,7 @@ class StaticTests(SimpleTestCase): """ file_name = 'file.txt' invalid_date = 'Mon, 28 May 999999999999 28:25:26 GMT' - response = self.client.get('/views/%s/%s' % (self.prefix, file_name), + response = self.client.get('/%s/%s' % (self.prefix, file_name), HTTP_IF_MODIFIED_SINCE=invalid_date) response_content = b''.join(response) with open(path.join(media_dir, file_name), 'rb') as fp: @@ -84,7 +85,7 @@ class StaticTests(SimpleTestCase): """ file_name = 'file.txt' invalid_date = ': 1291108438, Wed, 20 Oct 2010 14:05:00 GMT' - response = self.client.get('/views/%s/%s' % (self.prefix, file_name), + response = self.client.get('/%s/%s' % (self.prefix, file_name), HTTP_IF_MODIFIED_SINCE=invalid_date) response_content = b''.join(response) with open(path.join(media_dir, file_name), 'rb') as fp: @@ -92,7 +93,7 @@ class StaticTests(SimpleTestCase): self.assertEqual(len(response_content), int(response['Content-Length'])) def test_404(self): - response = self.client.get('/views/%s/non_existing_resource' % self.prefix) + response = self.client.get('/%s/non_existing_resource' % self.prefix) self.assertEqual(404, response.status_code) |
