david / django-modelviews

Backup of an old repository with useful ideas. Initial goal: integrating REST to django admin (class-based views).

Clone this repository (size: 85.8 KB): HTTPS / SSH
$ hg clone http://code.welldev.org/django-modelviews
commit 31: be8c4ff20004
parent 30: d3b7823de8be
branch: default
Added XmlResponder to the Article test url, and added a minimal XmlResponder unittest.
Will Larson
2 years ago

Changed (Δ811 bytes):

raw changeset »

tests/test_modelview/tests.py (18 lines added, 1 lines removed)

tests/urls.py (2 lines added, 2 lines removed)

Up to file-list tests/test_modelview/tests.py:

@@ -57,6 +57,7 @@ class ModelViewTest(TestCase):
57
57
    def test_json_responder_detail(self):
58
58
        a = Article.objects.all()[0]
59
59
        response = self.client.get('/articles/%s/json/' % a.slug)
60
        self.assertEqual(response.status_code, 200)
60
61
        data = simplejson.loads(response.content)
61
62
        self.assertEqual(data[0]['fields']['slug'], a.slug)
62
63
        self.assertEqual(data[0]['pk'], a.pk)
@@ -66,7 +67,23 @@ class ModelViewTest(TestCase):
66
67
        pass
67
68
68
69
    def test_xml_responder_detail(self):
69
        pass
70
        a = Article.objects.all()[0]
71
        response = self.client.get('/articles/%s/xml/' % a.slug)
72
        self.assertEqual(response.status_code, 200)
73
        """
74
        Improve this test to parse and check returned data.
75
        An example of the returned data:
76
77
        <?xml version="1.0" encoding="utf-8"?>
78
        <django-objects version="1.0">
79
          <object pk="1" model="test_modelview.article">
80
            <field type="CharField" name="name">My Story</field>
81
            <field type="SlugField" name="slug">my-story</field>
82
            <field type="TextField" name="body">My thrilling story!</field>
83
            <field type="DateTimeField" name="date">2008-06-18 01:31:55</field>
84
          </object>
85
        </django-objects>
86
        """
70
87
71
88
    def test_xml_responder_list(self):
72
89
        pass

Up to file-list tests/urls.py:

@@ -4,11 +4,11 @@ from django_modelview.generic.rest_views
4
4
5
5
6
6
articles = ModelView(Article.objects.all(),
7
                     responders=(HtmlResponder,JsonResponder),
7
                     responders=(HtmlResponder,JsonResponder,XmlResponder),
8
8
                     methods=('GET',))
9
9
                     
10
10
urlpatterns = patterns(
11
11
    '',
12
    ('^articles/(?P<slug>[-\w]*)/(?P<format>(html|json))?/?$',
12
    ('^articles/(?P<slug>[-\w]*)/(?P<format>(html|json|xml))?/?$',
13
13
     articles),
14
14
)