aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/tests/breadcrumbs.py
diff options
context:
space:
mode:
authortom christie tom@tomchristie.com2011-02-19 10:26:27 +0000
committertom christie tom@tomchristie.com2011-02-19 10:26:27 +0000
commit805aa03ec1871f6a766d9052b348ddce9e9843c3 (patch)
tree8ab5b6a7396236aa45bbc61e8404cc77fc75a9c5 /djangorestframework/tests/breadcrumbs.py
parentb749b950a1b4bede76b7e3900a6385779904902d (diff)
downloaddjango-rest-framework-805aa03ec1871f6a766d9052b348ddce9e9843c3.tar.bz2
Yowzers. Final big bunch of refactoring for 0.1 release. Now support Django 1.3's views, admin style api is all polished off, loads of tests, new test project for running the test. All sorts of goodness. Getting ready to push this out now.
Diffstat (limited to 'djangorestframework/tests/breadcrumbs.py')
-rw-r--r--djangorestframework/tests/breadcrumbs.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/djangorestframework/tests/breadcrumbs.py b/djangorestframework/tests/breadcrumbs.py
new file mode 100644
index 00000000..cc0d283d
--- /dev/null
+++ b/djangorestframework/tests/breadcrumbs.py
@@ -0,0 +1,67 @@
+from django.conf.urls.defaults import patterns, url
+from django.test import TestCase
+from djangorestframework.breadcrumbs import get_breadcrumbs
+from djangorestframework.resource import Resource
+
+class Root(Resource):
+ pass
+
+class ResourceRoot(Resource):
+ pass
+
+class ResourceInstance(Resource):
+ pass
+
+class NestedResourceRoot(Resource):
+ pass
+
+class NestedResourceInstance(Resource):
+ pass
+
+urlpatterns = patterns('',
+ url(r'^$', Root),
+ url(r'^resource/$', ResourceRoot),
+ url(r'^resource/(?P<key>[0-9]+)$', ResourceInstance),
+ url(r'^resource/(?P<key>[0-9]+)/$', NestedResourceRoot),
+ url(r'^resource/(?P<key>[0-9]+)/(?P<other>[A-Za-z]+)$', NestedResourceInstance),
+)
+
+
+class BreadcrumbTests(TestCase):
+ """Tests the breadcrumb functionality used by the HTML emitter."""
+
+ urls = 'djangorestframework.tests.breadcrumbs'
+
+ def test_root_breadcrumbs(self):
+ url = '/'
+ self.assertEqual(get_breadcrumbs(url), [('Root', '/')])
+
+ def test_resource_root_breadcrumbs(self):
+ url = '/resource/'
+ self.assertEqual(get_breadcrumbs(url), [('Root', '/'),
+ ('Resource Root', '/resource/')])
+
+ def test_resource_instance_breadcrumbs(self):
+ url = '/resource/123'
+ self.assertEqual(get_breadcrumbs(url), [('Root', '/'),
+ ('Resource Root', '/resource/'),
+ ('Resource Instance', '/resource/123')])
+
+ def test_nested_resource_breadcrumbs(self):
+ url = '/resource/123/'
+ self.assertEqual(get_breadcrumbs(url), [('Root', '/'),
+ ('Resource Root', '/resource/'),
+ ('Resource Instance', '/resource/123'),
+ ('Nested Resource Root', '/resource/123/')])
+
+ def test_nested_resource_instance_breadcrumbs(self):
+ url = '/resource/123/abc'
+ self.assertEqual(get_breadcrumbs(url), [('Root', '/'),
+ ('Resource Root', '/resource/'),
+ ('Resource Instance', '/resource/123'),
+ ('Nested Resource Root', '/resource/123/'),
+ ('Nested Resource Instance', '/resource/123/abc')])
+
+ def test_broken_url_breadcrumbs_handled_gracefully(self):
+ url = '/foobar'
+ self.assertEqual(get_breadcrumbs(url), [('Root', '/')]) \ No newline at end of file