-
Notifications
You must be signed in to change notification settings - Fork 453
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
Fix of list index out of range error in PoFileParser.add_message when translations is empty #1135
Conversation
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! I left two comments :)
edit: I'd also add a test for this case
Co-authored-by: Tomas R <tomas.roun8@gmail.com>
…babel into PoFileParser_Patch
…sponding msgid without msgstr
I updated the error message and added a test. Let me know if there's any other changes that should be made! |
Thanks! I'll take a look later today or tomorrow (ping me in case I forget) |
Co-authored-by: Tomas R <tomas.roun8@gmail.com>
Co-authored-by: Tomas R <tomas.roun8@gmail.com>
Sorry for the delay, it's been a busy couple of days. I just added a couple more test cases! |
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.
Looking good, just some test nitpicks :)
tests/messages/test_pofile.py
Outdated
with pytest.raises(pofile.PoFileError) as e: | ||
pofile.read_po(buf, abort_invalid=True) | ||
assert(str(e.value)) == "missing msgstr for msgid 'foo' on 1" |
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.
Missing newline ;)
Co-authored-by: Tomas R <tomas.roun8@gmail.com>
Co-authored-by: Tomas R <tomas.roun8@gmail.com>
…babel into PoFileParser_Patch
Made those extra changes. Thanks for sticking with me as I work through everything! |
Thank you for working on the fix! It's looking good to me but I don't have commit rights in this repo so I'm pinging @akx 🙂 |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1135 +/- ##
==========================================
+ Coverage 91.26% 91.31% +0.05%
==========================================
Files 27 27
Lines 4602 4618 +16
==========================================
+ Hits 4200 4217 +17
+ Misses 402 401 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Thank you! The test was a bit buggy, so I went ahead and fixed that – and also that we don't do (a tiny bit of) extra work if we'd end up raising an error next anyway. |
Addresses #1134
Previously, the
add_message
function would try to access the PoFileParser object's translations list without any checks. However, when an invalid po file is provided, this can lead to an index out of range error.This PR adds a check to the
_finish_current_message
function and raises aninvalid_pofile
exception when the messages list is populated and translations is empty. This also adds a dummy translation to the translations list to avoid the index out of range error when aninvalid_pofile
exception is treated as a warning rather than raised.