summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylvain Viollon <sviollon@minddistrict.com>2018-10-18 11:53:33 +0200
committerSylvain Viollon <sviollon@minddistrict.com>2018-10-18 11:53:33 +0200
commit9a065290f95531990d5d7525c393917a5cb968bb (patch)
tree9c663fdd18e885a5493fb3fc0424dbaa4abedb34
parent1d97d8d83842ffa2e22c84a7873a3565839821f3 (diff)
downloadzope-i18nmessageid-9a065290f95531990d5d7525c393917a5cb968bb.tar.gz
Review comment.
-rw-r--r--src/zope/i18nmessageid/message.py16
-rw-r--r--src/zope/i18nmessageid/tests.py15
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(