def setUp(self): self.primary_user = UserFactory.create(**self.users[0]) self.secondary_user = UserFactory.create(**self.users[1]) self.client = APIClient() self.client.force_authenticate(self.primary_user) self.secondary_client = APIClient() self.secondary_client.force_authenticate(self.secondary_user)
def test_search_email(self, use_email, search_substring): user1 = UserFactory(email="*****@*****.**") UserFactory( email="*****@*****.**") # should not be returned by the search staff_user = StaffUserFactory(email="*****@*****.**") self.client.force_authenticate(staff_user) search_email = user1.email[:-3] if search_substring else user1.email args = {"search": search_email} if use_email else None response = self.client.get(self.endpoint_path, args, format="json") self.assertEqual(response.status_code, 200) response_users = [user1] if use_email else User.objects.none() self.assertCountEqual(response.json(), UserSerializer(response_users, many=True).data)
def test_list_users(self, from_uuid): user1 = UserFactory() user2 = UserFactory() staff_user = StaffUserFactory() self.client.force_authenticate(staff_user) args = ({ "portunus_uuids": [user1.portunus_uuid, user2.portunus_uuid] } if from_uuid else None) response = self.client.get(self.endpoint_path, args, format="json") self.assertEqual(response.status_code, 200) response_users = [user1, user2] if from_uuid else User.objects.none() self.assertCountEqual(response.json(), UserSerializer(response_users, many=True).data)
def test_login_wrong_password(self, authenticate_and_test): UserFactory(**USER_DATA) data = { **USER_DATA, "password": INVALID_PASSWORD, } authenticate_and_test("authentication:login", data, success=False)
def test_create_with_existing_user(self): user = UserFactory() response = self.check_create(400, { "email": user.email, "password": "******" }) self.assertEqual(response["portunus_uuid"], user.portunus_uuid) self.assertEqual(response["user_exists"], True)
def test_result_limit(self): email_template = "aaa{}@aaa.aaa" for i in range(MAX_SEARCH_RESULTS + 1): UserFactory(email=email_template.format(i)) staff_user = StaffUserFactory() self.client.force_authenticate(staff_user) args = {"search": email_template[-MIN_SEARCH_LENGTH:]} response = self.client.get(self.endpoint_path, args, format="json") self.assertEqual(response.status_code, 200) self.assertEqual(len(response.json()), MAX_SEARCH_RESULTS)
def test_search_string(self): u = UserFactory(email="*****@*****.**") staff_user = StaffUserFactory(email="*****@*****.**") self.client.force_authenticate(staff_user) args = {"search": u.email[-MIN_SEARCH_LENGTH + 1:]} response = self.client.get(self.endpoint_path, args, format="json") self.assertEqual(response.status_code, 200) self.assertEqual(len(response.json()), 0) args = {"search": u.email[-MIN_SEARCH_LENGTH:]} response = self.client.get(self.endpoint_path, args, format="json") self.assertEqual(response.status_code, 200) self.assertEqual(len(response.json()), 1)
def test_register_existing_email(self, authenticate_and_test): UserFactory(**USER_DATA) data = {**USER_DATA, "password": INVALID_PASSWORD} authenticate_and_test("authentication:register", data, success=False)
def test_login(self, authenticate_and_test): UserFactory(**USER_DATA) authenticate_and_test("authentication:login", USER_DATA)
def test_wrong_user(self): other_user = UserFactory() self.check_user(other_user, status_code=403)
def setUp(self): self.user = UserFactory()