- we don't need order
- regular dicts guarantee order now
- diffs between dict and OrderedDict in pytest's output are unreadable
Details
Details
- Reviewers
ardumont - Group Reviewers
Reviewers - Commits
- rDDEPad6041d31296: parse_xml: build regular dicts instead of OrderedDicts.
Diff Detail
Diff Detail
- Repository
- rDDEP Push deposit
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Event Timeline
Comment Actions
Build is green
Patch application report for D4591 (id=16300)
Could not rebase; Attempt merge onto f612cdc00e...
Updating f612cdc0..ad6041d3 Fast-forward swh/deposit/api/collection.py | 54 +++++- swh/deposit/api/common.py | 232 ++++++++++------------- swh/deposit/api/content.py | 4 +- swh/deposit/api/edit.py | 13 +- swh/deposit/api/edit_media.py | 15 +- swh/deposit/api/private/__init__.py | 17 +- swh/deposit/api/private/deposit_check.py | 7 +- swh/deposit/api/private/deposit_read.py | 11 +- swh/deposit/api/private/deposit_update_status.py | 10 +- swh/deposit/api/state.py | 4 +- swh/deposit/api/sword_edit.py | 13 +- swh/deposit/tests/api/test_deposit_schedule.py | 84 ++++++-- swh/deposit/tests/api/test_deposit_update.py | 4 +- swh/deposit/tests/conftest.py | 22 +-- swh/deposit/utils.py | 6 +- 15 files changed, 284 insertions(+), 212 deletions(-)
Changes applied before test
commit ad6041d312967fb1d4e462525af54a7024b07aa9 Author: Valentin Lorentz <vlorentz@softwareheritage.org> Date: Wed Nov 25 14:29:13 2020 +0100 parse_xml: build regular dicts instead of OrderedDicts. 1. we don't need order 2. regular dicts guarantee order now 3. diffs between dict and OrderedDict in pytest's output are unreadable commit 1b8d51f2ed1ed638794dcf46f3d41abb746185e1 Author: Valentin Lorentz <vlorentz@softwareheritage.org> Date: Wed Nov 25 13:44:14 2020 +0100 Remove unused arguments / return type of _deposit_put. commit 96cd390557c38dd14c2baec72940489cb1e512aa Author: Valentin Lorentz <vlorentz@softwareheritage.org> Date: Wed Nov 25 13:08:08 2020 +0100 Make POST SE-IRI schedule a check task. Otherwise, it just marks the deposit as 'deposited' but the deposit will never be checked, so it will never be loaded. Additionally, this commit deduplicates code between 'POST SE-IRI' and the other POST/PUT endpoints. commit ac2a5f4c958d70ccf4b669fd69a441d7fec55577 Author: Valentin Lorentz <vlorentz@softwareheritage.org> Date: Wed Nov 25 12:59:54 2020 +0100 conftest: Set HTTP_IN_PROGRESS to True when creating partial deposits. conftest is cheating by hard-resetting the deposit status to partial after creating a complete deposit; but it doesn't make sense for a real scenario. Additionally, a future commit will add a test relying on the 'partial_deposit' not scheduling a task, so the HTTP_IN_PROGRESS header will need to be True at that point. commit fb1c19d942ed83a2335e4a5888d6475f2d38df5b Author: Valentin Lorentz <vlorentz@softwareheritage.org> Date: Wed Nov 25 11:53:27 2020 +0100 Make APIBase.get_client return a non-Optional. As it already could never return None. commit 42ad8df54b4e1b28dab51e934393db3a9af74862 Author: Valentin Lorentz <vlorentz@softwareheritage.org> Date: Wed Nov 25 11:49:59 2020 +0100 Don't set APIBase._client in check() Instead, make it really an internal attribute with a method that uses as a cache. Motivation: a method named 'checks' shouldn't set attributes. commit df87127d16c478767cd418a9d696017fdae5aed0 Author: Valentin Lorentz <vlorentz@softwareheritage.org> Date: Wed Nov 25 11:30:55 2020 +0100 Remove attribute APIBase._collection Motivation: 1. It was used only internally in checks() and in 'POST Col-IRI' 2. A method named "check" should not set attributes commit bd46805412a8d41b573aee776ac0a6b40aafa362 Author: Valentin Lorentz <vlorentz@softwareheritage.org> Date: Wed Nov 25 11:17:54 2020 +0100 Check collection name when calling get_deposit_by_id, if relevant. commit 85486a79e014f681aaab844998b1fa98ccc92b49 Author: Valentin Lorentz <vlorentz@softwareheritage.org> Date: Tue Nov 24 16:32:42 2020 +0100 Move Deposit creation from api/common.py to api/collection.py Motivation: 1. it's not an operation in common, only 'POST Col-IRI' may create a deposit 2. it makes the BaseAPI._deposit_put function simpler and less complex This looks like a very long commit, but there are actually four small changes. In order: 1. actually move that creation (the large block of code was moved from one file to the other) 2. make the 'deposit_id' argument of most functions of 'int' type instead of 'Optional[int]', since we now get the id very early by creating it in the Col-IRI view. 3. unfortunately, this means creating a Deposit and committing it directly to the DB, which changes the behavior of the API, as it used to run checks *before* committing to the DB. Therefore, instead of immediately committing to get the id, it passes the Deposit object, which will be committed later by _deposit_put if all checks pass. This means changing the 'deposit_id: int' argument of many internal functions to 'deposit: Deposit'. This is why the diff looks big, but it's actually a trivial change 4. updated test_add_metadata_to_unknown_deposit because the API now returns the right error message, as a side-effect.
See https://jenkins.softwareheritage.org/job/DDEP/job/tests-on-diff/439/ for more details.