def test_to_representation_raises_improperly_configured(self): class FakeModel(object): def __init__(self, pk): self.pk = pk def __str__(self): return "object.pk={}".format(self.pk) class FakeHyperlinkField(self.CustomHyperlinkedRelatedField): def is_saved_in_database(self, obj): return True def get_lookup_value(self, obj): return () router = SimpleRouter() url_configuration = { 'path': 'wss://127.0.0.1:8000', 'urls': router._urls, 'routes': router._routes } set_urlconf(url_configuration) instance = FakeHyperlinkField('test_view', read_only=True) with self.assertRaises(ImproperlyConfigured): instance.to_representation(FakeModel(1))
def test_generate_factory(self): url = self.app.generate_url('127.0.0.1', 8080) factory = self.app.generate_factory(url, log_level='debug', router=SimpleRouter()) self.assertEqual(factory.log._log_level, 'debug') self.assertIsInstance(factory.router, SimpleRouter)
def test_to_representation_returns_none(self): class FakeModel(object): def __init__(self, pk): self.pk = pk def __str__(self): return "object.pk={}".format(self.pk) class FakeHyperlinkField(self.CustomHyperlinkedRelatedField): def is_saved_in_database(self, obj): return False def get_lookup_value(self, obj): return (1, ) router = SimpleRouter() router.register('/test_view/{pk}', FakeView, 'GET', name='test_view') url_configuration = { 'path': 'wss://127.0.0.1:8000', 'urls': router._urls, 'routes': router._routes } set_urlconf(url_configuration) instance = FakeHyperlinkField('test_view', read_only=True) self.assertIsNone(instance.to_representation(FakeModel(1)))
def test_to_internal_value_raises_error_with_fixing_url(self): class FakeModel(object): def __init__(self, pk): self.pk = pk class FakeHyperlinkField(self.CustomHyperlinkedRelatedField): def get_object(self, view_name, view_args, view_kwargs): return FakeModel(1) router = SimpleRouter() router.register('/test_view/{pk}', FakeView, 'GET', name='test_view') url_configuration = { 'path': 'wss://127.0.0.1:8000', 'urls': router._urls, 'routes': router._routes } set_urlconf(url_configuration) instance = FakeHyperlinkField('test_view', read_only=True) data = {'url': 'test_view/1'} obj = instance.to_internal_value(data) self.assertIsInstance(obj, FakeModel) self.assertEqual(obj.pk, 1)
def test_generate_factory_3(self): url = self.app.generate_url('127.0.0.1', 8080) factory = self.app.generate_factory(url, router=SimpleRouter(), compress=True) self.assertEqual(factory.log._log_level, 'info') self.assertIsInstance(factory.router, SimpleRouter) self.assertEqual(factory.perMessageCompressionAccept, accept)
def test_to_internal_value_raises_error_for_incorrect_type(self): router = SimpleRouter() router.register('/test_view/{pk}', FakeView, 'GET', name='test_view') url_configuration = { 'path': 'wss://127.0.0.1:8000/', 'urls': router._urls, 'routes': router._routes } set_urlconf(url_configuration) instance = self.CustomHyperlinkedRelatedField( 'test_view', read_only=True ) with self.assertRaises(ValidationError): instance.to_internal_value('not a dict')
def test_to_internal_value_raises_error_for_no_primary_key(self): router = SimpleRouter() router.register('/test_view/{pk}', FakeView, 'GET', name='test_view') url_configuration = { 'path': 'wss://127.0.0.1:8000', 'urls': router._urls, 'routes': router._routes } set_urlconf(url_configuration) instance = self.CustomHyperlinkedRelatedField( 'test_view', read_only=True ) data = {'wrong_url_name': 'wss://127.0.0.1:8000/test_view/1/'} with self.assertRaises(ValidationError): instance.to_internal_value(data)
def test_to_representation_raises_exception_for_empty_string(self): class FakeHyperlinkField(self.CustomHyperlinkedRelatedField): def is_saved_in_database(self, obj): return True def get_lookup_value(self, obj): return () router = SimpleRouter() url_configuration = { 'path': 'wss://127.0.0.1:8000', 'urls': router._urls, 'routes': router._routes } set_urlconf(url_configuration) instance = FakeHyperlinkField('test_view', read_only=True) with self.assertRaises(ImproperlyConfigured): instance.to_representation('')
def test_to_representation_returns_relative_url(self): class FakeModel(object): def __init__(self, pk): self.pk = pk def __str__(self): return "object.pk={}".format(self.pk) class FakeModelSerializer(object): parent = None _context = {'relative': True} class FakeHyperlinkField(self.CustomHyperlinkedRelatedField): def is_saved_in_database(self, obj): return True def get_lookup_value(self, obj): return (1, ) router = SimpleRouter() router.register('/test_view/{pk}', FakeView, 'GET', name='test_view') url_configuration = { 'path': 'wss://127.0.0.1:8000', 'urls': router._urls, 'routes': router._routes } set_urlconf(url_configuration) instance = FakeHyperlinkField('test_view', read_only=True) instance.bind('pk', FakeModelSerializer()) hyperlink_object = instance.to_representation(FakeModel(1)) self.assertEqual(hyperlink_object, '/test_view/1/') self.assertEqual(hyperlink_object.name, 'object.pk=1')
def test_get_url_returns_url_to_an_object(self): class FakeHyperlinkField(self.CustomHyperlinkedRelatedField): def is_saved_in_database(self, obj): return True def get_lookup_value(self, obj): return (1, ) router = SimpleRouter() router.register('/test_view/{pk}', FakeView, 'GET', name='test_view') url_configuration = { 'path': 'wss://127.0.0.1:8000', 'urls': router._urls, 'routes': router._routes } set_urlconf(url_configuration) instance = FakeHyperlinkField('test_view', read_only=True) self.assertEqual( instance.get_url(object(), 'test_view'), 'wss://127.0.0.1:8000/test_view/1/' )
# -*- coding: utf-8 -*- from aiorest_ws.routers import SimpleRouter from app.views import UserListView, UserView, CreateUserView, AddressView, \ CreateAddressView router = SimpleRouter() router.register('/user/list', UserListView, 'GET') router.register('/user/{id}', UserView, ['GET', 'PUT'], name='user-detail') router.register('/user/', CreateUserView, ['POST']) router.register('/address/{id}', AddressView, ['GET', 'PUT'], name='address-detail') router.register('/address/', CreateAddressView, ['POST'])
def __init__(self, *args, **kwargs): super(RequestHandlerFactory, self).__init__(*args, **kwargs) self._router = kwargs.get('router', SimpleRouter(*args, **kwargs))
# -*- coding: utf-8 -*- from aiorest_ws.app import Application from aiorest_ws.command_line import CommandLine from aiorest_ws.routers import SimpleRouter from app.urls import router main_router = SimpleRouter() main_router.include(router) if __name__ == '__main__': cmd = CommandLine() cmd.define('-ip', default='127.0.0.1', help='used ip', type=str) cmd.define('-port', default=8080, help='listened port', type=int) args = cmd.parse_command_line() app = Application() app.run(host=args.ip, port=args.port, router=main_router)
def setUp(self): super(RestWSRouterTestCase, self).setUp() self.router = SimpleRouter()
# -*- coding: utf-8 -*- import pytest from aiorest_ws.routers import SimpleRouter from aiorest_ws.endpoints import PlainEndpoint, DynamicEndpoint from aiorest_ws.utils.validators import to_str, get_object_type @pytest.mark.parametrize("value, expected", [ (PlainEndpoint, 'PlainEndpoint'), ((PlainEndpoint, ), 'PlainEndpoint'), ((PlainEndpoint, DynamicEndpoint), 'PlainEndpoint/DynamicEndpoint'), ]) def test_to_str(value, expected): assert to_str(value) == expected @pytest.mark.parametrize("value, expected", [ (PlainEndpoint, PlainEndpoint), (SimpleRouter(), SimpleRouter), (list, list), ]) def test_get_object_type(value, expected): assert get_object_type(value) is expected