-
Notifications
You must be signed in to change notification settings - Fork 444
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 the way obsolete messages are stored #1132
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1132 +/- ##
==========================================
+ 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. |
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.
I don't think we need to document this as a breaking change, but let's check that we would still do the right thing when serializing a catalog after this change? (See comment within.)
assert message.context == 'other' | ||
assert message.string == 'Voh' | ||
|
||
def test_obsolete_messages_with_context(self): |
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.
Could we add a roundtrip test here – write_po(ignore_obsolete=False)
/generate_po(ignore_obsolete=False)
reads .obsolete
, so we should maybe see that we get the same stuff back out?
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.
Added!
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.
📜 👍
Closes #1124
Previously, the
Catalog.obsolete
dictionary would use themsgid
as a key to store messages.When there are two messages with the same id but a different context, the latter one overwrites the former.
The fix is to use
Catalog._get_key
as the key, same as for_messages
.This might be considered a breaking change, however the only documentation for
Catalog.obsolete
is this:The docs never say anything about how the keys are computed, so I think it should be safe to make this change (and perhaps document it too?)