|
2 | 2 | from __future__importunicode_literals |
3 | 3 |
|
4 | 4 | fromdjango.conf.urlsimporturl |
5 | | -fromdjango.core.exceptionsimportImproperlyConfigured |
6 | 5 | fromdjango.testimportTestCase,override_settings |
7 | | -fromdjango.utilsimportsix |
8 | 6 |
|
9 | | -importrest_framework.utils.model_meta |
10 | | -fromrest_framework.compatimport_resolve_model |
11 | 7 | fromrest_framework.routersimportSimpleRouter |
12 | 8 | fromrest_framework.serializersimportModelSerializer |
13 | 9 | fromrest_framework.utilsimportjson |
@@ -124,64 +120,6 @@ def test_modelviewset_resource_instance_breadcrumbs(self): |
124 | 120 | ] |
125 | 121 |
|
126 | 122 |
|
127 | | -classResolveModelTests(TestCase): |
128 | | -""" |
129 | | - `_resolve_model` should return a Django model class given the |
130 | | - provided argument is a Django model class itself, or a properly |
131 | | - formatted string representation of one. |
132 | | - """ |
133 | | -deftest_resolve_django_model(self): |
134 | | -resolved_model=_resolve_model(BasicModel) |
135 | | -assertresolved_model==BasicModel |
136 | | - |
137 | | -deftest_resolve_string_representation(self): |
138 | | -resolved_model=_resolve_model('tests.BasicModel') |
139 | | -assertresolved_model==BasicModel |
140 | | - |
141 | | -deftest_resolve_unicode_representation(self): |
142 | | -resolved_model=_resolve_model(six.text_type('tests.BasicModel')) |
143 | | -assertresolved_model==BasicModel |
144 | | - |
145 | | -deftest_resolve_non_django_model(self): |
146 | | -withself.assertRaises(ValueError): |
147 | | -_resolve_model(TestCase) |
148 | | - |
149 | | -deftest_resolve_improper_string_representation(self): |
150 | | -withself.assertRaises(ValueError): |
151 | | -_resolve_model('BasicModel') |
152 | | - |
153 | | - |
154 | | -classResolveModelWithPatchedDjangoTests(TestCase): |
155 | | -""" |
156 | | - Test coverage for when Django's `get_model` returns `None`. |
157 | | -
|
158 | | - Under certain circumstances Django may return `None` with `get_model`: |
159 | | - http://git.io/get-model-source |
160 | | -
|
161 | | - It usually happens with circular imports so it is important that DRF |
162 | | - excepts early, otherwise fault happens downstream and is much more |
163 | | - difficult to debug. |
164 | | -
|
165 | | - """ |
166 | | - |
167 | | -defsetUp(self): |
168 | | -"""Monkeypatch get_model.""" |
169 | | -self.get_model=rest_framework.compat.apps.get_model |
170 | | - |
171 | | -defget_model(app_label,model_name): |
172 | | -returnNone |
173 | | - |
174 | | -rest_framework.compat.apps.get_model=get_model |
175 | | - |
176 | | -deftearDown(self): |
177 | | -"""Revert monkeypatching.""" |
178 | | -rest_framework.compat.apps.get_model=self.get_model |
179 | | - |
180 | | -deftest_blows_up_if_model_does_not_resolve(self): |
181 | | -withself.assertRaises(ImproperlyConfigured): |
182 | | -_resolve_model('tests.BasicModel') |
183 | | - |
184 | | - |
185 | 123 | classJsonFloatTests(TestCase): |
186 | 124 | """ |
187 | 125 | Internaly, wrapped json functions should adhere to strict float handling |
|