Beispiel #1
0
    def test_function(self):
        """register_view works as a function."""
        site = AdminSitePlus()

        def foo(request):
            return 'foo'
        site.register_view('foo', view=foo)

        urls = site.get_urls()
        assert any(u.resolve('foo') for u in urls)
Beispiel #2
0
    def test_decorator(self):
        """register_view works as a decorator."""
        site = AdminSitePlus()

        @site.register_view(r'foo/bar')
        def foo_bar(request):
            return 'foo-bar'

        urls = site.get_urls()
        assert any(u.resolve('foo/bar') for u in urls)
Beispiel #3
0
    def test_decorator(self):
        """register_view works as a decorator."""
        site = AdminSitePlus()

        @site.register_view(r'foo/bar')
        def foo_bar(request):
            return 'foo-bar'

        urls = site.get_urls()
        assert any(u.resolve('foo/bar') for u in urls)
Beispiel #4
0
    def test_function(self):
        """register_view works as a function."""
        site = AdminSitePlus()

        def foo(request):
            return 'foo'
        site.register_view('foo', view=foo)

        urls = site.get_urls()
        assert any(u.resolve('foo') for u in urls)
Beispiel #5
0
    def test_visibility(self):
        """Make sure visibility works."""
        site = AdminSitePlus()
        req_factory = RequestFactory()

        def always_visible(request):
            return 'i am here'
        site.register_view('always-visible', view=always_visible, visible=True)

        def always_hidden(request):
            return 'i am here, but not shown'
        site.register_view('always-hidden', view=always_visible, visible=False)

        cond = lambda req: req.user.pk == 1
        b = lambda s: s.encode('ascii') if hasattr(s, 'encode') else s

        @site.register_view(r'conditional-view', visible=cond)
        class ConditionallyVisible(View):
            def get(self, request):
                return 'hi there'

        urls = site.get_urls()
        assert any(u.resolve('always-visible') for u in urls)
        assert any(u.resolve('always-hidden') for u in urls)
        assert any(u.resolve('conditional-view') for u in urls)

        class MockUser(object):
            is_active = True
            is_staff = True

            def __init__(self, pk):
                self.pk = pk
                self.id = pk

        req_show = req_factory.get('/admin/')
        req_show.user = MockUser(1)
        result = site.index(req_show).render().content
        assert b('always-visible') in result
        assert b('always-hidden') not in result
        assert b('conditional-view') in result

        req_hide = req_factory.get('/admin/')
        req_hide.user = MockUser(2)
        result = site.index(req_hide).render().content
        assert b('always-visible') in result
        assert b('always-hidden') not in result
        assert b('conditional-view') not in result
    def test_path(self):
        """Setting the path works correctly."""
        site = AdminSitePlus()

        def foo(request):
            return 'foo'
        site.register_view('foo', view=foo)
        site.register_view('bar/baz', view=foo)
        site.register_view('baz-qux', view=foo)

        urls = site.get_urls()

        foo_urls = [u for u in urls if u.resolve('foo')]
        self.assertEqual(1, len(foo_urls))
        bar_urls = [u for u in urls if u.resolve('bar/baz')]
        self.assertEqual(1, len(bar_urls))
        qux_urls = [u for u in urls if u.resolve('baz-qux')]
        self.assertEqual(1, len(qux_urls))
Beispiel #7
0
    def test_path(self):
        """Setting the path works correctly."""
        site = AdminSitePlus()

        def foo(request):
            return 'foo'
        site.register_view('foo', view=foo)
        site.register_view('bar/baz', view=foo)
        site.register_view('baz-qux', view=foo)

        urls = site.get_urls()

        foo_urls = [u for u in urls if u.resolve('foo')]
        self.assertEqual(1, len(foo_urls))
        bar_urls = [u for u in urls if u.resolve('bar/baz')]
        self.assertEqual(1, len(bar_urls))
        qux_urls = [u for u in urls if u.resolve('baz-qux')]
        self.assertEqual(1, len(qux_urls))
Beispiel #8
0
    def test_path(self):
        """Setting the path works correctly."""
        site = AdminSitePlus()

        def foo(request):
            return 'foo'
        site.register_view('foo', view=foo)
        site.register_view('bar/baz', view=foo)
        site.register_view('baz-qux', view=foo)

        urls = site.get_urls()

        matches = lambda u: lambda p: p.resolve(u)
        foo_urls = filter(matches('foo'), urls)
        self.assertEqual(1, len(foo_urls))
        bar_urls = filter(matches('bar/baz'), urls)
        self.assertEqual(1, len(bar_urls))
        qux_urls = filter(matches('baz-qux'), urls)
        self.assertEqual(1, len(qux_urls))
    def test_urlname(self):
        """Set URL pattern names correctly."""
        site = AdminSitePlus()

        @site.register_view('foo', urlname='foo')
        def foo(request):
            return 'foo'

        @site.register_view('bar')
        def bar(request):
            return 'bar'

        urls = site.get_urls()
        foo_urls = [u for u in urls if u.resolve('foo')]
        self.assertEqual(1, len(foo_urls))
        self.assertEqual('foo', foo_urls[0].name)

        bar_urls = [u for u in urls if u.resolve('bar')]
        self.assertEqual(1, len(bar_urls))
        assert bar_urls[0].name is None
Beispiel #10
0
    def test_urlname(self):
        """Set URL pattern names correctly."""
        site = AdminSitePlus()

        @site.register_view('foo', urlname='foo')
        def foo(request):
            return 'foo'

        @site.register_view('bar')
        def bar(request):
            return 'bar'

        urls = site.get_urls()
        foo_urls = [u for u in urls if u.resolve('foo')]
        self.assertEqual(1, len(foo_urls))
        self.assertEqual('foo', foo_urls[0].name)

        bar_urls = [u for u in urls if u.resolve('bar')]
        self.assertEqual(1, len(bar_urls))
        assert bar_urls[0].name is None
Beispiel #11
0
    def test_urlname(self):
        """Set URL pattern names correctly."""
        site = AdminSitePlus()

        @site.register_view("foo", urlname="foo")
        def foo(request):
            return "foo"

        @site.register_view("bar")
        def bar(request):
            return "bar"

        urls = site.get_urls()
        foo_urls = [u for u in urls if u.resolve("foo")]
        self.assertEqual(1, len(foo_urls))
        self.assertEqual("foo", foo_urls[0].name)

        bar_urls = [u for u in urls if u.resolve("bar")]
        self.assertEqual(1, len(bar_urls))
        assert bar_urls[0].name is None
Beispiel #12
0
    def test_urlname(self):
        """Set URL pattern names correctly."""
        site = AdminSitePlus()

        @site.register_view('foo', urlname='foo')
        def foo(request):
            return 'foo'

        @site.register_view('bar')
        def bar(request):
            return 'bar'

        urls = site.get_urls()
        matches = lambda u: lambda p: p.resolve(u)
        foo_urls = filter(matches('foo'), urls)
        self.assertEqual(1, len(foo_urls))
        self.assertEqual('foo', foo_urls[0].name)

        bar_urls = filter(matches('bar'), urls)
        self.assertEqual(1, len(bar_urls))
        assert bar_urls[0].name is None