コード例 #1
0
 def setUp(self):
     self.factory = RequestFactory()
     self.middleware = DjangularUrlMiddleware(urlconf='server.tests.test_urlresolver_view')
     self.url_name_arg = 'djng_url_name'
     self.args_prefix = 'djng_url_args'
     self.kwarg_prefix = 'djng_url_kwarg_'
     super(TestUrlResolverView, self).setUp()
コード例 #2
0
 def setUp(self):
     self.factory = RequestFactory()
     self.user = User.objects.create_user('test', '*****@*****.**',
                                          'password')
     self.middleware = DjangularUrlMiddleware()
     self.url_name_arg = 'djng_url_name'
     self.args_prefix = 'djng_url_args'
     self.kwarg_prefix = 'djng_url_kwarg_'
     super(TestUrlResolverView, self).setUp()
コード例 #3
0
 def setUp(self):
     self.factory = RequestFactory()
     self.middleware = DjangularUrlMiddleware()
     self.url_name_arg = 'djng_url_name'
     self.args_prefix = 'djng_url_args'
     self.kwarg_prefix = 'djng_url_kwarg_'
     super(TestUrlResolverView, self).setUp()
コード例 #4
0
 def setUp(self):
     self.factory = RequestFactory()
     self.user = User.objects.create_user('test', '*****@*****.**', 'password')
     self.middleware = DjangularUrlMiddleware()
     self.url_name_arg = 'djng_url_name'
     self.args_prefix = 'djng_url_args'
     self.kwarg_prefix = 'djng_url_kwarg_'
     super(TestUrlResolverView, self).setUp()
コード例 #5
0
class TestUrlResolverView(TestCase):
    pattern_dict = None

    def setUp(self):
        self.factory = RequestFactory()
        self.middleware = DjangularUrlMiddleware(
            urlconf='server.tests.test_urlresolver_view')
        self.url_name_arg = 'djng_url_name'
        self.args_prefix = 'djng_url_args'
        self.kwarg_prefix = 'djng_url_kwarg_'
        super(TestUrlResolverView, self).setUp()

    def test_request_path(self):
        data = {self.url_name_arg: 'home'}
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        response = self.middleware.process_request(request)
        self.assertEqual(response['request'].path, '/')

    def test_middleware_return_none(self):
        """
        If request.path != <DjangularUrlMiddleware.ANGULAR_REVERSE> return None, so request is processed normally
        """
        request = self.factory.get('/some/other/url/')
        response = self.middleware.process_request(request)
        self.assertEqual(response, None)

    def test_resolver_view_resolution(self):
        data = {self.url_name_arg: 'home'}
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        response = self.middleware.process_request(request)
        self.assertEqual(response['name'], 'DummyView')

    def test_view_resolution_include(self):
        data = {self.url_name_arg: 'include1:home2'}
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        response = self.middleware.process_request(request)
        self.assertEqual(response['name'], 'DummyView2')

    def test_args(self):
        data = {self.url_name_arg: 'home_args', self.args_prefix: [1, 2, 3]}
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        response = self.middleware.process_request(request)
        self.assertEqual((u'1', u'2', u'3'), response['args'])

    def test_kwargs(self):
        data = {
            self.url_name_arg: 'home_kwargs',
            self.kwarg_prefix + 'id': 1,
            self.kwarg_prefix + 'id2': 2,
            self.kwarg_prefix + 'id3': 3
        }
        expected_view_kwargs = {'id2': u'2', 'id': u'1', 'id3': u'3'}
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        response = self.middleware.process_request(request)
        self.assertEqual(expected_view_kwargs, response['kwargs'])
コード例 #6
0
class TestUrlResolverView(TestCase):
    pattern_dict = None
    urls = 'server.tests.test_urlresolver_view'

    def setUp(self):
        self.factory = RequestFactory()
        self.middleware = DjangularUrlMiddleware()
        self.url_name_arg = 'djng_url_name'
        self.args_prefix = 'djng_url_args'
        self.kwarg_prefix = 'djng_url_kwarg_'
        super(TestUrlResolverView, self).setUp()

    def test_resolver_path_resolution(self):
        url_name = 'home'
        data = {
            self.url_name_arg: url_name
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse('home'))

    def test_resolver_path_resolution_include(self):
        url_name = 'include1:home2'
        data = {
            self.url_name_arg: url_name
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse(url_name))

    def test_middleware_request_not_modified(self):
        """
        If request.path != <DjangularUrlMiddleware.ANGULAR_REVERSE> request must not be modified
        """
        path = '/some/other/url'
        request = self.factory.get(path)
        self.middleware.process_request(request)
        self.assertEqual(request.path, path)

    def test_get_args(self):
        """
        GET parameters for url resolution should be removed, others kept
        """
        args = {'test': '123'}
        data = {
            self.url_name_arg: 'home_args',
            self.args_prefix: [1, 2, 3],
        }
        data.update(args)
        query_dict = QueryDict('', mutable=True)
        query_dict.update(args)

        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.GET, query_dict)

    def test_kwargs_resolution(self):
        data = {
            self.url_name_arg: 'home_kwargs',
            self.kwarg_prefix + 'id': 1,
            self.kwarg_prefix + 'id2': 2,
            self.kwarg_prefix + 'id3': 3
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse('home_kwargs', kwargs={'id': 1, 'id2': 2, 'id3': 3}))
コード例 #7
0
class TestUrlResolverView(TestCase):
    pattern_dict = None
    urls = 'server.tests.test_urlresolver_view'

    def setUp(self):
        self.factory = RequestFactory()
        self.user = User.objects.create_user('test', '*****@*****.**',
                                             'password')
        self.middleware = DjangularUrlMiddleware()
        self.url_name_arg = 'djng_url_name'
        self.args_prefix = 'djng_url_args'
        self.kwarg_prefix = 'djng_url_kwarg_'
        super(TestUrlResolverView, self).setUp()

    def test_resolver_path_resolution(self):
        """
        Both request.path and request.path_info should be updated to correct url
        """
        url_name = 'home'
        data = {self.url_name_arg: url_name}
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse('home'))
        self.assertEqual(request.path_info, reverse('home'))
        self.assertEqual(request.get_full_path(), reverse('home'))

    def test_resolver_path_resolution_include(self):
        url_name = 'include1:home2'
        data = {self.url_name_arg: url_name}
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse(url_name))

    def test_middleware_request_not_modified(self):
        """
        If request.path != <DjangularUrlMiddleware.ANGULAR_REVERSE> request must not be modified
        """
        path = '/some/other/url'
        request = self.factory.get(path)
        self.middleware.process_request(request)
        self.assertEqual(request.path, path)

    def test_request_attributes_retention(self):
        """
        Request attributes, such as .user or .session must not be modified
        """
        url_name = 'include1:home2'
        data = {self.url_name_arg: url_name}
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        request.user = self.user
        self.middleware.process_request(request)
        self.assertEqual(request.user, self.user)

    def test_get_args_removal(self):
        """
        GET parameters for url resolution should be removed, others kept
        """
        args = {'test': '123'}
        data = {
            self.url_name_arg: 'home_args',
            self.args_prefix: [1, 2, 3],
        }
        data.update(args)
        query_dict = QueryDict('', mutable=True)
        query_dict.update(args)

        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.GET, query_dict)

    def test_get_args_with_encoding(self):
        """
        Similar test to test_with_args but with special characters.
        """
        if six.PY3:
            args = {'params': 'åäö'}
        else:
            args = {'param': u'åäö'}
        data = {
            self.url_name_arg: 'home_args',
            self.args_prefix: [1, 2, 3],
        }
        data.update(args)
        query_dict = QueryDict('', mutable=True)
        query_dict.update(args)

        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.GET, query_dict)

    def test_get_kwargs_removal(self):
        """
        GET kwarg parameters for url resolution should be removed, others kept
        """
        args = {'test': '123'}
        data = {
            self.url_name_arg: 'home_kwargs',
            self.kwarg_prefix + 'id': 1,
            self.kwarg_prefix + 'id2': 2,
            self.kwarg_prefix + 'id3': 3
        }
        data.update(args)
        query_dict = QueryDict('', mutable=True)
        query_dict.update(args)

        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.GET, query_dict)

    def test_kwargs_resolution(self):
        data = {
            self.url_name_arg: 'home_kwargs',
            self.kwarg_prefix + 'id': 1,
            self.kwarg_prefix + 'id2': 2,
            self.kwarg_prefix + 'id3': 3
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE,
                                   data=data)
        self.middleware.process_request(request)
        self.assertEqual(
            request.path,
            reverse('home_kwargs', kwargs={
                'id': 1,
                'id2': 2,
                'id3': 3
            }))
コード例 #8
0
class TestUrlResolverView(TestCase):
    pattern_dict = None
    urls = "server.tests.test_urlresolver_view"

    def setUp(self):
        self.factory = RequestFactory()
        self.middleware = DjangularUrlMiddleware()
        self.url_name_arg = "djng_url_name"
        self.args_prefix = "djng_url_args"
        self.kwarg_prefix = "djng_url_kwarg_"
        super(TestUrlResolverView, self).setUp()

    def test_resolver_path_resolution(self):
        url_name = "home"
        data = {self.url_name_arg: url_name}
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse("home"))

    def test_resolver_path_resolution_include(self):
        url_name = "include1:home2"
        data = {self.url_name_arg: url_name}
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse(url_name))

    def test_middleware_request_not_modified(self):
        """
        If request.path != <DjangularUrlMiddleware.ANGULAR_REVERSE> request must not be modified
        """
        path = "/some/other/url"
        request = self.factory.get(path)
        self.middleware.process_request(request)
        self.assertEqual(request.path, path)

    def test_get_args(self):
        """
        GET parameters for url resolution should be removed, others kept
        """
        args = {"test": "123"}
        data = {self.url_name_arg: "home_args", self.args_prefix: [1, 2, 3]}
        data.update(args)
        query_dict = QueryDict("", mutable=True)
        query_dict.update(args)

        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.GET, query_dict)

    def test_get_args_with_encoding(self):
        """
        Similar test to test_with_args but with special characters.
        """
        if six.PY3:
            args = {"params": "åäö"}
        else:
            args = {"param": u"åäö"}
        data = {self.url_name_arg: "home_args", self.args_prefix: [1, 2, 3]}
        data.update(args)
        query_dict = QueryDict("", mutable=True)
        query_dict.update(args)

        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.GET, query_dict)

    def test_kwargs_resolution(self):
        data = {
            self.url_name_arg: "home_kwargs",
            self.kwarg_prefix + "id": 1,
            self.kwarg_prefix + "id2": 2,
            self.kwarg_prefix + "id3": 3,
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse("home_kwargs", kwargs={"id": 1, "id2": 2, "id3": 3}))
コード例 #9
0
class TestUrlResolverView(TestCase):
    pattern_dict = None

    def setUp(self):
        self.factory = RequestFactory()
        self.middleware = DjangularUrlMiddleware(urlconf='server.tests.test_urlresolver_view')
        self.url_name_arg = 'djng_url_name'
        self.args_prefix = 'djng_url_args'
        self.kwarg_prefix = 'djng_url_kwarg_'
        super(TestUrlResolverView, self).setUp()

    def test_request_path(self):
        data = {
            self.url_name_arg: 'home'
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        response = self.middleware.process_request(request)
        self.assertEqual(response['request'].path, '/')

    def test_middleware_return_none(self):
        """
        If request.path != <DjangularUrlMiddleware.ANGULAR_REVERSE> return None, so request is processed normally
        """
        request = self.factory.get('/some/other/url/')
        response = self.middleware.process_request(request)
        self.assertEqual(response, None)

    def test_resolver_view_resolution(self):
        data = {
            self.url_name_arg: 'home'
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        response = self.middleware.process_request(request)
        self.assertEqual(response['name'], 'DummyView')

    def test_view_resolution_include(self):
        data = {
            self.url_name_arg: 'include1:home2'
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        response = self.middleware.process_request(request)
        self.assertEqual(response['name'], 'DummyView2')

    def test_args(self):
        data = {
            self.url_name_arg: 'home_args',
            self.args_prefix: [1, 2, 3]
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        response = self.middleware.process_request(request)
        self.assertEqual((u'1', u'2', u'3'), response['args'])

    def test_kwargs(self):
        data = {
            self.url_name_arg: 'home_kwargs',
            self.kwarg_prefix + 'id': 1,
            self.kwarg_prefix + 'id2': 2,
            self.kwarg_prefix + 'id3': 3
        }
        expected_view_kwargs = {'id2': u'2', 'id': u'1', 'id3': u'3'}
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        response = self.middleware.process_request(request)
        self.assertEqual(expected_view_kwargs, response['kwargs'])
コード例 #10
0
class TestUrlResolverView(TestCase):
    pattern_dict = None
    urls = 'server.tests.test_urlresolver_view'

    def setUp(self):
        self.factory = RequestFactory()
        self.user = User.objects.create_user('test', '*****@*****.**', 'password')
        self.middleware = DjangularUrlMiddleware()
        self.url_name_arg = 'djng_url_name'
        self.args_prefix = 'djng_url_args'
        self.kwarg_prefix = 'djng_url_kwarg_'
        super(TestUrlResolverView, self).setUp()

    def test_resolver_path_resolution(self):
        """
        Both request.path and request.path_info should be updated to correct url
        """
        url_name = 'home'
        data = {
            self.url_name_arg: url_name
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse('home'))
        self.assertEqual(request.path_info, reverse('home'))
        self.assertEqual(request.get_full_path(), reverse('home'))

    def test_resolver_path_resolution_include(self):
        url_name = 'include1:home2'
        data = {
            self.url_name_arg: url_name
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse(url_name))

    def test_middleware_request_not_modified(self):
        """
        If request.path != <DjangularUrlMiddleware.ANGULAR_REVERSE> request must not be modified
        """
        path = '/some/other/url'
        request = self.factory.get(path)
        self.middleware.process_request(request)
        self.assertEqual(request.path, path)

    def test_request_attributes_retention(self):
        """
        Request attributes, such as .user or .session must not be modified
        """
        url_name = 'include1:home2'
        data = {
            self.url_name_arg: url_name
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        request.user = self.user
        self.middleware.process_request(request)
        self.assertEqual(request.user, self.user)

    def test_get_args_removal(self):
        """
        GET parameters for url resolution should be removed, others kept
        """
        args = {'test': '123'}
        data = {
            self.url_name_arg: 'home_args',
            self.args_prefix: [1, 2, 3],
        }
        data.update(args)
        query_dict = QueryDict('', mutable=True)
        query_dict.update(args)

        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.GET, query_dict)

    def test_get_args_with_encoding(self):
        """
        Similar test to test_with_args but with special characters.
        """
        if six.PY3:
            args = {'params': 'åäö'}
        else:
            args = {'param': u'åäö'}
        data = {
            self.url_name_arg: 'home_args',
            self.args_prefix: [1, 2, 3],
        }
        data.update(args)
        query_dict = QueryDict('', mutable=True)
        query_dict.update(args)

        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.GET, query_dict)

    def test_get_kwargs_removal(self):
        """
        GET kwarg parameters for url resolution should be removed, others kept
        """
        args = {'test': '123'}
        data = {
            self.url_name_arg: 'home_kwargs',
            self.kwarg_prefix + 'id': 1,
            self.kwarg_prefix + 'id2': 2,
            self.kwarg_prefix + 'id3': 3
        }
        data.update(args)
        query_dict = QueryDict('', mutable=True)
        query_dict.update(args)

        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.GET, query_dict)

    def test_kwargs_resolution(self):
        data = {
            self.url_name_arg: 'home_kwargs',
            self.kwarg_prefix + 'id': 1,
            self.kwarg_prefix + 'id2': 2,
            self.kwarg_prefix + 'id3': 3
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse('home_kwargs', kwargs={'id': 1, 'id2': 2, 'id3': 3}))
コード例 #11
0
class TestUrlResolverView(TestCase):
    pattern_dict = None

    def setUp(self):
        self.factory = RequestFactory()
        self.middleware = DjangularUrlMiddleware(urlconf='server.tests.test_urlresolver_view')
        self.url_name_arg = 'djng_url_name'
        self.args_prefix = 'djng_url_args'
        self.kwarg_prefix = 'djng_url_kwarg_'
        super(TestUrlResolverView, self).setUp()

    def test_resolver_path_resolution(self):
        url_name = 'home'
        data = {
            self.url_name_arg: url_name
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse('home', urlconf=TEST_URLCONF_PATH))

    def test_resolver_path_resolution_include(self):
        url_name = 'include1:home2'
        data = {
            self.url_name_arg: url_name
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse(url_name, urlconf=TEST_URLCONF_PATH))

    def test_middleware_request_not_modified(self):
        """
        If request.path != <DjangularUrlMiddleware.ANGULAR_REVERSE> request must not be modified
        """
        path = '/some/other/url'
        request = self.factory.get(path)
        self.middleware.process_request(request)
        self.assertEqual(request.path, path)

    def test_get_args(self):
        """
        GET parameters for url resolution should be removed, others kept
        """
        args = {'test': '123'}
        data = {
            self.url_name_arg: 'home_args',
            self.args_prefix: [1, 2, 3],
        }
        data.update(args)
        query_dict = QueryDict('', mutable=True)
        query_dict.update(args)

        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.GET, query_dict)

    def test_kwargs_resolution(self):
        data = {
            self.url_name_arg: 'home_kwargs',
            self.kwarg_prefix + 'id': 1,
            self.kwarg_prefix + 'id2': 2,
            self.kwarg_prefix + 'id3': 3
        }
        request = self.factory.get(DjangularUrlMiddleware.ANGULAR_REVERSE, data=data)
        self.middleware.process_request(request)
        self.assertEqual(request.path, reverse('home_kwargs',
                                               kwargs={'id': 1, 'id2': 2, 'id3': 3},
                                               urlconf=TEST_URLCONF_PATH))