mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-10-31 16:07:38 +03:00 
			
		
		
		
	* tests: inherit FakeResolverMatcher from django.urls.ResolverMatcher in tests/test_versioning.py * tests: inherit from rest_framework.versioning.BaseVersioning in tests/test_reverse.py * fix: isort --------- Co-authored-by: Piotr Szyma <pszyma@opera.com>
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.test import TestCase, override_settings
 | |
| from django.urls import NoReverseMatch, path
 | |
| 
 | |
| from rest_framework.reverse import reverse
 | |
| from rest_framework.test import APIRequestFactory
 | |
| from rest_framework.versioning import BaseVersioning
 | |
| 
 | |
| factory = APIRequestFactory()
 | |
| 
 | |
| 
 | |
| def null_view(request):
 | |
|     pass
 | |
| 
 | |
| 
 | |
| urlpatterns = [
 | |
|     path('view', null_view, name='view'),
 | |
| ]
 | |
| 
 | |
| 
 | |
| class MockVersioningScheme(BaseVersioning):
 | |
| 
 | |
|     def __init__(self, raise_error=False):
 | |
|         self.raise_error = raise_error
 | |
| 
 | |
|     def reverse(self, *args, **kwargs):
 | |
|         if self.raise_error:
 | |
|             raise NoReverseMatch()
 | |
| 
 | |
|         return 'http://scheme-reversed/view'
 | |
| 
 | |
| 
 | |
| @override_settings(ROOT_URLCONF='tests.test_reverse')
 | |
| class ReverseTests(TestCase):
 | |
|     """
 | |
|     Tests for fully qualified URLs when using `reverse`.
 | |
|     """
 | |
|     def test_reversed_urls_are_fully_qualified(self):
 | |
|         request = factory.get('/view')
 | |
|         url = reverse('view', request=request)
 | |
|         assert url == 'http://testserver/view'
 | |
| 
 | |
|     def test_reverse_with_versioning_scheme(self):
 | |
|         request = factory.get('/view')
 | |
|         request.versioning_scheme = MockVersioningScheme()
 | |
| 
 | |
|         url = reverse('view', request=request)
 | |
|         assert url == 'http://scheme-reversed/view'
 | |
| 
 | |
|     def test_reverse_with_versioning_scheme_fallback_to_default_on_error(self):
 | |
|         request = factory.get('/view')
 | |
|         request.versioning_scheme = MockVersioningScheme(raise_error=True)
 | |
| 
 | |
|         url = reverse('view', request=request)
 | |
|         assert url == 'http://testserver/view'
 |