mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.contrib.auth.middleware import AuthenticationMiddleware
 | |
| from django.contrib.auth.models import User
 | |
| from django.http import HttpRequest
 | |
| from django.test import TestCase
 | |
| 
 | |
| 
 | |
| class TestAuthenticationMiddleware(TestCase):
 | |
|     def setUp(self):
 | |
|         self.user = User.objects.create_user('test_user', 'test@example.com', 'test_password')
 | |
|         self.middleware = AuthenticationMiddleware()
 | |
|         self.client.force_login(self.user)
 | |
|         self.request = HttpRequest()
 | |
|         self.request.session = self.client.session
 | |
| 
 | |
|     def test_no_password_change_doesnt_invalidate_session(self):
 | |
|         self.request.session = self.client.session
 | |
|         self.middleware.process_request(self.request)
 | |
|         self.assertIsNotNone(self.request.user)
 | |
|         self.assertFalse(self.request.user.is_anonymous())
 | |
| 
 | |
|     def test_changed_password_invalidates_session(self):
 | |
|         # After password change, user should be anonymous
 | |
|         self.user.set_password('new_password')
 | |
|         self.user.save()
 | |
|         self.middleware.process_request(self.request)
 | |
|         self.assertIsNotNone(self.request.user)
 | |
|         self.assertTrue(self.request.user.is_anonymous())
 | |
|         # session should be flushed
 | |
|         self.assertIsNone(self.request.session.session_key)
 |