Skip to content

Commit ebc59b5

Browse files
committed
issue update
1 parent 43d7dc0 commit ebc59b5

File tree

2 files changed

+36
-16
lines changed

2 files changed

+36
-16
lines changed

fastapi_jsonapi/schema_builder.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,6 @@ def create_jsonapi_object_schemas(
484484
base_name: str = "",
485485
compute_included_schemas: bool = False,
486486
use_schema_cache: bool = True,
487-
exclude_attributes: Optional[List[str]] = None,
488487
) -> JSONAPIObjectSchemas:
489488
if use_schema_cache and schema in self.object_schemas_cache and includes is not_passed:
490489
return self.object_schemas_cache[schema]

tests/test_api/test_api_sqla_with_includes.py

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)