Exemplo n.º 1
0
    def test_it_adds_api_links_to_registry(
        self,
        pyramid_config,
        view,
        link_name,
        route_name,
        description,
        request_method,
        expected_method,
    ):
        kwargs = {}
        if request_method:
            kwargs["request_method"] = request_method

        api_config.add_api_view(pyramid_config,
                                view=view,
                                link_name=link_name,
                                description=description,
                                route_name=route_name,
                                **kwargs)

        assert pyramid_config.registry.api_links == [{
            "name": link_name,
            "description": description,
            "method": expected_method,
            "route_name": route_name,
        }]
Exemplo n.º 2
0
 def test_it_allows_renderer_setting_override(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config,
                             view,
                             route_name="thing.read",
                             renderer="xml")
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs["renderer"] == "xml"
Exemplo n.º 3
0
 def test_it_allows_accept_setting_override(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config,
                             view,
                             accept="application/xml",
                             route_name="thing.read")
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs["accept"] == "application/xml"
Exemplo n.º 4
0
 def test_it_adds_default_version_accept(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config,
                             view,
                             versions=["v1"],
                             route_name="thing.read")
     (_, kwargs) = pyramid_config.add_view.call_args_list[1]
     assert kwargs["accept"] == "application/vnd.hypothesis.v1+json"
Exemplo n.º 5
0
 def test_it_adds_cors_preflight_view(self, pyramid_config, view, cors):
     api_config.add_api_view(
         pyramid_config, view, versions=["v1"], route_name="thing.read"
     )
     ([_, route_name, policy], _) = cors.add_preflight_view.call_args
     assert route_name == "thing.read"
     assert policy == api_config.cors_policy
Exemplo n.º 6
0
 def test_it_sets_cors_decorator(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config,
                             view,
                             versions=["v1"],
                             route_name="thing.read")
     (_, kwargs) = pyramid_config.add_view.call_args_list[0]
     assert kwargs["decorator"] == api_config.cors_policy
Exemplo n.º 7
0
 def test_it_sets_accept_setting(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config,
                             view,
                             versions=["v1"],
                             route_name="thing.read")
     (_, kwargs) = pyramid_config.add_view.call_args_list[0]
     assert kwargs["accept"] == "application/json"
Exemplo n.º 8
0
 def test_it_allows_renderer_setting_override(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config,
                             view,
                             route_name='thing.read',
                             renderer='xml')
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['renderer'] == 'xml'
Exemplo n.º 9
0
 def test_it_raises_ValueError_on_unrecognized_version(
         self, pyramid_config, view):
     with pytest.raises(ValueError, match="Unrecognized API version"):
         api_config.add_api_view(pyramid_config,
                                 view,
                                 versions=["v3"],
                                 route_name="thing.read")
Exemplo n.º 10
0
 def test_it_does_not_add_cors_preflight_view_if_disabled(
         self, pyramid_config, view, cors):
     api_config.add_api_view(pyramid_config,
                             view,
                             route_name='thing.read',
                             enable_preflight=False)
     assert cors.add_preflight_view.call_count == 0
Exemplo n.º 11
0
    def test_it_adds_api_links_to_registry(
        self,
        pyramid_config,
        view,
        links,
        link_name,
        route_name,
        description,
        request_method,
    ):
        kwargs = {}
        if request_method:
            kwargs["request_method"] = request_method

        api_config.add_api_view(pyramid_config,
                                view=view,
                                versions=["v1"],
                                link_name=link_name,
                                description=description,
                                route_name=route_name,
                                **kwargs)

        if link_name:
            links.register_link.assert_called_once_with(
                link=links.ServiceLink(
                    name=link_name,
                    route_name=route_name,
                    method=request_method,
                    description=description,
                ),
                versions=["v1"],
                registry=pyramid_config.registry,
            )
        else:
            links.register_link.assert_not_called()
Exemplo n.º 12
0
 def test_it_sets_renderer_setting(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config,
                             view,
                             versions=["v1"],
                             route_name="thing.read")
     (_, kwargs) = pyramid_config.add_view.call_args_list[0]
     assert kwargs["renderer"] == "json"
Exemplo n.º 13
0
 def test_it_allows_accept_setting_override(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config,
                             view,
                             accept='application/xml',
                             route_name='thing.read')
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['accept'] == 'application/xml'
Exemplo n.º 14
0
 def test_it_allows_decorator_override(self, pyramid_config, view):
     decorator = mock.Mock()
     api_config.add_api_view(pyramid_config,
                             view,
                             route_name='thing.read',
                             decorator=decorator)
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['decorator'] == decorator
Exemplo n.º 15
0
 def test_it_doesnt_set_default_accept_if_view_doesnt_support_default_version(
     self, pyramid_config, view
 ):
     api_config.add_api_view(
         pyramid_config, view, versions=["v2"], route_name="thing.read"
     )
     (_, kwargs) = pyramid_config.add_view.call_args_list[0]
     assert kwargs["accept"] != "application/json"
Exemplo n.º 16
0
    def test_it_adds_default_version_accept(
        self, pyramid_config, view, media_type_for_version
    ):
        api_config.add_api_view(
            pyramid_config, view, versions=["v1"], route_name="thing.read"
        )
        (_, kwargs) = pyramid_config.add_view.call_args_list[1]

        media_type_for_version.assert_called_once_with("v1")
        assert kwargs["accept"] == media_type_for_version.return_value
Exemplo n.º 17
0
 def test_it_does_not_add_cors_preflight_view_if_disabled(
         self, pyramid_config, view, cors):
     api_config.add_api_view(
         pyramid_config,
         view,
         versions=["v1"],
         route_name="thing.read",
         enable_preflight=False,
     )
     assert not cors.add_preflight_view.call_count
Exemplo n.º 18
0
 def test_it_allows_decorator_override(self, pyramid_config, view):
     decorator = mock.Mock()
     api_config.add_api_view(
         pyramid_config,
         view,
         versions=["v1"],
         route_name="thing.read",
         decorator=decorator,
     )
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs["decorator"] == decorator
Exemplo n.º 19
0
    def test_it_sets_default_decorators(self, pyramid_config, view,
                                        version_media_type_header):
        api_config.add_api_view(pyramid_config,
                                view,
                                versions=["v1"],
                                route_name="thing.read")
        _, kwargs = pyramid_config.add_view.call_args_list[0]

        assert kwargs["decorator"] == (
            api_config.cors_policy,
            version_media_type_header("json"),
        )
Exemplo n.º 20
0
    def test_it_adds_api_links_to_registry(self, pyramid_config, view,
                                           link_name, route_name, description,
                                           request_method, expected_method):
        kwargs = {}
        if request_method:
            kwargs['request_method'] = request_method

        api_config.add_api_view(pyramid_config, view=view,
                                link_name=link_name,
                                description=description,
                                route_name=route_name,
                                **kwargs)

        assert pyramid_config.registry.api_links == [{
            'name': link_name,
            'description': description,
            'method': expected_method,
            'route_name': route_name,
        }]
Exemplo n.º 21
0
    def test_it_adds_api_links_to_registry(self, pyramid_config, view,
                                           link_name, route_name, description,
                                           request_method, expected_method):
        kwargs = {}
        if request_method:
            kwargs['request_method'] = request_method

        api_config.add_api_view(pyramid_config,
                                view=view,
                                link_name=link_name,
                                description=description,
                                route_name=route_name,
                                **kwargs)

        assert pyramid_config.registry.api_links == [{
            'name': link_name,
            'description': description,
            'method': expected_method,
            'route_name': route_name,
        }]
Exemplo n.º 22
0
 def test_it_sets_accept_setting(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config, view, route_name='thing.read')
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['accept'] == 'application/json'
Exemplo n.º 23
0
 def test_it_sets_accept_setting(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config, view, route_name='thing.read')
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['accept'] == 'application/json'
Exemplo n.º 24
0
 def test_it_allows_accept_setting_override(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config, view, accept='application/xml',
                             route_name='thing.read')
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['accept'] == 'application/xml'
Exemplo n.º 25
0
 def test_it_sets_renderer_setting(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config, view, route_name='thing.read')
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['renderer'] == 'json'
Exemplo n.º 26
0
 def test_it_allows_renderer_setting_override(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config, view, route_name='thing.read', renderer='xml')
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['renderer'] == 'xml'
Exemplo n.º 27
0
 def test_it_sets_cors_decorator(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config, view, route_name='thing.read')
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['decorator'] == api_config.cors_policy
Exemplo n.º 28
0
 def test_it_adds_cors_preflight_view(self, pyramid_config, view, cors):
     api_config.add_api_view(pyramid_config, view, route_name='thing.read')
     ([_, route_name, policy], _) = cors.add_preflight_view.call_args
     assert route_name == 'thing.read'
     assert policy == api_config.cors_policy
Exemplo n.º 29
0
 def test_it_does_not_add_cors_preflight_view_if_disabled(self, pyramid_config, view, cors):
     api_config.add_api_view(pyramid_config, view, route_name='thing.read',
                             enable_preflight=False)
     assert cors.add_preflight_view.call_count == 0
Exemplo n.º 30
0
 def test_it_allows_decorator_override(self, pyramid_config, view):
     decorator = mock.Mock()
     api_config.add_api_view(pyramid_config, view, route_name='thing.read', decorator=decorator)
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['decorator'] == decorator
Exemplo n.º 31
0
 def test_it_adds_cors_preflight_view(self, pyramid_config, view, cors):
     api_config.add_api_view(pyramid_config, view, route_name='thing.read')
     ([_, route_name, policy], _) = cors.add_preflight_view.call_args
     assert route_name == 'thing.read'
     assert policy == api_config.cors_policy
Exemplo n.º 32
0
 def test_it_sets_cors_decorator(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config, view, route_name='thing.read')
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['decorator'] == api_config.cors_policy
Exemplo n.º 33
0
 def test_it_sets_renderer_setting(self, pyramid_config, view):
     api_config.add_api_view(pyramid_config, view, route_name='thing.read')
     (_, kwargs) = pyramid_config.add_view.call_args
     assert kwargs['renderer'] == 'json'