Beispiel #1
0
    def test_get_projects_as_anonymous(self):
        ProjectFactory.create_batch(size=5)

        url = reverse('project-list')
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
        self.assertEqual(response.data, {'detail': 'Authentication credentials were not provided.'})
Beispiel #2
0
def test_unauthenticated():
    ProjectFactory.create_batch(10, public=True)
    ProjectFactory.create_batch(10, public=False)
    view = ProjectList.as_view()
    factory = APIRequestFactory()

    request = factory.get('/projects/api/projects')
    response = view(request)

    assert len(response.data) == 10
Beispiel #3
0
    def test_get_projects_as_admin(self):
        ProjectFactory.create_batch(size=5)

        user = AdminFactory()
        self.client.force_login(user)

        url = reverse('project-list')
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(len(response.data), 0)
        self.assertEqual(len(Project.objects.available_for_user(user)), len(response.data))
Beispiel #4
0
    def test_get_project_as_admin(self):
        project, *_ = ProjectFactory.create_batch(size=5)
        url = reverse('project-detail', args=(project.pk,))

        user = AdminFactory()
        self.client.force_login(user)

        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
        self.assertEqual(len(Project.objects.available_for_user(user)), 0)
Beispiel #5
0
    def test_get_projects_as_owner(self):
        project, *_ = ProjectFactory.create_batch(size=4)

        self.client.force_login(project.owner)

        url = reverse('project-list')
        response = self.client.get(url)
        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(Project.objects.filter(owner=project.owner).count(), len(response.data))
        self.assertEqual(Project.objects.available_for_user(project.owner).count(), len(response.data))
        self.assertEqual(project.name, response.data[0]['name'])
Beispiel #6
0
def test_authenticated():
    ProjectFactory.create_batch(10, public=True)
    ProjectFactory.create_batch(10, public=False)
    # Create a user
    user = UserFactory.create()
    # Get required permission
    content_type = ContentType.objects.get_for_model(Project)
    permission = Permission.objects.get(
        codename='view_project',
        content_type=content_type,
    )
    user.user_permissions.add(permission)
    # Make authenticated request
    view = ProjectList.as_view()
    factory = APIRequestFactory()
    request = factory.get('/projects/api/projects')
    force_authenticate(request, user=user)
    response = view(request)

    assert len(response.data) == 20
Beispiel #7
0
 def handle(self, *args, **options):
     ProjectFactory.create_batch(5)