|
1 | 1 | from rest_framework.reverse import reverse |
2 | 2 | from rest_framework.test import APITestCase |
3 | | -from shared.django_apps.core.tests.factories import OwnerFactory, RepositoryFactory |
| 3 | +from shared.django_apps.core.tests.factories import OwnerFactory |
| 4 | + |
4 | 5 | from utils.test_utils import Client |
5 | | -from codecov_auth.models import GithubAppInstallation |
6 | | -from graphql_api.types.owner.owner import AI_FEATURES_GH_APP_ID |
7 | 6 |
|
8 | 7 |
|
9 | | -class GenAIAuthViewTests(APITestCase): |
| 8 | +class PageNumberPaginationTests(APITestCase): |
10 | 9 | def setUp(self): |
11 | 10 | self.client = Client() |
| 11 | + self.owner = OwnerFactory(plan="users-free", plan_user_count=5) |
| 12 | + self.users = [ |
| 13 | + OwnerFactory(organizations=[self.owner.ownerid]), |
| 14 | + OwnerFactory(organizations=[self.owner.ownerid]), |
| 15 | + OwnerFactory(organizations=[self.owner.ownerid]), |
| 16 | + ] |
| 17 | + |
| 18 | + def test_pagination_returned_page_size(self): |
| 19 | + self.client.force_login_owner(self.owner) |
12 | 20 |
|
13 | | - self.owner = OwnerFactory(service="github") |
14 | | - self.repo1 = RepositoryFactory(author=self.owner, name="Repo1") |
15 | | - self.repo2 = RepositoryFactory(author=self.owner, name="Repo2") |
| 21 | + def _list(kwargs={}, query_params={}): |
| 22 | + if not kwargs: |
| 23 | + kwargs = { |
| 24 | + "service": self.owner.service, |
| 25 | + "owner_username": self.owner.username, |
| 26 | + } |
| 27 | + return self.client.get( |
| 28 | + reverse("users-list", kwargs=kwargs), data=query_params |
| 29 | + ) |
16 | 30 |
|
17 | | - self.ai_install = GithubAppInstallation.objects.create( |
18 | | - app_id=AI_FEATURES_GH_APP_ID, |
19 | | - owner=self.owner, |
20 | | - repository_service_ids=[self.repo1.service_id, self.repo2.service_id], |
21 | | - ) |
| 31 | + response = _list() |
22 | 32 |
|
23 | | - def test_no_owner_id(self): |
24 | | - url = reverse("gen-ai-consent") |
25 | | - self.client.force_login_owner(self.owner) |
26 | | - response = self.client.get(url) |
27 | | - assert response.status_code == 200 |
28 | | - assert response.data["is_valid"] is False |
| 33 | + assert response.data["total_pages"] == 1 |
29 | 34 |
|
30 | | - def test_owner_without_install(self): |
31 | | - # Remove the AI installation so it doesn't exist |
32 | | - self.ai_install.delete() |
| 35 | + response = _list(query_params={"page_size": "1"}) |
33 | 36 |
|
34 | | - url = reverse("gen-ai-consent") |
35 | | - self.client.force_login_owner(self.owner) |
36 | | - response = self.client.get(url, data={"owner_id": self.owner.id}) |
37 | | - assert response.status_code == 200 |
38 | | - assert response.data["is_valid"] is False |
| 37 | + assert response.data["total_pages"] == 3 |
39 | 38 |
|
40 | | - def test_valid_owner_with_install(self): |
41 | | - url = reverse("gen-ai-consent") |
42 | | - self.client.force_login_owner(self.owner) |
43 | | - response = self.client.get(url, data={"owner_id": self.owner.id}) |
44 | | - assert response.status_code == 200 |
45 | | - assert response.data["is_valid"] is True |
46 | | - assert len(response.data["repos"]) == 2 |
47 | | - assert set(response.data["repos"]) == {"Repo1", "Repo2"} |
| 39 | + response = _list(query_params={"page_size": "100"}) |
| 40 | + |
| 41 | + assert response.data["total_pages"] == 1 |
0 commit comments