def post(self, request): serializer = self.InputSerializer(data=request.data) serializer.is_valid(raise_exception=True) user_create(**serializer.validated_data) return Response(status=status.HTTP_201_CREATED)
def create_user(self): email = fake.email() password = fake.password() user_create(first_name=fake.first_name(), last_name=fake.last_name(), email=email, avatar=None, password=password) return {'email': email, 'password': password}
def test_api_valid_email(self): user_create(first_name=fake.first_name(), last_name=fake.last_name(), email=fake.email(), avatar=None, password=fake.password()) self.assertEqual(1, BaseUser.objects.count()) data = {'email': BaseUser.objects.first().email} response = self.client.post(self.url, data) self.assertEqual(201, response.status_code)
def setUp(self): self.password = fake.password() self.user = user_create(first_name=fake.first_name(), last_name=fake.last_name(), password=self.password, email=fake.email(), avatar=None) self.service = user_password_change
def test_api_user_login_valid_return_data(self): email = fake.email() password = fake.password() user_create( first_name=fake.first_name(), last_name=fake.last_name(), email=email, password=password, avatar=None ) self.assertEqual(1, BaseUser.objects.count()) data = { 'email': email, 'password': password } response = self.client.post(self.url, data) self.assertEqual(200, response.status_code) # User login return dict with session and data user self.assertTrue(response.data)
def test_token_is_none(self, user_password_reset_check_mock): user = user_create(first_name=fake.first_name(), last_name=fake.last_name(), password=fake.password(), email=fake.email(), avatar=None) # Obtain token and user user_password_reset(email=user.email) # Code no valid in check with self.assertRaises(ValidationError): self.service(token=None, password=user.password)
def test_user_password_reset_success_and_call_event( self, user_password_reset_check_send_email_mock): password = fake.password() user = user_create(first_name=fake.first_name(), last_name=fake.last_name(), password=password, email=fake.email(), avatar=None) # Obtain token and user data = user_password_reset(email=user.email) self.service(token=data['token'], password=password) user_password_reset_check_send_email_mock.assert_called()
def test_token_valid_with_vulnerable_password( self, user_password_reset_check_mock): user = user_create( first_name=fake.first_name(), last_name=fake.last_name(), password=fake.password(), email=fake.email(), avatar=None, ) # Obtain token and user data = user_password_reset(email=user.email) # Token valid with invalid password password_vulnerable = fake.password(length=5, digits=False) with self.assertRaises(ValidationError): self.service(token=data['token'], password=password_vulnerable)
def test_service_return_token_and_call_event( self, user_password_reset_send_email_mock): user = user_create(first_name=fake.first_name(), last_name=fake.last_name(), password=fake.password(), email=fake.email(), avatar=None) user_profile = self.service(email=user.email) # 'alcr3d-93e02ecaf523d3332a99462eb93989fb_NQ'] result = list(user_profile) # Match length result -> Token self.assertEqual(1, len(result)) user_password_reset_send_email_mock.assert_called()
def create_user(self): user_create(first_name=fake.first_name(), last_name=fake.last_name(), password=fake.password(), email=fake.email(), avatar=None)
def test_api_return_users_data_filter_with_pagination(self): user1 = user_create( first_name=fake.first_name(), last_name=fake.last_name(), password=fake.password(), email=fake.email(), avatar=None) user2 = user_create( first_name=fake.first_name(), last_name=fake.last_name(), password=fake.password(), email=fake.email(), avatar=None) # Filter api with parameters first_response = self.client.get(self.url, data={'is_active': True}) expect_first_response = OrderedDict({ "limit": 1, "offset": 0, "count": BaseUser.objects.count(), "next": 'http://testserver/api/users/list/?is_active=True&limit=1&offset=1', "previous": None, "results": [ OrderedDict({ "id": user1.id, "first_name": user1.first_name, "last_name": user1.last_name, "email": user1.email, "avatar": None, "is_active": True, "is_superuser": False }) ] }) self.assertEqual(expect_first_response, first_response.data) # Next response to request api next_response = self.client.get( self.url, data={'is_active': True, 'limit': 1, 'offset': 1}) expect_next_response = OrderedDict({ "limit": 1, "offset": 1, "count": BaseUser.objects.count(), "next": None, "previous": 'http://testserver/api/users/list/?is_active=True&limit=1', "results": [ OrderedDict({ "id": user2.id, "first_name": user2.first_name, "last_name": user2.last_name, "email": user2.email, "avatar": None, "is_active": True, "is_superuser": False }) ] }) self.assertEqual(expect_next_response, next_response.data)