-
Notifications
You must be signed in to change notification settings - Fork 671
fix: use the [] after key names for array variables in params
#1699
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
1572d87
to
0f0f823
Compare
98172f6
to
f596068
Compare
f596068
to
1591a91
Compare
Codecov Report
@@ Coverage Diff @@
## main #1699 +/- ##
==========================================
- Coverage 95.54% 95.53% -0.01%
==========================================
Files 81 81
Lines 5296 5309 +13
==========================================
+ Hits 5060 5072 +12
- Misses 236 237 +1
Flags with carried forward coverage won't be shown. Click here to find out more.
|
1591a91
to
76b04a8
Compare
|
db3ab50
to
e3c2e95
Compare
@nejch This is ready for review now. Interested to hear your feedback. Thanks. |
e3c2e95
to
fdc854a
Compare
b44cef7
to
902d9f6
Compare
Should we try to revive this one @JohnVillalovos? Seems like an important fix. Probably fixes a few more issues down the line, will need to check those. |
Yeah, probably. Let me see if I get some time this weekend. Thanks for reminding me! |
f7e0842
to
a939db1
Compare
7f6a8c2
to
50b1f12
Compare
50b1f12
to
2ca7ddb
Compare
@nejch It is ready for review again. Thanks for your patience. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @JohnVillalovos looks super simple now. I have some concerns but I think I'll just merge this and use it to track and open a refactor based on my comments.
I have to take that back - seems like this also transforms the key for POST/PUT payloads which shouldn't happen. This maybe needs a test with create()
to ensure we don't use key[]
in payloads.
Edit2: I think we need to maybe change _transform_types
to take another argument (transform_keys
) which we pass in in the ListMixin or maybe even directly in get requests.
I think we need to transform "parameters'. Whether it is a GET/POST/PUT. Now handling values in the |
Yes, that's right :) sorry for the confusion. payload = no transform, query params = transform. |
2ca7ddb
to
ba084c6
Compare
@JohnVillalovos I think this doesn't work quite right yet. Can you try this test in this patch? diff --git a/tests/unit/mixins/test_mixin_methods.py b/tests/unit/mixins/test_mixin_methods.py
index 69cdb78..e8870b9 100644
--- a/tests/unit/mixins/test_mixin_methods.py
+++ b/tests/unit/mixins/test_mixin_methods.py
@@ -314,6 +314,26 @@ def test_create_mixin_custom_path(gl):
assert responses.assert_call_count(url, 1) is True
+
+@responses.activate
+def test_create_mixin_with_attributes(gl):
+ class M(CreateMixin, FakeManager):
+ _types = {"my_array": gl_types.ArrayAttribute}
+
+ url = "http://localhost/api/v4/tests"
+ responses.add(
+ method=responses.POST,
+ headers={},
+ url=url,
+ json={},
+ status=200,
+ match=[responses.matchers.json_params_matcher({"my_array": ["1", "2", "3"]})],
+ )
+
+ mgr = M(gl)
+ mgr.create({"my_array": [1, 2, 3]})
+
+
def test_update_mixin_missing_attrs(gl):
class M(UpdateMixin, FakeManager):
_update_attrs = gl_types.RequiredOptional(
The reason we might want this is, for example |
ba084c6
to
bc6ddf2
Compare
Thanks @nejch I totally missed that the Updated the code to only modify the data for the |
1. If a value is of type ArrayAttribute then append '[]' to the name of the value for query parameters (`params`). This is step 3 in a series of steps of our goal to add full support for the GitLab API data types[1]: * array * hash * array of hashes Step one was: commit 5127b15 Step two was: commit a57334f Fixes: #1698 [1] https://docs.gitlab.com/ee/api/#encoding-api-parameters-of-array-and-hash-types
bc6ddf2
to
1af44ce
Compare
params
of the value.
This is step 3 in a series of steps of our goal to add full
support for the GitLab API data types[1]:
Step one was: commit 5127b15
Step two was: commit a57334f
Fixes: #1698
Related to #780
Closes #806
[1] https://docs.gitlab.com/ee/api/#encoding-api-parameters-of-array-and-hash-types