]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #28563: Make plural form selection more lenient and accepting
authorSerhiy Storchaka <storchaka@gmail.com>
Mon, 14 Nov 2016 17:25:56 +0000 (19:25 +0200)
committerSerhiy Storchaka <storchaka@gmail.com>
Mon, 14 Nov 2016 17:25:56 +0000 (19:25 +0200)
non-integer numbers.  Django tests depend on this.

1  2 
Lib/gettext.py
Lib/test/test_gettext.py

diff --cc Lib/gettext.py
Simple merge
index 7cd84347fd5aa30d96abcc62182b9a6a9da25cd3,3fbc50d3669e70f2d7dd9074838835d37bd9bbc5..80b18da02c0cfa7a34b6935a156ad304762a3815
@@@ -371,22 -365,18 +371,26 @@@ class PluralFormsTestCase(GettextBaseTe
          self.assertRaises(ZeroDivisionError, f, 0)
  
      def test_plural_number(self):
-         f = gettext.c2py('1')
-         self.assertEqual(f(1), 1)
-         self.assertRaises(ValueError, f, 1.0)
-         self.assertRaises(ValueError, f, '1')
-         self.assertRaises(ValueError, f, [])
-         self.assertRaises(ValueError, f, object())
+         f = gettext.c2py('n != 1')
+         self.assertEqual(f(1), 0)
+         self.assertEqual(f(2), 1)
+         self.assertEqual(f(1.0), 0)
+         self.assertEqual(f(2.0), 1)
+         self.assertEqual(f(1.1), 1)
+         self.assertRaises(TypeError, f, '2')
+         self.assertRaises(TypeError, f, b'2')
+         self.assertRaises(TypeError, f, [])
+         self.assertRaises(TypeError, f, object())
  
  
 +class GNUTranslationParsingTest(GettextBaseTest):
 +    def test_plural_form_error_issue17898(self):
 +        with open(MOFILE, 'wb') as fp:
 +            fp.write(base64.decodebytes(GNU_MO_DATA_ISSUE_17898))
 +        with open(MOFILE, 'rb') as fp:
 +            # If this runs cleanly, the bug is fixed.
 +            t = gettext.GNUTranslations(fp)
 +
  
  class UnicodeTranslationsTest(GettextBaseTest):
      def setUp(self):