示例#1
0
def test_user_is_supervisor_filter(auth_client, value, expected):
    """Should filter useres if they are a supervisor."""
    users = UserFactory.create_batch(2)
    UserFactory.create_batch(3)

    auth_client.user.supervisees.add(*users)

    res = auth_client.get(reverse('user-list'), {'is_supervisor': value})
    assert len(res.json()['data']) == expected
示例#2
0
def test_user_is_reviewer_filter(auth_client, value, expected):
    """Should filter users if they are a reviewer."""
    user = UserFactory.create()
    project = ProjectFactory.create()
    UserFactory.create_batch(3)

    project.reviewers.add(user)

    res = auth_client.get(reverse('user-list'), {'is_reviewer': value})
    assert len(res.json()['data']) == expected
示例#3
0
def test_user_list(auth_client, django_assert_num_queries):
    UserFactory.create_batch(2)

    url = reverse('user-list')

    with django_assert_num_queries(5):
        response = auth_client.get(url)

    assert response.status_code == status.HTTP_200_OK

    json = response.json()
    assert len(json['data']) == 3
示例#4
0
def test_user_supervisor_filter(auth_client):
    """Should filter users by supervisor."""
    supervisees = UserFactory.create_batch(5)

    UserFactory.create_batch(5)

    auth_client.user.supervisees.add(*supervisees)
    auth_client.user.save()

    res = auth_client.get(reverse('user-list'),
                          {'supervisor': auth_client.user.id})

    assert len(res.json()['data']) == 5
示例#5
0
    def setUp(self):
        """Set the environment for the tests up."""
        super().setUp()

        self.users = UserFactory.create_batch(3)

        for user in self.users + [self.user]:
            EmploymentFactory.create(user=user)
示例#6
0
def test_project_list_include(auth_client, django_assert_num_queries):
    project = ProjectFactory.create()
    users = UserFactory.create_batch(2)
    project.reviewers.add(*users)

    url = reverse('project-list')

    with django_assert_num_queries(6):
        response = auth_client.get(
            url,
            data={
                'include':
                ','.join(ProjectSerializer.included_serializers.keys())
            })
    assert response.status_code == status.HTTP_200_OK

    json = response.json()
    assert len(json['data']) == 1
    assert json['data'][0]['id'] == str(project.id)
示例#7
0
def test_project_list_include(auth_client, django_assert_num_queries, project):
    users = UserFactory.create_batch(2)
    project.reviewers.add(*users)

    url = reverse("project-list")

    with django_assert_num_queries(7):
        response = auth_client.get(
            url,
            data={
                "include":
                ",".join(ProjectSerializer.included_serializers.keys())
            },
        )
    assert response.status_code == status.HTTP_200_OK

    json = response.json()
    assert len(json["data"]) == 1
    assert json["data"][0]["id"] == str(project.id)
示例#8
0
def test_absence_list_supervisee(auth_client):
    AbsenceFactory.create(user=auth_client.user)

    supervisors = UserFactory.create_batch(2)

    supervisors[0].supervisees.add(auth_client.user)
    AbsenceFactory.create(user=supervisors[0])

    url = reverse("absence-list")

    response = auth_client.get(url)
    assert response.status_code == status.HTTP_200_OK
    json = response.json()
    assert len(json["data"]) == 1

    # absences of multiple supervisors shouldn't affect supervisee
    supervisors[1].supervisees.add(auth_client.user)
    AbsenceFactory.create(user=supervisors[1])

    response = auth_client.get(url)
    assert response.status_code == status.HTTP_200_OK
    json = response.json()
    assert len(json["data"]) == 1