Ejemplo n.º 1
0
 def test_get_service_name_returns_resource_att_if_not_callable(self):
     viewset = ViewSet()
     resource = mock.MagicMock()
     resource.name = 'fakename'
     self.assertEquals(
         viewset.get_service_name('record', resource),
         'fakename-record')
Ejemplo n.º 2
0
    def test_class_parameters_are_used_for_collection_arguments(self, mocked):
        default_arguments = {"cors_headers": mock.sentinel.cors_headers}

        default_get_arguments = {"accept": mock.sentinel.accept}

        default_collection_arguments = {"cors_origins": mock.sentinel.cors_origins}

        collection_get_arguments = {"error_handler": mock.sentinel.error_handler}

        viewset = ViewSet(
            default_arguments=default_arguments,
            default_get_arguments=default_get_arguments,
            default_collection_arguments=default_collection_arguments,
            collection_get_arguments=collection_get_arguments,
        )

        viewset.responses = mock.MagicMock()
        arguments = viewset.collection_arguments(mock.MagicMock(), "get")

        self.assertDictEqual(
            arguments,
            {
                "schema": mocked().bind(),
                "accept": mock.sentinel.accept,
                "cors_headers": mock.sentinel.cors_headers,
                "cors_origins": mock.sentinel.cors_origins,
                "error_handler": mock.sentinel.error_handler,
                "validators": [colander_validator],
                "response_schemas": viewset.responses.get_and_bind(),
            },
        )
Ejemplo n.º 3
0
    def test_class_parameters_overwrite_each_others(self):
        # Some class parameters should overwrite each others.
        # The more specifics should prevail over the more generics.
        # Items annoted with a "<<" are the one that should prevail.
        default_arguments = {
            'cors_origins': mock.sentinel.default_cors_origins,
            'error_handler': mock.sentinel.default_error_handler,
            'cors_headers': mock.sentinel.default_cors_headers,  # <<
        }
        default_record_arguments = {
            'cors_origins': mock.sentinel.default_record_cors_origin,
            'error_handler': mock.sentinel.default_record_error_handler,  # <<
        }

        record_get_arguments = {
            'cors_origins': mock.sentinel.record_get_cors_origin,  # <<
        }

        viewset = ViewSet(
            default_arguments=default_arguments,
            default_record_arguments=default_record_arguments,
            record_get_arguments=record_get_arguments,
        )

        arguments = viewset.record_arguments(mock.MagicMock, 'get')
        arguments.pop('schema')

        self.assertDictEqual(
            arguments,
            {
                'cors_headers': mock.sentinel.default_cors_headers,
                'error_handler': mock.sentinel.default_record_error_handler,
                'cors_origins': mock.sentinel.record_get_cors_origin,
            }
        )
Ejemplo n.º 4
0
 def test_default_arguments_are_copied_before_being_returned(self):
     original_arguments = {}
     viewset = ViewSet(collection_get_arguments=original_arguments)
     viewset.responses = mock.MagicMock()
     arguments = viewset.collection_arguments(mock.MagicMock(), "GET")
     self.assertEqual(original_arguments, {})
     self.assertNotEquals(original_arguments, arguments)
Ejemplo n.º 5
0
    def test_class_parameters_are_used_for_collection_arguments(self):
        default_arguments = {
            'cors_headers': mock.sentinel.cors_headers,
        }

        default_get_arguments = {
            'accept': mock.sentinel.accept,
        }

        default_collection_arguments = {
            'cors_origins': mock.sentinel.cors_origins,
        }

        collection_get_arguments = {
            'error_handler': mock.sentinel.error_handler
        }

        viewset = ViewSet(
            default_arguments=default_arguments,
            default_get_arguments=default_get_arguments,
            default_collection_arguments=default_collection_arguments,
            collection_get_arguments=collection_get_arguments
        )

        arguments = viewset.collection_arguments(mock.MagicMock, 'get')
        arguments.pop('schema')
        self.assertDictEqual(
            arguments,
            {
                'accept': mock.sentinel.accept,
                'cors_headers': mock.sentinel.cors_headers,
                'cors_origins': mock.sentinel.cors_origins,
                'error_handler': mock.sentinel.error_handler,
            }
        )
Ejemplo n.º 6
0
 def test_get_service_name_doesnt_use_callable_as_a_name(self):
     viewset = ViewSet()
     resource = mock.MagicMock()
     resource.name = lambda x: 'should not be called'
     resource.__name__ = "FakeName"
     self.assertEquals(
         viewset.get_service_name('record', resource),
         'fakename-record')
Ejemplo n.º 7
0
 def test_is_endpoint_enabled_returns_true_if_enabled(self):
     viewset = ViewSet()
     config = {
         'record_fake_get_enabled': True
     }
     is_enabled = viewset.is_endpoint_enabled('record', 'fake', 'get',
                                              config)
     self.assertTrue(is_enabled)
Ejemplo n.º 8
0
 def test_is_endpoint_enabled_returns_false_for_delete_if_readonly(self):
     viewset = ViewSet()
     config = {
         'readonly': True
     }
     is_enabled = viewset.is_endpoint_enabled('record', 'fake', 'delete',
                                              config)
     self.assertFalse(is_enabled)
Ejemplo n.º 9
0
 def test_is_endpoint_enabled_returns_true_for_head_if_readonly(self):
     viewset = ViewSet()
     config = {
         'readonly': True
     }
     is_enabled = viewset.is_endpoint_enabled('record', 'fake', 'head',
                                              config)
     self.assertTrue(is_enabled)
Ejemplo n.º 10
0
 def test_schema_is_added_when_uppercase_method_matches(self):
     viewset = ViewSet(
         validate_schema_for=('GET', )
     )
     resource = mock.MagicMock(mapping=colander.SchemaNode(colander.Int()))
     arguments = viewset.collection_arguments(resource, 'get')
     schema = arguments['schema']
     self.assertEquals(schema.children[0], resource.mapping)
Ejemplo n.º 11
0
 def test_default_arguments_are_copied_before_being_returned(self):
     original_arguments = {}
     viewset = ViewSet(
         collection_get_arguments=original_arguments,
         validate_schema_for=()
     )
     arguments = viewset.collection_arguments(mock.sentinel.resource, 'GET')
     self.assertEquals(original_arguments, {})
     self.assertNotEquals(original_arguments, arguments)
Ejemplo n.º 12
0
    def test_a_default_schema_is_added_when_method_doesnt_match(self, mocked):
        viewset = ViewSet()
        resource = mock.MagicMock()
        viewset.responses = mock.MagicMock()
        mocked.Mapping.return_value = mock.sentinel.default_schema

        arguments = viewset.collection_arguments(resource, "GET")
        self.assertNotEqual(arguments["schema"], resource.schema)

        mocked.assert_called_with()
Ejemplo n.º 13
0
    def test_a_default_schema_is_added_when_method_doesnt_match(self, mocked):
        viewset = ViewSet(
            validate_schema_for=('GET', )
        )
        resource = mock.MagicMock()
        mocked.MappingSchema.return_value = mock.sentinel.default_schema

        arguments = viewset.collection_arguments(resource, 'POST')
        self.assertEquals(arguments['schema'], mock.sentinel.default_schema)
        self.assertNotEqual(arguments['schema'], resource.mapping)

        mocked.MappingSchema.assert_called_with(unknown='preserve')
Ejemplo n.º 14
0
 def test_request_schemas_have_header_and_querystring(self):
     self.viewset = ViewSet(
         default_get_arguments={}, default_record_arguments={}, record_get_arguments={}
     )
     arguments = self.viewset.record_arguments(self.resource, "GET")
     schema = arguments["schema"]
     self.assertIn("querystring", schema)
     self.assertIn("header", schema)
Ejemplo n.º 15
0
    def test_service_arguments_arent_inherited_by_record_arguments(self, mocked):
        service_arguments = {"description": "The little book of calm"}

        default_arguments = {"cors_headers": mock.sentinel.cors_headers}
        viewset = ViewSet(
            default_arguments=default_arguments,
            service_arguments=service_arguments,
            default_record_arguments={},
            record_get_arguments={},
        )

        viewset.responses = mock.MagicMock()
        arguments = viewset.record_arguments(mock.MagicMock(), "get")

        self.assertDictEqual(
            arguments,
            {
                "schema": mocked().bind(),
                "cors_headers": mock.sentinel.cors_headers,
                "validators": [colander_validator],
                "response_schemas": viewset.responses.get_and_bind(),
            },
        )
Ejemplo n.º 16
0
    def test_class_parameters_overwrite_each_others(self, mocked):
        # Some class parameters should overwrite each others.
        # The more specifics should prevail over the more generics.
        # Items annoted with a "<<" are the one that should prevail.
        default_arguments = {
            "cors_origins": mock.sentinel.default_cors_origins,
            "error_handler": mock.sentinel.default_error_handler,
            "cors_headers": mock.sentinel.default_cors_headers,  # <<
        }
        default_record_arguments = {
            "cors_origins": mock.sentinel.default_record_cors_origin,
            "error_handler": mock.sentinel.default_record_error_handler,  # <<
        }

        record_get_arguments = {"cors_origins": mock.sentinel.record_get_cors_origin}  # <<

        viewset = ViewSet(
            default_arguments=default_arguments,
            default_record_arguments=default_record_arguments,
            record_get_arguments=record_get_arguments,
        )

        viewset.responses = mock.MagicMock()
        arguments = viewset.record_arguments(mock.MagicMock(), "get")

        self.assertDictEqual(
            arguments,
            {
                "schema": mocked().bind(),
                "cors_headers": mock.sentinel.default_cors_headers,
                "error_handler": mock.sentinel.default_record_error_handler,
                "cors_origins": mock.sentinel.record_get_cors_origin,
                "validators": [colander_validator],
                "response_schemas": viewset.responses.get_and_bind(),
            },
        )
Ejemplo n.º 17
0
    def test_default_arguments_are_used_for_record_arguments(self):
        default_arguments = {
            'cors_headers': mock.sentinel.cors_headers,
        }

        default_get_arguments = {
            'accept': mock.sentinel.accept,
        }

        default_record_arguments = {
            'cors_origins': mock.sentinel.record_cors_origins,
        }

        record_get_arguments = {
            'error_handler': mock.sentinel.error_handler
        }

        viewset = ViewSet(
            default_arguments=default_arguments,
            default_get_arguments=default_get_arguments,
            default_record_arguments=default_record_arguments,
            record_get_arguments=record_get_arguments
        )

        arguments = viewset.record_arguments(mock.MagicMock, 'get')
        arguments.pop('schema')

        self.assertDictEqual(
            arguments,
            {
                'accept': mock.sentinel.accept,
                'cors_headers': mock.sentinel.cors_headers,
                'cors_origins': mock.sentinel.record_cors_origins,
                'error_handler': mock.sentinel.error_handler,
            }
        )
Ejemplo n.º 18
0
    def test_service_arguments_arent_inherited_by_record_arguments(self):
        service_arguments = {
            'description': 'The little book of calm',
        }

        default_arguments = {
            'cors_headers': mock.sentinel.cors_headers,
        }

        viewset = ViewSet(
            default_arguments=default_arguments,
            service_arguments=service_arguments,
            default_record_arguments={},
            record_get_arguments={}
        )

        arguments = viewset.record_arguments(mock.MagicMock, 'get')
        arguments.pop('schema')
        self.assertDictEqual(
            arguments,
            {
                'cors_headers': mock.sentinel.cors_headers,
            }
        )
Ejemplo n.º 19
0
class TestViewsetBindedSchemas(unittest.TestCase):
    def setUp(self):
        self.viewset = ViewSet()
        self.viewset.responses = mock.MagicMock()
        self.resource = mock.MagicMock()

    def test_request_schemas_have_header_and_querystring(self):
        self.viewset = ViewSet(
            default_get_arguments={}, default_record_arguments={}, record_get_arguments={}
        )
        arguments = self.viewset.record_arguments(self.resource, "GET")
        schema = arguments["schema"]
        self.assertIn("querystring", schema)
        self.assertIn("header", schema)

    def test_payload_request_schemas_have_a_body(self):
        arguments = self.viewset.record_arguments(self.resource, "PUT")
        schema = arguments["schema"]
        self.assertIn("body", schema)

    def test_collection_deserialize_sort(self):
        arguments = self.viewset.collection_arguments(self.resource, "DELETE")
        schema = arguments["schema"]
        value = {"querystring": {"_sort": "foo,-bar"}}
        deserialized = schema.deserialize(value)
        expected = {"querystring": {"_sort": ["foo", "-bar"]}}
        self.assertEqual(deserialized, expected)

    def test_get_collection_deserialize_fields(self):
        arguments = self.viewset.collection_arguments(self.resource, "GET")
        schema = arguments["schema"]
        value = {"querystring": {"_fields": "foo,bar"}}
        deserialized = schema.deserialize(value)
        expected = {"querystring": {"_fields": ["foo", "bar"]}}
        self.assertEqual(deserialized, expected)

    def test_get_record_deserialize_fields(self):
        arguments = self.viewset.record_arguments(self.resource, "GET")
        schema = arguments["schema"]
        value = {"querystring": {"_fields": "foo,bar"}}
        deserialized = schema.deserialize(value)
        expected = {"querystring": {"_fields": ["foo", "bar"]}}
        self.assertEqual(deserialized, expected)

    def test_patch_record_validate_response_behavior(self):
        arguments = self.viewset.collection_arguments(self.resource, "PATCH")
        schema = arguments["schema"]
        invalid = {"header": {"Response-Behavior": "impolite"}}
        self.assertRaises(colander.Invalid, schema.deserialize, invalid)
Ejemplo n.º 20
0
 def test_schema_is_added_when_uppercase_method_matches(self):
     viewset = ViewSet(collection_methods=("GET", "DELETE"))
     viewset.responses = mock.MagicMock()
     arguments = viewset.collection_arguments(mock.MagicMock(), "get")
     self.assertIn("schema", arguments)
Ejemplo n.º 21
0
 def test_arguments_are_merged_on_initialization(self):
     viewset = ViewSet(plural_path=mock.sentinel.plural_path)
     self.assertEqual(viewset.plural_path, mock.sentinel.plural_path)
Ejemplo n.º 22
0
 def test_get_service_arguments_has_no_factory_by_default(self):
     viewset = ViewSet()
     service_arguments = viewset.get_service_arguments()
     self.assertNotIn("factory", service_arguments)
Ejemplo n.º 23
0
 def test_is_endpoint_enabled_returns_false_if_disabled(self):
     viewset = ViewSet()
     config = {"object_fake_get_enabled": False}
     is_enabled = viewset.is_endpoint_enabled("object", "fake", "get", config)
     self.assertFalse(is_enabled)
Ejemplo n.º 24
0
 def test_is_endpoint_enabled_returns_true_for_options_if_readonly(self):
     viewset = ViewSet()
     config = {"readonly": True}
     is_enabled = viewset.is_endpoint_enabled("object", "fake", "options",
                                              config)
     self.assertTrue(is_enabled)
Ejemplo n.º 25
0
 def test_get_service_name_returns_resource_att_if_not_callable(self):
     viewset = ViewSet()
     resource = mock.MagicMock()
     resource.name = "fakename"
     self.assertEqual(viewset.get_service_name("object", resource), "fakename-object")
Ejemplo n.º 26
0
 def test_schema_is_added_when_uppercase_method_matches(self):
     viewset = ViewSet(collection_methods=("GET", "DELETE"))
     viewset.responses = mock.MagicMock()
     arguments = viewset.collection_arguments(mock.MagicMock(), "get")
     self.assertIn("schema", arguments)
Ejemplo n.º 27
0
 def test_permission_private_is_set_by_default(self):
     viewset = ViewSet()
     args = viewset.collection_arguments(mock.sentinel.resource, 'GET')
     self.assertEquals(args['permission'], 'private')
Ejemplo n.º 28
0
 def test_is_endpoint_enabled_returns_false_for_delete_if_readonly(self):
     viewset = ViewSet()
     config = {"readonly": True}
     is_enabled = viewset.is_endpoint_enabled("record", "fake", "delete",
                                              config)
     self.assertFalse(is_enabled)
Ejemplo n.º 29
0
 def test_is_endpoint_enabled_returns_true_for_head_if_readonly(self):
     viewset = ViewSet()
     config = {"readonly": True}
     is_enabled = viewset.is_endpoint_enabled("record", "fake", "head",
                                              config)
     self.assertTrue(is_enabled)
Ejemplo n.º 30
0
 def test_is_endpoint_enabled_returns_true_if_enabled(self):
     viewset = ViewSet()
     config = {"record_fake_get_enabled": True}
     is_enabled = viewset.is_endpoint_enabled("record", "fake", "get",
                                              config)
     self.assertTrue(is_enabled)
Ejemplo n.º 31
0
 def test_default_arguments_are_copied_before_being_returned(self):
     original_arguments = {}
     viewset = ViewSet(collection_get_arguments=original_arguments)
     arguments = viewset.collection_arguments(mock.MagicMock(), 'GET')
     self.assertEquals(original_arguments, {})
     self.assertNotEquals(original_arguments, arguments)
Ejemplo n.º 32
0
 def test_schema_is_added_when_method_matches(self):
     viewset = ViewSet()
     viewset.responses = mock.MagicMock()
     resource = mock.MagicMock()
     arguments = viewset.plural_arguments(resource, "GET")
     self.assertIn("schema", arguments)
Ejemplo n.º 33
0
 def setUp(self):
     self.viewset = ViewSet()
     self.viewset.responses = mock.MagicMock()
     self.resource = mock.MagicMock()
Ejemplo n.º 34
0
 def setUp(self):
     self.viewset = ViewSet()
     self.viewset.responses = mock.MagicMock()
     self.resource = mock.MagicMock()
Ejemplo n.º 35
0
 def test_is_endpoint_enabled_returns_true_for_head_if_readonly(self):
     viewset = ViewSet()
     config = {"readonly": True}
     is_enabled = viewset.is_endpoint_enabled("record", "fake", "head", config)
     self.assertTrue(is_enabled)
Ejemplo n.º 36
0
 def test_permission_private_is_set_by_default(self):
     viewset = ViewSet()
     viewset.responses = mock.MagicMock()
     args = viewset.collection_arguments(mock.MagicMock(), 'GET')
     self.assertEqual(args['permission'], 'private')
Ejemplo n.º 37
0
 def test_get_service_name_returns_resource_att_if_not_callable(self):
     viewset = ViewSet()
     resource = mock.MagicMock()
     resource.name = "fakename"
     self.assertEqual(viewset.get_service_name("record", resource), "fakename-record")
Ejemplo n.º 38
0
 def test_schema_is_added_when_method_matches(self):
     viewset = ViewSet()
     viewset.responses = mock.MagicMock()
     resource = mock.MagicMock()
     arguments = viewset.collection_arguments(resource, 'GET')
     self.assertIn('schema', arguments)
Ejemplo n.º 39
0
 def test_get_service_name_returns_the_viewset_name_if_defined(self):
     viewset = ViewSet(name="fakename")
     self.assertEqual(viewset.get_service_name("object", mock.MagicMock), "fakename-object")
Ejemplo n.º 40
0
 def test_schema_is_added_when_uppercase_method_matches(self):
     viewset = ViewSet(validate_schema_for=('GET', ))
     resource = mock.MagicMock()
     arguments = viewset.collection_arguments(resource, 'get')
     self.assertIn('schema', arguments)
Ejemplo n.º 41
0
 def test_get_service_name_doesnt_use_callable_as_a_name(self):
     viewset = ViewSet()
     resource = mock.MagicMock()
     resource.name = lambda x: "should not be called"
     resource.__name__ = "FakeName"
     self.assertEqual(viewset.get_service_name("object", resource), "fakename-object")
Ejemplo n.º 42
0
 def test_get_service_name_returns_the_viewset_name_if_defined(self):
     viewset = ViewSet(name='fakename')
     self.assertEquals(viewset.get_service_name('record', mock.MagicMock),
                       'fakename-record')
Ejemplo n.º 43
0
 def test_is_endpoint_enabled_returns_true_if_unknown(self):
     viewset = ViewSet()
     config = {}
     is_enabled = viewset.is_endpoint_enabled("object", "fake", "get", config)
     self.assertTrue(is_enabled)
Ejemplo n.º 44
0
 def test_get_service_name_returns_the_viewset_name_if_defined(self):
     viewset = ViewSet(name='fakename')
     self.assertEquals(
         viewset.get_service_name('record', mock.MagicMock),
         'fakename-record')
Ejemplo n.º 45
0
 def test_permission_dynamic_is_set_by_default(self):
     viewset = ViewSet()
     viewset.responses = mock.MagicMock()
     resource = mock.MagicMock()
     args = viewset.plural_arguments(resource, "GET")
     self.assertEqual(args["permission"], "dynamic")
Ejemplo n.º 46
0
 def test_permission_private_is_set_by_default(self):
     viewset = ViewSet()
     viewset.responses = mock.MagicMock()
     args = viewset.collection_arguments(mock.MagicMock(), "GET")
     self.assertEqual(args["permission"], "private")
Ejemplo n.º 47
0
 def test_get_service_name_returns_resource_att_if_not_callable(self):
     viewset = ViewSet()
     resource = mock.MagicMock()
     resource.name = 'fakename'
     self.assertEquals(viewset.get_service_name('record', resource),
                       'fakename-record')
Ejemplo n.º 48
0
 def test_get_service_arguments_has_default_factory(self):
     viewset = ViewSet()
     args = viewset.get_service_arguments()
     self.assertEqual(args["factory"], authorization.RouteFactory)
Ejemplo n.º 49
0
 def test_schema_is_added_when_method_matches(self):
     viewset = ViewSet()
     viewset.responses = mock.MagicMock()
     resource = mock.MagicMock()
     arguments = viewset.collection_arguments(resource, "GET")
     self.assertIn("schema", arguments)
Ejemplo n.º 50
0
 def test_is_endpoint_enabled_returns_true_if_enabled(self):
     viewset = ViewSet()
     config = {'record_fake_get_enabled': True}
     is_enabled = viewset.is_endpoint_enabled('record', 'fake', 'get',
                                              config)
     self.assertTrue(is_enabled)
Ejemplo n.º 51
0
 def test_get_service_arguments_has_no_factory_by_default(self):
     viewset = ViewSet()
     service_arguments = viewset.get_service_arguments()
     self.assertNotIn('factory', service_arguments)
Ejemplo n.º 52
0
 def test_is_endpoint_enabled_returns_false_for_delete_if_readonly(self):
     viewset = ViewSet()
     config = {'readonly': True}
     is_enabled = viewset.is_endpoint_enabled('record', 'fake', 'delete',
                                              config)
     self.assertFalse(is_enabled)
Ejemplo n.º 53
0
 def test_is_endpoint_enabled_returns_true_for_head_if_readonly(self):
     viewset = ViewSet()
     config = {'readonly': True}
     is_enabled = viewset.is_endpoint_enabled('record', 'fake', 'head',
                                              config)
     self.assertTrue(is_enabled)
Ejemplo n.º 54
0
 def test_arguments_are_merged_on_initialization(self):
     viewset = ViewSet(collection_path=mock.sentinel.collection_path)
     self.assertEquals(viewset.collection_path,
                       mock.sentinel.collection_path)
Ejemplo n.º 55
0
 def test_is_endpoint_enabled_returns_false_for_delete_if_readonly(self):
     viewset = ViewSet()
     config = {"readonly": True}
     is_enabled = viewset.is_endpoint_enabled("record", "fake", "delete", config)
     self.assertFalse(is_enabled)
Ejemplo n.º 56
0
 def test_permission_private_is_set_by_default(self):
     viewset = ViewSet()
     args = viewset.collection_arguments(mock.sentinel.resource, 'GET')
     self.assertEquals(args['permission'], 'private')
Ejemplo n.º 57
0
 def test_is_endpoint_enabled_returns_true_if_enabled(self):
     viewset = ViewSet()
     config = {"record_fake_get_enabled": True}
     is_enabled = viewset.is_endpoint_enabled("record", "fake", "get", config)
     self.assertTrue(is_enabled)
Ejemplo n.º 58
0
 def test_schema_is_added_when_uppercase_method_matches(self):
     viewset = ViewSet(validate_schema_for=('GET', ))
     resource = mock.MagicMock(mapping=colander.SchemaNode(colander.Int()))
     arguments = viewset.collection_arguments(resource, 'get')
     schema = arguments['schema']
     self.assertEquals(schema.children[0], resource.mapping)
Ejemplo n.º 59
0
 def test_schema_is_added_when_uppercase_method_matches(self):
     viewset = ViewSet(collection_methods=('GET', 'DELETE'))
     viewset.responses = mock.MagicMock()
     arguments = viewset.collection_arguments(mock.MagicMock(), 'get')
     self.assertIn('schema', arguments)
Ejemplo n.º 60
0
 def test_is_endpoint_enabled_returns_false_for_patch_if_readonly(self):
     viewset = ViewSet()
     config = {"readonly": True}
     is_enabled = viewset.is_endpoint_enabled("object", "fake", "patch",
                                              config)
     self.assertFalse(is_enabled)