• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python test.APIRequestFactory类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中rest_framework.test.APIRequestFactory的典型用法代码示例。如果您正苦于以下问题:Python APIRequestFactory类的具体用法?Python APIRequestFactory怎么用?Python APIRequestFactory使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了APIRequestFactory类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: test_get_with_anonymous

 def test_get_with_anonymous(self):
     view = ProjectCreate.as_view()
     url = reverse('admin:project_create')
     request = APIRequestFactory().get(url)
     request.user = AnonymousUser()
     response = view(request)
     self.assertTrue(isinstance(response, HttpResponseRedirect))
开发者ID:ExCiteS,项目名称:geokey,代码行数:7,代码来源:test_views.py


示例2: test_get_with_anonymous

 def test_get_with_anonymous(self):
     view = ApplicationConnected.as_view()
     url = reverse('admin:app_connected')
     request = APIRequestFactory().get(url)
     request.user = AnonymousUser()
     response = view(request)
     self.assertTrue(isinstance(response, HttpResponseRedirect))
开发者ID:Josh1billion,项目名称:geokey,代码行数:7,代码来源:test_views.py


示例3: CreateProjectTests

class CreateProjectTests(APITestCase):
    def setUp(self):
        self.anonymous_user = AnonymousUserFactory()
        self.user = UserFactory.create()
        self.group = GroupFactory.create(name=self.user.username)
        self.project = ProjectFactory.build(owner=self.group)

        self.view = ProjectViewSet.as_view({"post": "create"})
        self.factory = APIRequestFactory()
        self.url = reverse("api:v2:project-list")
        self.request = self.factory.post(self.url, {"name": self.project.name, "description": self.project.description})

    def test_anonymous_user_cannot_create_project(self):
        force_authenticate(self.request, user=self.anonymous_user)
        response = self.view(self.request)
        self.assertEquals(response.status_code, 403)

    def test_required_fields(self):
        bad_request = self.factory.post(self.url)
        force_authenticate(bad_request, user=self.user)
        response = self.view(bad_request)
        data = response.data

        self.assertEquals(response.status_code, 400)
        self.assertEquals(len(data), 1)
        self.assertIn("name", data)

    def test_authenticated_user_can_create_project(self):
        self.assertEquals(Project.objects.count(), 0)
        force_authenticate(self.request, user=self.user)
        response = self.view(self.request)
        self.assertEquals(response.status_code, 201)
        self.assertEquals(Project.objects.count(), 1)
        project = Project.objects.first()
        self.assertEquals(project.owner, self.group)
开发者ID:Cyberlusion,项目名称:Restoring-the-ecosystem,代码行数:35,代码来源:test_projects.py


示例4: test_get_with_user

 def test_get_with_user(self):
     view = ApplicationOverview.as_view()
     url = reverse('admin:app_overview')
     request = APIRequestFactory().get(url)
     request.user = UserFactory.create()
     response = view(request).render()
     self.assertEqual(response.status_code, 200)
开发者ID:Josh1billion,项目名称:geokey,代码行数:7,代码来源:test_views.py


示例5: test_post_with_anonymous

    def test_post_with_anonymous(self):
        data = {
            'name': 'test app',
            'description': '',
            'download_url': 'http://example.com/download',
            'redirect_uris': 'http://example.com/redirect',
            'authorization_grant_type': 'password'
        }

        view = ApplicationSettings.as_view()
        url = reverse('admin:app_settings', kwargs={'app_id': self.app.id})
        request = APIRequestFactory().post(url, data)
        request.user = AnonymousUser()
        response = view(request, app_id=self.app.id)
        self.assertTrue(isinstance(response, HttpResponseRedirect))

        ref = Application.objects.get(pk=self.app.id)
        self.assertNotEqual(ref.name, data.get('name'))
        self.assertNotEqual(ref.description, data.get('description'))
        self.assertNotEqual(ref.download_url, data.get('download_url'))
        self.assertNotEqual(ref.redirect_uris, data.get('redirect_uris'))
        self.assertNotEqual(
            ref.authorization_grant_type,
            data.get('authorization_grant_type')
        )
开发者ID:Josh1billion,项目名称:geokey,代码行数:25,代码来源:test_views.py


示例6: test_actions

    def test_actions(self):
        class ExampleView(views.APIView):
            """Example view."""

            def post(self, request):
                pass  # pragma: nocover

            def get_serializer(self):
                return PersonSerializer()

        def _choices(response, key):
            """Helper method for unpacking response JSON."""
            return response.data["actions"]["POST"][key]["choices"]

        view = ExampleView.as_view()

        factory = APIRequestFactory()
        request = factory.options("/")
        response = view(request=request)
        country_choices = _choices(response, "country")
        fantasy_choices_en = _choices(response, "fantasy_country")
        self.assertEqual(response.status_code, 200)
        self.assertEqual(country_choices, countries_display(countries))
        self.assertEqual(fantasy_choices_en, countries_display(FantasyCountries()))

        with override_settings(LANGUAGE_CODE="fr"):
            response = view(request=request)
            fantasy_choices_fr = _choices(response, "fantasy_country")
            self.assertNotEqual(fantasy_choices_en, fantasy_choices_fr)
开发者ID:SmileyChris,项目名称:django-countries,代码行数:29,代码来源:test_drf.py


示例7: test_post_with_superuser_when_updating

    def test_post_with_superuser_when_updating(self):
        """Test POST with superuser."""
        data = {"client_id": "xxxxxxxxxxxxxxxxxx", "secret": "xxxxxxxxxxxxxxxxxx", "key": ""}
        view = ProviderOverview.as_view()
        request = APIRequestFactory().post(self.url, data)
        request.user = UserFactory.create(**{"is_superuser": True})

        social_app = SocialApp.objects.create(
            provider="google", name="Google", client_id="yyyyyyyyyyyyyyyyyy", secret="yyyyyyyyyyyyyyyyyy", key=""
        )
        social_app.sites.add(get_current_site(request))

        setattr(request, "session", "session")
        messages = FallbackStorage(request)
        setattr(request, "_messages", messages)

        response = view(request, provider_id="google").render()
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, "Provider has been updated.")
        self.assertEqual(SocialApp.objects.latest("id"), social_app)

        reference = SocialApp.objects.get(pk=social_app.id)
        self.assertEqual(reference.client_id, data.get("client_id"))
        self.assertEqual(reference.secret, data.get("secret"))
        self.assertEqual(reference.key, data.get("key"))
开发者ID:ExCiteS,项目名称:geokey,代码行数:25,代码来源:test_views.py


示例8: test_post_first_turn

    def test_post_first_turn(self):
        """
        Post output of game return back to django.
        Authenticated user on their turn only.
        Same url as get: /play/<session_id>/ag
        """
        test_session = GameSession.objects.get(id=1)
        test_session.set_turn_data(test_json_data_global, "V")

        factory = APIRequestFactory()
        user = User.objects.get(username='john')
        view = GameREST.as_view()
        url = 'play/' + str(test_session.id) + '/ag/'
        request = factory.post(url, {'virus_player': '{"test": 1}',
                                     'health_player': '{"test2": 2}',
                                     'starting_from': 'india',
                                     'testing': True,
                                     'choice_outcome': '{"test3": 3}',
                                     'virus_tech': '{"dog": 1}',
                                     'health_tech': '{"cat": 2}',
                                     'change': '{"frog": "monkey"}'
                                     }, format='json')
        force_authenticate(request, user=user)

        response = view(request, test_session.id)
        
        # for the tests, reload the session from the DB
        test_session = GameSession.objects.get(id=1)
        self.assertNotEqual(response.data, test_json_data_global)
        self.assertEqual(response.data, 'complete')
        self.assertEqual(test_session.turn_data, '{"dog": "india"}')
        self.assertEqual(test_session.next_to_play, 'H')
开发者ID:tomwalker,项目名称:tabum,代码行数:32,代码来源:tests.py


示例9: test

    def test(self):
        admin = UserF.create()
        project = ProjectF(add_admins=[admin])
        observation = ObservationFactory.create(**{
            'project': project
        })
        comment = CommentFactory.create()

        factory = APIRequestFactory()
        request = factory.post(
            '/api/projects/%s/observations/%s/comments/' %
            (project.id, observation.id),
            {
                'text': 'Response to a comment',
                'respondsto': comment.id
            }
        )
        force_authenticate(request, user=admin)
        view = AllContributionsCommentsAPIView.as_view()
        response = view(
            request,
            project_id=project.id,
            observation_id=observation.id
        ).render()

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertEqual(
            json.loads(response.content).get('error'),
            'The comment you try to respond to is not a comment to the '
            'observation.'
        )
开发者ID:nagyistoce,项目名称:geokey,代码行数:31,代码来源:test_views.py


示例10: test_get_game_data_player

    def test_get_game_data_player(self):
        """
        Should return game session data for authenticated user upon GET
        request to /play/<session_id>/ag

        Should only return when its that users turn to play.
        """
        test_session = GameSession.objects.get(id=1)
        test_session.set_turn_data(test_json_data_global, "V")

        factory = APIRequestFactory()
        user = User.objects.get(username='john')
        view = GameREST.as_view()
        url = 'play/' + str(test_session.id) + '/ag/'
        request = factory.get(url)
        force_authenticate(request, user=user)
        response = view(request, test_session.id)

        self.assertEqual(response.data['turn_data'], test_json_data_global)
        
        # This test is not the user that should play next
        user2 = User.objects.get(username='ringo')
        request2 = factory.get(url)
        force_authenticate(request2, user=user2)
        response2 = view(request2, test_session.id)
        
        self.assertEqual(response2.data['detail'], 
                         'You do not have permission to perform this action.')
开发者ID:tomwalker,项目名称:tabum,代码行数:28,代码来源:tests.py


示例11: test_trailing_slash

    def test_trailing_slash(self):
        factory = APIRequestFactory()
        urlpatterns = format_suffix_patterns([
            url(r'^test/$', dummy_view),
        ])
        resolver = RegexURLResolver(r'^/', urlpatterns)

        test_paths = [
            (URLTestPath('/test.api', (), {'format': 'api'}), True),
            (URLTestPath('/test/.api', (), {'format': 'api'}), False),
            (URLTestPath('/test.api/', (), {'format': 'api'}), True),
        ]

        for test_path, expected_resolved in test_paths:
            request = factory.get(test_path.path)
            try:
                callback, callback_args, callback_kwargs = resolver.resolve(request.path_info)
            except Resolver404:
                callback, callback_args, callback_kwargs = (None, None, None)
            if not expected_resolved:
                assert callback is None
                continue

            assert callback_args == test_path.args
            assert callback_kwargs == test_path.kwargs
开发者ID:ArtikUA,项目名称:django-rest-framework,代码行数:25,代码来源:test_urlpatterns.py


示例12: test_any_post_view

 def test_any_post_view(self):
     factory = APIRequestFactory()
     request = factory.get('/posts/3/', format='json')
     force_authenticate(request, user=User.objects.get_by_natural_key('admin'))
     view = AnyPostDetail.as_view()
     response = view(request, pk=3)
     self.assertEqual(response.data['contents'], 'Cool post!')
开发者ID:Aurora0000,项目名称:descant,代码行数:7,代码来源:tests.py


示例13: test_api_is_correct

 def test_api_is_correct(self):
     factory = APIRequestFactory()
     request = factory.get('/topics/1/', format='json')
     force_authenticate(request, user=User.objects.get_by_natural_key('admin'))
     view = TopicDetail.as_view()
     response = view(request, pk=1)
     self.assertEqual(response.data['reply_count'], 2)
开发者ID:Aurora0000,项目名称:descant,代码行数:7,代码来源:tests.py


示例14: test_builtin_license

    def test_builtin_license(self):
        addon = addon_factory()
        self.version = addon.current_version
        license = self.version.license
        license.update(builtin=18)
        assert license._constant == LICENSES_BY_BUILTIN[18]

        result = LicenseSerializer(
            context={'request': self.request}).to_representation(license)
        assert result['id'] == license.pk
        # A request with no ?lang gets you the site default l10n in a dict to
        # match how non-constant values are returned.
        assert result['name'] == {
            'en-US': unicode(LICENSES_BY_BUILTIN[18].name)}

        accept_request = APIRequestFactory().get('/')
        accept_request.LANG = 'de'
        result = LicenseSerializer(
            context={'request': accept_request}).to_representation(license)
        # An Accept-Language should result in a different default though.
        assert result['name'] == {
            'de': unicode(LICENSES_BY_BUILTIN[18].name)}

        # But a requested lang returns a flat string
        lang_request = APIRequestFactory().get('/?lang=fr')
        result = LicenseSerializer(
            context={'request': lang_request}).to_representation(license)
        assert result['name'] == unicode(LICENSES_BY_BUILTIN[18].name)
开发者ID:tsl143,项目名称:addons-server,代码行数:28,代码来源:test_serializers.py


示例15: test_VersatileImageFieldSerializer_output

    def test_VersatileImageFieldSerializer_output(self):
        """Ensure VersatileImageFieldSerializer serializes correctly"""
        factory = APIRequestFactory()
        request = factory.get('/admin/')
        serializer = VersatileImageTestModelSerializer(
            self.jpg,
            context={'request': request}
        )

        self.assertEqual(
            serializer.data.get('optional_image'),
            {
                'test_crop': (
                    'http://testserver/media/__sized__/__placeholder__/placeholder-crop'
                    '-c0-5__0-5-100x100.png'
                ),
                'test_invert_crop': (
                    'http://testserver/media/__sized__/__placeholder__/__filtered__/placeholder__invert__'
                    '-crop-c0-5__0-5-100x100.png'
                ),
                'test_invert_thumb': (
                    'http://testserver/media/__sized__/__placeholder__/__filtered__/placeholder__invert__'
                    '-thumbnail-100x100.png'
                ),
                'test_invert': (
                    'http://testserver/media/__placeholder__/__filtered__/placeholder'
                    '__invert__.png'
                ),
                'test_thumb': (
                    'http://testserver/media/__sized__/__placeholder__/placeholder-thumbnail'
                    '-100x100.png'
                )
            }
        )
开发者ID:romanosipenko,项目名称:django-versatileimagefield,代码行数:34,代码来源:tests.py


示例16: TestPOSTAccessed

class TestPOSTAccessed(TestCase):
    def setUp(self):
        self.factory = APIRequestFactory()

    def test_post_accessed_in_post_method(self):
        django_request = self.factory.post('/', {'foo': 'bar'})
        request = Request(django_request, parsers=[FormParser(), MultiPartParser()])
        django_request.POST
        assert request.POST == {'foo': ['bar']}
        assert request.data == {'foo': ['bar']}

    def test_post_accessed_in_post_method_with_json_parser(self):
        django_request = self.factory.post('/', {'foo': 'bar'})
        request = Request(django_request, parsers=[JSONParser()])
        django_request.POST
        assert request.POST == {}
        assert request.data == {}

    def test_post_accessed_in_put_method(self):
        django_request = self.factory.put('/', {'foo': 'bar'})
        request = Request(django_request, parsers=[FormParser(), MultiPartParser()])
        django_request.POST
        assert request.POST == {'foo': ['bar']}
        assert request.data == {'foo': ['bar']}

    def test_request_read_before_parsing(self):
        django_request = self.factory.put('/', {'foo': 'bar'})
        request = Request(django_request, parsers=[FormParser(), MultiPartParser()])
        django_request.read()
        with pytest.raises(RawPostDataException):
            request.POST
        with pytest.raises(RawPostDataException):
            request.POST
            request.data
开发者ID:YanyanZeng,项目名称:django-rest-framework,代码行数:34,代码来源:test_parsers.py


示例17: setUp

 def setUp(self):
     self.tag = TagFactory.create()
     self.view = TagViewSet.as_view({'get': 'retrieve'})
     self.anonymous_user = AnonymousUserFactory()
     factory = APIRequestFactory()
     url = reverse('api:v2:tag-detail', args=(self.tag.id,))
     self.request = factory.get(url)
开发者ID:Angelfirenze,项目名称:atmosphere,代码行数:7,代码来源:test_tags.py


示例18: test_VersatileImageFieldSerializer_output

 def test_VersatileImageFieldSerializer_output(self):
     """Ensures VersatileImageFieldSerializer serializes correctly"""
     factory = APIRequestFactory()
     request = factory.get('/admin/')
     serializer = VersatileImageTestModelSerializer(
         self.jpg,
         context={'request': request}
     )
     self.assertEqual(
         serializer.data.get('image'),
         {
             'test_crop': (
                 'http://testserver/media/__sized__/python-logo-crop'
                 '-c0-25__0-25-100x100.jpg'
             ),
             'test_invert_crop': (
                 'http://testserver/media/__sized__/__filtered__/'
                 'python-logo__invert__-crop-c0-25__0-25-100x100.jpg'
             ),
             'test_invert_thumb': (
                 'http://testserver/media/__sized__/__filtered__/'
                 'python-logo__invert__-thumbnail-100x100.jpg'
             ),
             'test_invert': (
                 'http://testserver/media/__filtered__/'
                 'python-logo__invert__.jpg'
             ),
             'test_thumb': (
                 'http://testserver/media/__sized__/python-logo-thumbnail'
                 '-100x100.jpg'
             )
         }
     )
开发者ID:GRLeo,项目名称:django-versatileimagefield,代码行数:33,代码来源:tests.py


示例19: ChoiceDetail

class ChoiceDetail(APITestCase):
    def setUp(self):
        self.factory = APIRequestFactory()
        self.client = APIClient()
        self.user = setup_user()
        self.view = views.PollList.as_view()
        self.uri = '/choices/pk/'

    def test_unauthenticated_uri(self):
        """
        If not authorized access not allowed
        """
        request = self.factory.get(self.uri)
        response = self.view(request, pk='2')
        self.assertEqual(response.status_code, 401,
                         'Expected Response Code 401, received {0} instead.'
                         .format(response.status_code))

    def test_authenticated_uri(self):
        """
        GET
        """
        request = self.factory.get(self.uri)
        force_authenticate(request, self.user)
        response = self.view(request, pk='2')
        self.assertEqual(response.status_code, 200,
                         'Expected Response Code 200, received {0} instead.'
                         .format(response.status_code))
开发者ID:krvc,项目名称:django_pollsapi,代码行数:28,代码来源:test_choice_detail.py


示例20: test_post_with_creator

    def test_post_with_creator(self):
        data = {
            'name': 'test app',
            'description': '',
            'download_url': 'http://example.com',
            'redirect_uris': 'http://example.com',
            'authorization_grant_type': 'password'
        }
        view = ApplicationSettings.as_view()
        url = reverse('admin:app_settings', kwargs={'app_id': self.app.id})
        request = APIRequestFactory().post(url, data)
        request.user = self.creator

        from django.contrib.messages.storage.fallback import FallbackStorage
        setattr(request, 'session', 'session')
        messages = FallbackStorage(request)
        setattr(request, '_messages', messages)

        response = view(request, app_id=self.app.id).render()
        self.assertEqual(response.status_code, 200)
        self.assertNotContains(
            response,
            'You are not the owner of this application and therefore not'
            'allowed to access this app.'
        )

        ref = Application.objects.get(pk=self.app.id)
        self.assertEqual(ref.name, data.get('name'))
        self.assertEqual(ref.description, data.get('description'))
        self.assertEqual(ref.download_url, data.get('download_url'))
        self.assertEqual(ref.redirect_uris, data.get('redirect_uris'))
        self.assertEqual(
            ref.authorization_grant_type,
            data.get('authorization_grant_type')
        )
开发者ID:Josh1billion,项目名称:geokey,代码行数:35,代码来源:test_views.py



注:本文中的rest_framework.test.APIRequestFactory类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python test.CoreAPIClient类代码示例发布时间:2022-05-26
下一篇:
Python test.APIClient类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap