1-
2-
31import json
2+
43from example .tests import TestBase
4+
55from django .contrib .auth import get_user_model
66from django .core .urlresolvers import reverse , reverse_lazy
77from django .conf import settings
88
99
1010class ModelViewSetTests (TestBase ):
1111 """
12- Test usage with ModelViewSets
12+ Test usage with ModelViewSets, also tests pluralization, camelization,
13+ and underscore.
1314
14- [<RegexURLPattern user-list ^user-viewsets/$>, <RegexURLPattern user-detail ^user-viewsets/(?P<pk>[^/]+)/$>]
15+ [<RegexURLPattern user-list ^user-viewsets/$>,
16+ <RegexURLPattern user-detail ^user-viewsets/(?P<pk>[^/]+)/$>]
1517 """
1618 list_url = reverse_lazy ('user-list' )
1719
@@ -21,29 +23,31 @@ def setUp(self):
2123
2224 def test_key_in_list_result (self ):
2325 """
24- Ensure the result has a " user" key since that is the name of the model
26+ Ensure the result has a ' user' key since that is the name of the model
2527 """
2628 response = self .client .get (self .list_url )
2729 self .assertEqual (response .status_code , 200 )
2830
2931 user = get_user_model ().objects .all ()[0 ]
30- expected = {"user" : [{
31- 'id' : user .pk ,
32- 'first_name' : user .first_name ,
33- 'last_name' : user .last_name ,
34- 'email' : user .email
35- }]}
32+ expected = {
33+ u'user' : [{
34+ u'id' : user .pk ,
35+ u'first_name' : user .first_name ,
36+ u'last_name' : user .last_name ,
37+ u'email' : user .email
38+ }]
39+ }
3640
3741 json_content = json .loads (response .content )
38- meta = json_content .get (" meta" )
42+ meta = json_content .get (' meta' )
3943
4044 self .assertEquals (expected .get ('user' ), json_content .get ('user' ))
4145 self .assertEquals (meta .get ('count' , 0 ),
4246 get_user_model ().objects .count ())
43- self .assertEquals (meta .get (" next" ), 2 )
47+ self .assertEquals (meta .get (' next' ), 2 )
4448 self .assertEqual ('http://testserver/user-viewset/?page=2' ,
45- meta .get (" next_link" ))
46- self .assertEqual (meta .get (" page" ), 1 )
49+ meta .get (' next_link' ))
50+ self .assertEqual (meta .get (' page' ), 1 )
4751
4852 def test_page_two_in_list_result (self ):
4953 """
@@ -53,72 +57,75 @@ def test_page_two_in_list_result(self):
5357 self .assertEqual (response .status_code , 200 )
5458
5559 user = get_user_model ().objects .all ()[1 ]
56- expected = {"user" : [{
57- 'id' : user .pk ,
58- 'first_name' : user .first_name ,
59- 'last_name' : user .last_name ,
60- 'email' : user .email
61- }]}
60+ expected = {
61+ u'user' : [{
62+ u'id' : user .pk ,
63+ u'first_name' : user .first_name ,
64+ u'last_name' : user .last_name ,
65+ u'email' : user .email
66+ }]
67+ }
6268
6369 json_content = json .loads (response .content )
64- meta = json_content .get (" meta" )
70+ meta = json_content .get (' meta' )
6571
6672 self .assertEquals (expected .get ('user' ), json_content .get ('user' ))
6773 self .assertEquals (meta .get ('count' , 0 ),
6874 get_user_model ().objects .count ())
69- self .assertIsNone (meta .get (" next" ))
70- self .assertIsNone (meta .get (" next_link" ))
71- self .assertEqual (meta .get (" previous" ), 1 )
75+ self .assertIsNone (meta .get (' next' ))
76+ self .assertIsNone (meta .get (' next_link' ))
77+ self .assertEqual (meta .get (' previous' ), 1 )
7278 self .assertEqual ('http://testserver/user-viewset/?page=1' ,
73- meta .get (" previous_link" ))
74- self .assertEqual (meta .get (" page" ), 2 )
79+ meta .get (' previous_link' ))
80+ self .assertEqual (meta .get (' page' ), 2 )
7581
7682 def test_page_range_in_list_result (self ):
7783 """
78- Ensure that the range of a page can be changed from the client.
84+ Ensure that the range of a page can be changed from the client,
85+ tests pluralization as two objects means it converts ``user`` to
86+ ``users``.
7987 """
8088 response = self .client .get (self .list_url , {'page_size' : 2 })
8189 self .assertEqual (response .status_code , 200 )
8290
8391 users = get_user_model ().objects .all ()
84- expected = {"user" : [
85- {
86- 'id' : users [0 ].pk ,
87- 'first_name' : users [0 ].first_name ,
88- 'last_name' : users [0 ].last_name ,
89- 'email' : users [0 ].email
90- },
91- {
92- 'id ' : users [1 ].pk ,
93- 'first_name ' : users [1 ].first_name ,
94- 'last_name ' : users [1 ].last_name ,
95- 'email' : users [ 1 ]. email
96- }]}
92+ expected = {
93+ u'users' : [ {
94+ u 'id' : users [0 ].pk ,
95+ u 'first_name' : users [0 ].first_name ,
96+ u 'last_name' : users [0 ].last_name ,
97+ u 'email' : users [0 ].email
98+ },{
99+ u'id' : users [ 1 ]. pk ,
100+ u'first_name ' : users [1 ].first_name ,
101+ u'last_name ' : users [1 ].last_name ,
102+ u'email ' : users [1 ].email
103+ }]
104+ }
97105
98106 json_content = json .loads (response .content )
99- meta = json_content .get (" meta" )
100- self .assertEquals (expected .get ('user ' ), json_content .get ('user' ))
107+ meta = json_content .get (' meta' )
108+ self .assertEquals (expected .get ('users ' ), json_content .get ('user' ))
101109 self .assertEquals (meta .get ('count' , 0 ),
102110 get_user_model ().objects .count ())
103111
104112
105113 def test_key_in_detail_result (self ):
106114 """
107- Ensure the result has a " user" key.
115+ Ensure the result has a ' user' key.
108116 """
109117 response = self .client .get (self .detail_url )
110118 self .assertEqual (response .status_code , 200 )
111119
112120 result = json .loads (response .content )
113121 expected = {
114- 'user' : {
115- 'id' : self .miles .pk ,
116- 'first_name' : self .miles .first_name ,
117- 'last_name' : self .miles .last_name ,
118- 'email' : self .miles .email
122+ u 'user' : {
123+ u 'id' : self .miles .pk ,
124+ u 'first_name' : self .miles .first_name ,
125+ u 'last_name' : self .miles .last_name ,
126+ u 'email' : self .miles .email
119127 }
120128 }
121-
122129 self .assertEqual (result , expected )
123130
124131 def test_key_in_post (self ):
@@ -127,11 +134,11 @@ def test_key_in_post(self):
127134 """
128135 self .client .login (username = 'miles' , password = 'pw' )
129136 data = {
130- 'user' : {
131- 'id' : self .miles .pk ,
132- 'first_name' : self .miles .first_name ,
133- 'last_name' : self .miles .last_name ,
134- 'email' : 'miles@trumpet.org'
137+ u 'user' : {
138+ u 'id' : self .miles .pk ,
139+ u 'first_name' : self .miles .first_name ,
140+ u 'last_name' : self .miles .last_name ,
141+ u 'email' : 'miles@trumpet.org'
135142 }
136143 }
137144 response = self .client .put (self .detail_url , data = data , format = 'json' )
@@ -145,4 +152,3 @@ def test_key_in_post(self):
145152 self .assertEqual (
146153 get_user_model ().objects .get (pk = self .miles .pk ).email ,
147154 'miles@trumpet.org' )
148-
0 commit comments