File tree Expand file tree Collapse file tree 2 files changed +37
-2
lines changed Expand file tree Collapse file tree 2 files changed +37
-2
lines changed Original file line number Diff line number Diff line change @@ -339,7 +339,7 @@ def _django_set_urlconf(request):
339
339
if marker :
340
340
skip_if_no_django ()
341
341
import django .conf
342
- from django .core .urlresolvers import clear_url_caches
342
+ from django .core .urlresolvers import clear_url_caches , set_urlconf
343
343
344
344
validate_urls (marker )
345
345
original_urlconf = django .conf .settings .ROOT_URLCONF
@@ -348,6 +348,10 @@ def _django_set_urlconf(request):
348
348
349
349
def restore ():
350
350
django .conf .settings .ROOT_URLCONF = original_urlconf
351
+ # Copy the pattern from
352
+ # https://github.com/django/django/blob/master/django/test/signals.py#L152
353
+ clear_url_caches ()
354
+ set_urlconf (None )
351
355
352
356
request .addfinalizer (restore )
353
357
Original file line number Diff line number Diff line change 3
3
4
4
from pytest_django_test .compat import force_text
5
5
6
- pytestmark = pytest .mark .urls ('pytest_django_test.urls_overridden' )
7
6
8
7
try :
9
8
from django .core .urlresolvers import is_valid_path
@@ -24,11 +23,43 @@ def is_valid_path(path, urlconf=None):
24
23
return False
25
24
26
25
26
+ @pytest .mark .urls ('pytest_django_test.urls_overridden' )
27
27
def test_urls ():
28
28
assert settings .ROOT_URLCONF == 'pytest_django_test.urls_overridden'
29
29
assert is_valid_path ('/overridden_url/' )
30
30
31
31
32
+ @pytest .mark .urls ('pytest_django_test.urls_overridden' )
32
33
def test_urls_client (client ):
33
34
response = client .get ('/overridden_url/' )
34
35
assert force_text (response .content ) == 'Overridden urlconf works!'
36
+
37
+
38
+ def test_urls_cache_is_cleared (testdir ):
39
+ testdir .makepyfile (myurls = """
40
+ from django.conf.urls import patterns, url
41
+
42
+ def fake_view(request):
43
+ pass
44
+
45
+ urlpatterns = patterns('', url(r'first/$', fake_view, name='first'))
46
+ """ )
47
+
48
+
49
+ testdir .makepyfile ("""
50
+ from django.core.urlresolvers import reverse, NoReverseMatch
51
+ import pytest
52
+
53
+ @pytest.mark.urls('myurls')
54
+ def test_something():
55
+ reverse('first')
56
+
57
+
58
+ def test_something_else():
59
+ with pytest.raises(NoReverseMatch):
60
+ reverse('first')
61
+
62
+ """ )
63
+
64
+ result = testdir .runpytest ()
65
+ assert result .ret == 0
You can’t perform that action at this time.
0 commit comments