예제 #1
0
    def test_get_parent_object(self):
        """
        Tests that get_parent_object() returns the correct parent object.
        """
        repo = models.Repository.objects.create(name='foo')
        viewset = viewsets.RepositoryVersionViewSet()
        viewset.kwargs = {'repository_pk': repo.pk}

        self.assertEquals(repo, viewset.get_parent_object())
예제 #2
0
    def test_no_parent_object(self):
        """
        Tests that get_parent_field_and_object() raises django.http.Http404 if the parent object
        does not exist on a nested viewset.
        """
        viewset = viewsets.RepositoryVersionViewSet()
        viewset.kwargs = {'repository_pk': 500}

        with self.assertRaises(Http404):
            viewset.get_parent_field_and_object()
예제 #3
0
    def test_get_parent_field_and_object(self):
        """
        Tests that get_parent_field_and_object() returns the correct parent field and parent
        object.
        """
        repo = models.Repository.objects.create(name="foo")
        viewset = viewsets.RepositoryVersionViewSet()
        viewset.kwargs = {"repository_pk": repo.pk}

        self.assertEquals(("repository", repo),
                          viewset.get_parent_field_and_object())
예제 #4
0
    def test_adds_filters(self):
        """
        Tests to make sure the correct lookup is being added to the queryset based on its
        'parent_lookup_kwargs' value.
        """
        repo = models.Repository.objects.create(name='foo')
        repo2 = models.Repository.objects.create(name='foo2')
        # no concurrency so this is fine
        models.RepositoryVersion.objects.create(repository=repo, number=1)
        models.RepositoryVersion.objects.create(repository=repo2, number=1)
        viewset = viewsets.RepositoryVersionViewSet()
        viewset.kwargs = {'repository_pk': repo.pk}
        queryset = viewset.get_queryset()
        expected = models.RepositoryVersion.objects.filter(
            repository__pk=repo.pk)

        # weird, stupid django quirk
        # https://docs.djangoproject.com/en/2.0/topics/testing/tools/#django.test.TransactionTestCase.assertQuerysetEqual
        self.assertQuerysetEqual(queryset, map(repr, expected))