diff options
author | Jennifer Wang <jtwang@yelp.com> | 2016-06-02 12:30:46 -0700 |
---|---|---|
committer | Jennifer Wang <jtwang@yelp.com> | 2016-06-03 12:45:20 -0700 |
commit | 0d1c77498307af875c2e015c7b73d00b52d83831 (patch) | |
tree | e8397cb98208bdb4c85a8c14d0bbf46fb36409dc /tests/test_numbers.py | |
parent | 5643e5c71fe17ffeda883d62c2cac2676b7610ec (diff) | |
download | babel-0d1c77498307af875c2e015c7b73d00b52d83831.tar.gz |
parse_pattern now passes original pattern string to NumberPattern
Diffstat (limited to 'tests/test_numbers.py')
-rw-r--r-- | tests/test_numbers.py | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/tests/test_numbers.py b/tests/test_numbers.py index 19f9bc7..24b274c 100644 --- a/tests/test_numbers.py +++ b/tests/test_numbers.py @@ -317,5 +317,47 @@ def test_parse_grouping(): def test_parse_pattern(): - assert numbers.parse_pattern(u'¤#,##0.00;(¤#,##0.00)').suffix == (u'', u')') - assert numbers.parse_pattern(u'¤ #,##0.00;¤ #,##0.00-').suffix == (u'', u'-') + + # Original pattern is preserved + np = numbers.parse_pattern(u'¤#,##0.00') + assert np.pattern == u'¤#,##0.00' + + np = numbers.parse_pattern(u'¤#,##0.00;(¤#,##0.00)') + assert np.pattern == u'¤#,##0.00;(¤#,##0.00)' + + # Given a NumberPattern object, we don't return a new instance. + # However, we don't cache NumberPattern objects, so calling + # parse_pattern with the same format string will create new + # instances + np1 = numbers.parse_pattern(u'¤ #,##0.00') + np2 = numbers.parse_pattern(u'¤ #,##0.00') + assert np1 is not np2 + assert np1 is numbers.parse_pattern(np1) + + +def test_parse_pattern_negative(): + + # No negative format specified + np = numbers.parse_pattern(u'¤#,##0.00') + assert np.prefix == (u'¤', u'-¤') + assert np.suffix == (u'', u'') + + # Negative format is specified + np = numbers.parse_pattern(u'¤#,##0.00;(¤#,##0.00)') + assert np.prefix == (u'¤', u'(¤') + assert np.suffix == (u'', u')') + + # Negative sign is a suffix + np = numbers.parse_pattern(u'¤ #,##0.00;¤ #,##0.00-') + assert np.prefix == (u'¤ ', u'¤ ') + assert np.suffix == (u'', u'-') + + +def test_numberpattern_repr(): + """repr() outputs the pattern string""" + + # This implementation looks a bit funny, but that's cause strings are + # repr'd differently in Python 2 vs 3 and this test runs under both. + format = u'¤#,##0.00;(¤#,##0.00)' + np = numbers.parse_pattern(format) + assert repr(format) in repr(np) |