@@ -227,10 +227,13 @@ async def test_select_custom_fields_with_includes(
227227 user_1_comment = await build_post_comment (async_session , user_1 , user_2_post )
228228 user_2_comment = await build_post_comment (async_session , user_2 , user_1_post )
229229
230+ queried_user_fields = "name"
231+ queried_post_fields = "title"
232+
230233 params = QueryParams (
231234 [
232- ("fields[user]" , "name" ),
233- ("fields[post]" , "title" ),
235+ ("fields[user]" , queried_user_fields ),
236+ ("fields[post]" , queried_post_fields ),
234237 # empty str means ignore all fields
235238 ("fields[post_comment]" , "" ),
236239 ("include" , "posts,posts.comments" ),
@@ -246,7 +249,9 @@ async def test_select_custom_fields_with_includes(
246249 assert response_data == {
247250 "data" : [
248251 {
249- "attributes" : UserAttributesBaseSchema .from_orm (user_1 ).dict (include = {"name" }),
252+ "attributes" : UserAttributesBaseSchema .from_orm (user_1 ).dict (
253+ include = set (queried_user_fields .split ("," )),
254+ ),
250255 "relationships" : {
251256 "posts" : {
252257 "data" : [
@@ -261,7 +266,9 @@ async def test_select_custom_fields_with_includes(
261266 "type" : "user" ,
262267 },
263268 {
264- "attributes" : UserAttributesBaseSchema .from_orm (user_2 ).dict (include = {"name" }),
269+ "attributes" : UserAttributesBaseSchema .from_orm (user_2 ).dict (
270+ include = set (queried_user_fields .split ("," )),
271+ ),
265272 "relationships" : {
266273 "posts" : {
267274 "data" : [
@@ -281,7 +288,9 @@ async def test_select_custom_fields_with_includes(
281288 "included" : sorted (
282289 [
283290 {
284- "attributes" : PostAttributesBaseSchema .from_orm (user_2_post ).dict (include = {"title" }),
291+ "attributes" : PostAttributesBaseSchema .from_orm (user_2_post ).dict (
292+ include = set (queried_post_fields .split ("," )),
293+ ),
285294 "id" : str (user_2_post .id ),
286295 "relationships" : {
287296 "comments" : {
@@ -296,7 +305,9 @@ async def test_select_custom_fields_with_includes(
296305 "type" : "post" ,
297306 },
298307 {
299- "attributes" : PostAttributesBaseSchema .from_orm (user_1_post ).dict (include = {"title" }),
308+ "attributes" : PostAttributesBaseSchema .from_orm (user_1_post ).dict (
309+ include = set (queried_post_fields .split ("," )),
310+ ),
300311 "id" : str (user_1_post .id ),
301312 "relationships" : {
302313 "comments" : {"data" : [{"id" : str (user_2_comment .id ), "type" : "post_comment" }]},
@@ -817,13 +828,16 @@ async def test_select_custom_fields(
817828 user_1 : User ,
818829 ):
819830 url = self .get_url (app , user_1 .id )
820- params = QueryParams ([("fields[user]" , "name,age" )])
831+ queried_user_fields = "name,age"
832+ params = QueryParams ([("fields[user]" , queried_user_fields )])
821833 response = await client .get (url , params = params )
822834
823835 assert response .status_code == status .HTTP_200_OK
824836 assert response .json () == {
825837 "data" : {
826- "attributes" : UserAttributesBaseSchema .from_orm (user_1 ).dict (include = {"name" , "age" }),
838+ "attributes" : UserAttributesBaseSchema .from_orm (user_1 ).dict (
839+ include = set (queried_user_fields .split ("," )),
840+ ),
827841 "id" : str (user_1 .id ),
828842 "type" : "user" ,
829843 },
@@ -1566,7 +1580,8 @@ async def test_select_custom_fields(self, app: FastAPI, client: AsyncClient):
15661580 "attributes" : user_attrs_schema .dict (),
15671581 },
15681582 }
1569- params = QueryParams ([("fields[user]" , "name" )])
1583+ queried_user_fields = "name"
1584+ params = QueryParams ([("fields[user]" , queried_user_fields )])
15701585 url = app .url_path_for ("get_user_list" )
15711586 res = await client .post (url , json = create_user_body , params = params )
15721587 assert res .status_code == status .HTTP_201_CREATED , res .text
@@ -1576,7 +1591,7 @@ async def test_select_custom_fields(self, app: FastAPI, client: AsyncClient):
15761591 assert response_data ["data" ].pop ("id" )
15771592 assert response_data == {
15781593 "data" : {
1579- "attributes" : user_attrs_schema .dict (include = { "name" } ),
1594+ "attributes" : user_attrs_schema .dict (include = set ( queried_user_fields . split ( "," )) ),
15801595 "type" : "user" ,
15811596 },
15821597 "jsonapi" : {"version" : "1.0" },
@@ -1713,14 +1728,15 @@ async def test_select_custom_fields(
17131728 "attributes" : new_attrs .dict (),
17141729 },
17151730 }
1716- params = QueryParams ([("fields[user]" , "name" )])
1731+ queried_user_fields = "name"
1732+ params = QueryParams ([("fields[user]" , queried_user_fields )])
17171733 url = app .url_path_for ("get_user_detail" , obj_id = user_1 .id )
17181734 res = await client .patch (url , params = params , json = patch_user_body )
17191735
17201736 assert res .status_code == status .HTTP_200_OK , res .text
17211737 assert res .json () == {
17221738 "data" : {
1723- "attributes" : new_attrs .dict (include = { "name" } ),
1739+ "attributes" : new_attrs .dict (include = set ( queried_user_fields . split ( "," )) ),
17241740 "id" : str (user_1 .id ),
17251741 "type" : "user" ,
17261742 },
@@ -2205,19 +2221,24 @@ async def test_select_custom_fields(
22052221 user_1 : User ,
22062222 user_2 : User ,
22072223 ):
2208- params = QueryParams ([("fields[user]" , "name" )])
2224+ queried_user_fields = "name"
2225+ params = QueryParams ([("fields[user]" , queried_user_fields )])
22092226 url = app .url_path_for ("get_user_list" )
22102227 res = await client .delete (url , params = params )
22112228 assert res .status_code == status .HTTP_200_OK , res .text
22122229 assert res .json () == {
22132230 "data" : [
22142231 {
2215- "attributes" : UserAttributesBaseSchema .from_orm (user_1 ).dict (include = {"name" }),
2232+ "attributes" : UserAttributesBaseSchema .from_orm (user_1 ).dict (
2233+ include = set (queried_user_fields .split ("," )),
2234+ ),
22162235 "id" : str (user_1 .id ),
22172236 "type" : "user" ,
22182237 },
22192238 {
2220- "attributes" : UserAttributesBaseSchema .from_orm (user_2 ).dict (include = {"name" }),
2239+ "attributes" : UserAttributesBaseSchema .from_orm (user_2 ).dict (
2240+ include = set (queried_user_fields .split ("," )),
2241+ ),
22212242 "id" : str (user_2 .id ),
22222243 "type" : "user" ,
22232244 },
0 commit comments