1- from django .test import TestCase , override_settings
1+ import sys
2+ from importlib import reload
3+
24from django .contrib .auth .models import User
5+ from django .core .signals import setting_changed
6+ from django .test import TestCase , override_settings
7+ from django .urls import resolve , reverse , NoReverseMatch , clear_url_caches
8+
39from martor .utils import markdownify
10+ from martor .views import markdownfy_view , markdown_imgur_uploader , markdown_search_user
411
512
613class SimpleTest (TestCase ):
14+ def _on_settings_changed (self , sender , ** kwargs ):
15+ # Reload settings.py and urls.py when @override_settings is called
16+ clear_url_caches ()
17+ reload (sys .modules ["martor.settings" ])
18+ reload (sys .modules ["martor.urls" ])
19+ reload (sys .modules ["martor.tests.urls" ])
20+
721 def setUp (self ):
822 self .user_password = "TestEgg@1234"
923 self .user = User .objects .create_user (
@@ -16,6 +30,11 @@ def setUp(self):
1630 password = self .user_password ,
1731 )
1832
33+ setting_changed .connect (self ._on_settings_changed )
34+
35+ def tearDown (self ):
36+ setting_changed .disconnect (self ._on_settings_changed )
37+
1938 def test_form (self ):
2039 response = self .client .get ("/test-form-view/" )
2140 self .assertEqual (response .status_code , 200 )
@@ -108,3 +127,32 @@ def test_markdownify_xss_handled(self):
108127 response_3 ,
109128 '<p><a href="" onmouseover=alert(document.domain)">xss</a>)</p>' , # noqa: E501
110129 )
130+
131+ def test_urls (self ):
132+ with override_settings (
133+ MARTOR_MARKDOWNIFY_URL = "test/url" ,
134+ MARTOR_UPLOAD_URL = "" ,
135+ MARTOR_SEARCH_USERS_URL = "" ,
136+ ):
137+ found = resolve (reverse ("martor_markdownfy" ))
138+ self .assertEqual (found .func , markdownfy_view )
139+
140+ with self .assertRaises (NoReverseMatch ):
141+ reverse ("imgur_uploader" )
142+
143+ with self .assertRaises (NoReverseMatch ):
144+ reverse ("search_user_json" )
145+
146+ with override_settings (
147+ MARTOR_MARKDOWNIFY_URL = "test/url" ,
148+ MARTOR_UPLOAD_URL = "test/upload" ,
149+ MARTOR_SEARCH_USERS_URL = "test/search" ,
150+ ):
151+ found = resolve (reverse ("martor_markdownfy" ))
152+ self .assertEqual (found .func , markdownfy_view )
153+
154+ found = resolve (reverse ("imgur_uploader" ))
155+ self .assertEqual (found .func , markdown_imgur_uploader )
156+
157+ found = resolve (reverse ("search_user_json" ))
158+ self .assertEqual (found .func , markdown_search_user )
0 commit comments