Fix `pybabel update --init-missing` not creating parent directory
Replaced the redundant init logic in UpdateCatalog.run() with a temporary InitCatalog instance to ensure the parent directory of the output file will be created. (close #1139)
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 91.28%. Comparing base (
313277a) to head (3a47a5c).
Additional details and impacted files
@@ Coverage Diff @@
## master #1142 +/- ##
=======================================
Coverage 91.28% 91.28%
=======================================
Files 27 27
Lines 4623 4624 +1
=======================================
+ Hits 4220 4221 +1
Misses 403 403
| Flag | Coverage Δ | |
|---|---|---|
| macos-12-3.10 | 90.05% <100.00%> (+<0.01%) |
:arrow_up: |
| macos-12-3.11 | 89.98% <100.00%> (+<0.01%) |
:arrow_up: |
| macos-12-3.12 | 90.20% <100.00%> (+<0.01%) |
:arrow_up: |
| macos-12-3.13-dev | 89.72% <100.00%> (+<0.01%) |
:arrow_up: |
| macos-12-3.8 | 89.98% <100.00%> (+<0.01%) |
:arrow_up: |
| macos-12-3.9 | 89.98% <100.00%> (+<0.01%) |
:arrow_up: |
| macos-12-pypy3.10 | 90.05% <100.00%> (+<0.01%) |
:arrow_up: |
| ubuntu-22.04-3.10 | 90.07% <100.00%> (+<0.01%) |
:arrow_up: |
| ubuntu-22.04-3.11 | 90.00% <100.00%> (+<0.01%) |
:arrow_up: |
| ubuntu-22.04-3.12 | 90.22% <100.00%> (+<0.01%) |
:arrow_up: |
| ubuntu-22.04-3.13-dev | 89.74% <100.00%> (+<0.01%) |
:arrow_up: |
| ubuntu-22.04-3.8 | 90.00% <100.00%> (+<0.01%) |
:arrow_up: |
| ubuntu-22.04-3.9 | 90.00% <100.00%> (+<0.01%) |
:arrow_up: |
| ubuntu-22.04-pypy3.10 | 90.07% <100.00%> (+<0.01%) |
:arrow_up: |
| windows-2022-3.10 | 90.19% <100.00%> (+<0.01%) |
:arrow_up: |
| windows-2022-3.11 | 90.12% <100.00%> (+<0.01%) |
:arrow_up: |
| windows-2022-3.12 | 90.34% <100.00%> (+<0.01%) |
:arrow_up: |
| windows-2022-3.13-dev | 89.86% <100.00%> (+<0.01%) |
:arrow_up: |
| windows-2022-3.8 | 90.12% <100.00%> (+<0.01%) |
:arrow_up: |
| windows-2022-3.9 | 90.12% <100.00%> (+<0.01%) |
:arrow_up: |
| windows-2022-pypy3.10 | 90.19% <100.00%> (+<0.01%) |
:arrow_up: |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Could we get some sort of test for this? Does the (re)use of
InitCatalogdo exactly the same thing as the old code?
The original logic replaced in UpdateCatalog is the same as InitCatalog.run(). To resolve the corresponding issue, we need the directory creation logic in InitCatalog.finalize_options(). I haven't investigated on what else will be done in the constructor.
Will it be better to elevate the logic of InitCatalog.run() and InitCatalog.finalize_options() to classmethods?
Or should we make it simple, by just adding the directory creation logic again, and leave the redundancy for now?