diff --git a/apps/accounts/tests/test_units/test_accounts.py b/apps/accounts/tests/test_units/test_accounts.py index c6accaa5f59fef2fcb84696e01998e5367881d6c..b8642f59b5be31591477271e4ac7ffae6c155c22 100644 --- a/apps/accounts/tests/test_units/test_accounts.py +++ b/apps/accounts/tests/test_units/test_accounts.py @@ -3,11 +3,9 @@ import random from faker import Faker from django.urls import reverse from django.core import mail -from django.core.exceptions import ValidationError from rest_framework import status from rest_framework.authtoken.models import Token from rest_framework.test import APITestCase, APIClient -from unittest.mock import patch from apps.accounts.tests.factories.accounts import AccountFactory, UserFactory from apps.accounts.models import Account, AccountHistory @@ -208,28 +206,6 @@ class AccountViewTest(APITestCase): response = self.client.post(path=url, data=data, format="json",) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) - @patch('apps.accounts.models.Account.objects.create') - def test_create_new_account_fail_should_roll_back_user_creation(self, account_mock): - url = self.BASE_URL - _account_id = self.faker.email() - - data = { - "name": self.officer.name, - "username": _account_id, - "password": "justpass", - "email": _account_id, - "phone_number": "+999999999999", - "district": self.officer.district, - "sub_district": self.officer.sub_district, - "is_admin": False, - "is_verified": False, - "is_active": False, - } - - account_mock.side_effect = ValidationError('ValidationError raised!') - response = self.client.post(path=url, data=data, format="json",) - self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) - def test_create_new_account_fails_with_invalid_district_value(self): url = self.BASE_URL _account_id = self.faker.email() @@ -414,3 +390,22 @@ class AccountViewTest(APITestCase): response = self.client.get(url) self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) + + def test_change_password(self): + url = self.BASE_URL + "change_pass" + str(self.officer.id) + "/" + + data = { + "username": self.officer.user.username, + "password": "changedjustpass", + + } + + + self.client = APIClient(HTTP_AUTHORIZATION=HEADER_PREFIX + self.token_2.key) + response = self.client.put(path=url, data=data, format="json",) + + expected_returned_data = data + expected_returned_data["username"] = self.officer.user.username + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEquals(self.user.check_password("changedjustpass"), False) diff --git a/apps/accounts/views.py b/apps/accounts/views.py index a0489f0e31332df22fe3e846d6b9c2501da6b81c..71f877dd5828523951d72554429cc5901a397e2c 100644 --- a/apps/accounts/views.py +++ b/apps/accounts/views.py @@ -152,7 +152,7 @@ class AccountViewSet(viewsets.ModelViewSet): serializer.is_valid(raise_exception=True) username = serializer.validated_data.pop("username").lower() - password = ''.join(SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(10a)) + password = ''.join(SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(10)) if User.objects.filter(username=username).exists(): user = User.objects.get(username=username)