@@ -75,11 +75,12 @@ def test_get_sort(self, mocked_datetime, mocked_decode):
7575 data = response .json ()
7676 self .assertEqual (response .status_code , 200 )
7777 self .assertEqual (captured .captured_queries [0 ]['sql' ],
78- ' ' .join ('''SELECT "tests_question"."id", "tests_question"."question_text", "tests_question"."pub_date", "tests_question"."topic_id"
79- FROM "tests_question"
80- ORDER BY "tests_question"."id"
81- DESC
82- LIMIT 15''' .replace ('\n ' , ' ' ).split ()))
78+ ' ' .join ('''SELECT "tests_question"."id", "tests_question"."question_text", "tests_question"."pub_date", "tests_question"."topic_id", "tests_topic"."id", "tests_topic"."name"
79+ FROM "tests_question"
80+ LEFT OUTER JOIN "tests_topic" ON ("tests_question"."topic_id" = "tests_topic"."id")
81+ ORDER BY "tests_question"."id"
82+ DESC
83+ LIMIT 15''' .replace ('\n ' , ' ' ).split ()))
8384 self .assertEqual (data , {
8485 'data' : [
8586 {
@@ -145,7 +146,7 @@ def test_get_sort(self, mocked_datetime, mocked_decode):
145146 @mock .patch ('jose.jwt.decode' , return_value = {'id' : 1 , 'rendering_id' : 1 })
146147 @mock .patch ('django_forest.utils.scope.ScopeManager._has_cache_expired' , return_value = False )
147148 def test_get_sort_related_data (self , mocked_scope_has_expired , mocked_decode ):
148- with self ._django_assert_num_queries (7 ) as captured :
149+ with self ._django_assert_num_queries (4 ) as captured :
149150 response = self .client .get (self .reverse_url , {
150151 'fields[tests_choice]' : 'id,topic,question,choice_text' ,
151152 'fields[topic]' : 'name' ,
@@ -157,9 +158,89 @@ def test_get_sort_related_data(self, mocked_scope_has_expired, mocked_decode):
157158 })
158159 self .assertEqual (response .status_code , 200 )
159160 self .assertEqual (captured .captured_queries [0 ]['sql' ],
160- ' ' .join ('''SELECT "tests_choice"."id", "tests_choice"."question_id", "tests_choice"."choice_text"
161+ ' ' .join ('''SELECT "tests_choice"."id", "tests_choice"."question_id", "tests_choice"."choice_text", "tests_question"."id", "tests_question"."question_text", "tests_question"."pub_date", "tests_question"."topic_id"
161162 FROM "tests_choice"
162163 LEFT OUTER JOIN "tests_question" ON ("tests_choice"."question_id" = "tests_question"."id")
163164 ORDER BY "tests_question"."question_text"
164165 ASC
165166 LIMIT 15''' .replace ('\n ' , ' ' ).split ()))
167+ data = response .json ()
168+ self .assertEqual (data , {
169+ "data" : [
170+ {
171+ "type" : "tests_choice" ,
172+ "relationships" : {
173+ "topic" : {
174+ "links" : {
175+ "related" : "/forest/tests_choice/3/relationships/topic"
176+ },
177+ "data" : None ,
178+ },
179+ "question" : {
180+ "links" : {
181+ "related" : "/forest/tests_choice/3/relationships/question"
182+ },
183+ "data" : {"type" : "tests_question" , "id" : "2" },
184+ },
185+ },
186+ "id" : 3 ,
187+ "attributes" : {"choice_text" : "good" },
188+ "links" : {"self" : "/forest/tests_choice/3" },
189+ },
190+ {
191+ "type" : "tests_choice" ,
192+ "relationships" : {
193+ "topic" : {
194+ "links" : {
195+ "related" : "/forest/tests_choice/1/relationships/topic"
196+ },
197+ "data" : None ,
198+ },
199+ "question" : {
200+ "links" : {
201+ "related" : "/forest/tests_choice/1/relationships/question"
202+ },
203+ "data" : {"type" : "tests_question" , "id" : "1" },
204+ },
205+ },
206+ "id" : 1 ,
207+ "attributes" : {"choice_text" : "yes" },
208+ "links" : {"self" : "/forest/tests_choice/1" },
209+ },
210+ {
211+ "type" : "tests_choice" ,
212+ "relationships" : {
213+ "topic" : {
214+ "links" : {
215+ "related" : "/forest/tests_choice/2/relationships/topic"
216+ },
217+ "data" : None ,
218+ },
219+ "question" : {
220+ "links" : {
221+ "related" : "/forest/tests_choice/2/relationships/question"
222+ },
223+ "data" : {"type" : "tests_question" , "id" : "1" },
224+ },
225+ },
226+ "id" : 2 ,
227+ "attributes" : {"choice_text" : "no" },
228+ "links" : {"self" : "/forest/tests_choice/2" },
229+ },
230+ ],
231+ "included" : [
232+ {
233+ "type" : "tests_question" ,
234+ "attributes" : {"question_text" : "do you like chocolate?" },
235+ "links" : {"self" : "/forest/tests_question/2" },
236+ "id" : 2 ,
237+ },
238+ {
239+ "type" : "tests_question" ,
240+ "attributes" : {"question_text" : "what is your favorite color?" },
241+ "links" : {"self" : "/forest/tests_question/1" },
242+ "id" : 1 ,
243+ },
244+ ],
245+ }
246+ )
0 commit comments