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(), }, )
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)
def test_default_arguments_are_used_for_record_arguments(self, mocked): 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) viewset.responses = mock.MagicMock() arguments = viewset.record_arguments(mock.MagicMock(), 'get') self.assertDictEqual( arguments, { 'schema': mocked().bind(), 'accept': mock.sentinel.accept, 'cors_headers': mock.sentinel.cors_headers, 'cors_origins': mock.sentinel.record_cors_origins, 'error_handler': mock.sentinel.error_handler, 'validators': [colander_validator], 'response_schemas': viewset.responses.get_and_bind() })
def test_default_arguments_are_copied_before_being_returned(self): original_arguments = {} viewset = ViewSet(plural_get_arguments=original_arguments) viewset.responses = mock.MagicMock() arguments = viewset.plural_arguments(mock.MagicMock(), "GET") self.assertEqual(original_arguments, {}) self.assertNotEquals(original_arguments, arguments)
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)
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() } )
def test_class_parameters_are_used_for_plural_arguments(self, mocked): default_arguments = {"cors_headers": mock.sentinel.cors_headers} default_get_arguments = {"accept": mock.sentinel.accept} default_plural_arguments = {"cors_origins": mock.sentinel.cors_origins} plural_get_arguments = {"error_handler": mock.sentinel.error_handler} viewset = ViewSet( default_arguments=default_arguments, default_get_arguments=default_get_arguments, default_plural_arguments=default_plural_arguments, plural_get_arguments=plural_get_arguments, ) viewset.responses = mock.MagicMock() arguments = viewset.plural_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(), }, )
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()
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.plural_arguments(resource, "GET") self.assertNotEqual(arguments["schema"], resource.schema) mocked.assert_called_with()
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(), }, )
def test_service_arguments_arent_inherited_by_object_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_object_arguments={}, object_get_arguments={}, ) viewset.responses = mock.MagicMock() arguments = viewset.object_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(), }, )
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(), }, )
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(), }, )
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")
def test_schema_is_added_when_uppercase_method_matches(self): viewset = ViewSet(plural_methods=("GET", "DELETE")) viewset.responses = mock.MagicMock() arguments = viewset.plural_arguments(mock.MagicMock(), "get") self.assertIn("schema", arguments)
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)
def test_permission_private_is_set_by_default(self): viewset = ViewSet() viewset.responses = mock.MagicMock() args = viewset.plural_arguments(mock.MagicMock(), "GET") self.assertEqual(args["permission"], "private")
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)
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)
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')
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)
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")