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_create_with_existing_user(self): staff_user = StaffUserFactory(**USER_DATA) factory = APIRequestFactory() view = CreateUserView.as_view() request = factory.post(reverse("authentication:create_user"), USER_DATA, format="json") force_authenticate(request, user=staff_user) response = view(request) self.assertEqual(response.status_code, 400) self.assertEqual( json.loads(response.content)["portunus_uuid"], staff_user.portunus_uuid ) self.assertEqual(json.loads(response.content)["user_exists"], True)
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_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_create_with_no_existing_user(self): staff_user = StaffUserFactory(**USER_DATA) factory = APIRequestFactory() view = CreateUserView.as_view() new_email = "*****@*****.**" request = factory.post( reverse("authentication:create_user"), {"email": new_email, "password": VALID_PASSWORD,}, format="json", ) force_authenticate(request, user=staff_user) response = view(request) new_user = User.objects.get(email=new_email) self.assertEqual(response.status_code, 200) self.assertEqual( json.loads(response.content)["portunus_uuid"], str(new_user.portunus_uuid) )
def test_staff_user(self): staff_user = StaffUserFactory() self.client.force_authenticate(staff_user) self.check_get(200) self.check_delete(403)
def check_create(self, status_code, args=None): self.client.force_authenticate(StaffUserFactory()) response = self.client.post(self.endpoint_path, args, format="json") self.assertEqual(response.status_code, status_code) return response.json()
def test_staff_user(self): staff_user = StaffUserFactory() self.check_user(staff_user)