diff options
author | Sylvain Viollon <sviollon@minddistrict.com> | 2018-10-18 11:53:33 +0200 |
---|---|---|
committer | Sylvain Viollon <sviollon@minddistrict.com> | 2018-10-18 11:53:33 +0200 |
commit | 9a065290f95531990d5d7525c393917a5cb968bb (patch) | |
tree | 9c663fdd18e885a5493fb3fc0424dbaa4abedb34 | |
parent | 1d97d8d83842ffa2e22c84a7873a3565839821f3 (diff) | |
download | zope-i18nmessageid-9a065290f95531990d5d7525c393917a5cb968bb.tar.gz |
Review comment.
-rw-r--r-- | src/zope/i18nmessageid/message.py | 16 | ||||
-rw-r--r-- | src/zope/i18nmessageid/tests.py | 15 |
2 files changed, 23 insertions, 8 deletions
diff --git a/src/zope/i18nmessageid/message.py b/src/zope/i18nmessageid/message.py index bed7a37..72c8441 100644 --- a/src/zope/i18nmessageid/message.py +++ b/src/zope/i18nmessageid/message.py @@ -36,15 +36,16 @@ class Message(six.text_type): msgid_plural=None, default_plural=None, number=None): self = six.text_type.__new__(cls, ustr) if isinstance(ustr, self.__class__): - domain = ustr.domain and ustr.domain[:] or domain - default = ustr.default and ustr.default[:] or default - mapping = ustr.mapping and ustr.mapping.copy() or mapping + domain = domain if ustr.domain is None else ustr.domain[:] + default = default if ustr.default is None else ustr.default[:] + mapping = mapping if ustr.mapping is None else ustr.mapping.copy() msgid_plural = ( - ustr.msgid_plural and ustr.msgid_plural[:] or msgid_plural) + msgid_plural if ustr.msgid_plural is None else + ustr.msgid_plural[:]) default_plural = ( - ustr.default_plural and ustr.default_plural[:] - or default_plural) - number = ustr.number is not None and ustr.number or number + default_plural if ustr.default_plural is None else + ustr.default_plural[:]) + number = number if ustr.number is None else ustr.number ustr = six.text_type(ustr) self.domain = domain @@ -55,7 +56,6 @@ class Message(six.text_type): if number is not None and not isinstance( number, six.integer_types + (float,)): - # Number must be an integer raise TypeError('`number` should be an integer or a float') self.number = number diff --git a/src/zope/i18nmessageid/tests.py b/src/zope/i18nmessageid/tests.py index 685cde0..3de1e1d 100644 --- a/src/zope/i18nmessageid/tests.py +++ b/src/zope/i18nmessageid/tests.py @@ -70,6 +70,21 @@ class PyMessageTests(unittest.TestCase): if self._TEST_READONLY: self.assertTrue(message._readonly) + def test_values_with_zero(self): + mapping = {'key': 'value'} + message = self._makeOne( + 'testing', 'domain', 'default', mapping, + msgid_plural='testings', default_plural="defaults", number=0) + self.assertEqual(message, 'testing') + self.assertEqual(message.domain, 'domain') + self.assertEqual(message.default, 'default') + self.assertEqual(message.mapping, mapping) + self.assertEqual(message.msgid_plural, 'testings') + self.assertEqual(message.default_plural, 'defaults') + self.assertEqual(message.number, 0) + if self._TEST_READONLY: + self.assertTrue(message._readonly) + def test_copy(self): mapping = {'key': 'value'} source = self._makeOne( |