]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
Beef up test_plurals.py 306/head
authorLukas B <lukas-b@users.noreply.github.com>
Tue, 4 Nov 2014 23:51:39 +0000 (15:51 -0800)
committerAarni Koskela <akx@iki.fi>
Wed, 30 Dec 2015 14:33:00 +0000 (16:33 +0200)
Update test coverage in test_plurals.py

tests/messages/test_plurals.py

index 8c11745ffc693575215ab0a685c9fa2acc679226..63ede13e20f3c639d76a30a0f30eb06470a381fd 100644 (file)
@@ -37,9 +37,28 @@ def test_get_plural_falls_back_to_default():
     assert plurals.get_plural('aa') == (2, '(n != 1)')
 
 
-def test_plural_tuple_attributes():
-    tup = plurals.get_plural("ja")
-    assert tup.num_plurals == 1
-    assert tup.plural_expr == '0'
-    assert tup.plural_forms == 'npurals=1; plural=0'
-    assert str(tup) == 'npurals=1; plural=0'
+def test_get_plural():
+    # See http://localization-guide.readthedocs.org/en/latest/l10n/pluralforms.html for more details.
+    assert plurals.get_plural(locale='en') == (2, '(n != 1)')
+    assert plurals.get_plural(locale='ga') == (3, '(n==1 ? 0 : n==2 ? 1 : 2)')
+
+    plural_ja = plurals.get_plural("ja")
+    assert str(plural_ja) == 'nplurals=1; plural=0;'
+    assert plural_ja.num_plurals == 1
+    assert plural_ja.plural_expr == '0'
+    assert plural_ja.plural_forms == 'nplurals=1; plural=0;'
+
+    plural_en_US = plurals.get_plural('en_US')
+    assert str(plural_en_US) == 'nplurals=2; plural=(n != 1);'
+    assert plural_en_US.num_plurals == 2
+    assert plural_en_US.plural_expr == '(n != 1)'
+
+    plural_fr_FR = plurals.get_plural('fr_FR')
+    assert str(plural_fr_FR) == 'nplurals=2; plural=(n > 1);'
+    assert plural_fr_FR.num_plurals == 2
+    assert plural_fr_FR.plural_expr == '(n > 1)'
+
+    plural_pl_PL = plurals.get_plural('pl_PL')
+    assert str(plural_pl_PL) == 'nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);'
+    assert plural_pl_PL.num_plurals == 3
+    assert plural_pl_PL.plural_expr == '(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'