Advertisement
Guest User

Untitled

a guest
Apr 12th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. class ChangePasswordView(UpdateAPIView):
  2.  
  3. serializer_class = ChangePasswordSerializer
  4. model = UserInfo
  5. permission_classes = (IsAuthenticated,)
  6.  
  7. def get(self, request, *args, **kwargs):
  8. return Response(status=200)
  9.  
  10. def put(self, request, *args, **kwargs):
  11. self.object = self.request.user
  12. serializer = self.get_serializer(data=request.data)
  13.  
  14. if serializer.is_valid():
  15. if not self.object.check_password(serializer.data.get("old_password")):
  16. return Response(
  17. {"old_password": ["Wrong password"]},
  18. status=400
  19. )
  20. self.object.set_password(serializer.data.get("new_password"))
  21. self.object.save()
  22. return Response("Success", status=200)
  23.  
  24. return Response(serializer.errors, status=400)
  25.  
  26. def test_change_password(self):
  27. client = APIClient()
  28. self.client.post('/api/user/login/', self.data, follow=True)
  29. self.client.login(username="testuser", password="secret")
  30. request = client.put('/api/user/change_password/', self.new_data)
  31.  
  32. self.assertEqual(
  33. request, '<Response status_code=200, "application/json">'
  34. )
  35.  
  36. def setUp(self):
  37. self.data = {
  38. 'username': 'testuser',
  39. 'password': 'secret'
  40. }
  41.  
  42. self.new_data = {
  43. 'old_password': 'secret',
  44. 'new_password': 'other_secret'
  45. }
  46.  
  47. User.objects.create_user(**self.data)
  48.  
  49. from rest_framework import status
  50.  
  51. class ChangePasswordView(UpdateAPIView):
  52.  
  53. serializer_class = ChangePasswordSerializer
  54. model = UserInfo
  55. permission_classes = (IsAuthenticated,)
  56.  
  57. def get(self, request, *args, **kwargs):
  58. return Response(status=status.HTTP_200_OK)
  59.  
  60. def post(self, request, *args, **kwargs):
  61. user = request.user
  62. serializer = self.get_serializer(data=request.data)
  63.  
  64. if serializer.is_valid():
  65. if not self.object.check_password(serializer.data.get("old_password")):
  66. msg = _("Wrong old password.")
  67. raise ValidationError(msg)
  68.  
  69. user.set_password(serializer.data.get("new_password"))
  70. user.save()
  71. return Response("Success", status=status.HTTP_200_OK)
  72.  
  73. msg = _('Something went wrong while reading the passwords')
  74. raise ValidationError(msg)
  75.  
  76. from rest_framework import status
  77.  
  78. def test_change_password(self):
  79. client = APIClient()
  80. self.client.post('/api/user/login/', self.data, follow=True)
  81. self.client.login(username="testuser", password="secret")
  82. response = self.post('/api/user/change_password/', self.new_data)
  83.  
  84. self.assertEqual(response.status_code, status.HTTP_200_OK)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement