diff options
author | nkozlovskiy <nmk@ydb.tech> | 2023-09-29 12:24:06 +0300 |
---|---|---|
committer | nkozlovskiy <nmk@ydb.tech> | 2023-09-29 12:41:34 +0300 |
commit | e0e3e1717e3d33762ce61950504f9637a6e669ed (patch) | |
tree | bca3ff6939b10ed60c3d5c12439963a1146b9711 /contrib/python/wcwidth/py2/tests/test_ucslevel.py | |
parent | 38f2c5852db84c7b4d83adfcb009eb61541d1ccd (diff) | |
download | ydb-e0e3e1717e3d33762ce61950504f9637a6e669ed.tar.gz |
add ydb deps
Diffstat (limited to 'contrib/python/wcwidth/py2/tests/test_ucslevel.py')
-rw-r--r-- | contrib/python/wcwidth/py2/tests/test_ucslevel.py | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/contrib/python/wcwidth/py2/tests/test_ucslevel.py b/contrib/python/wcwidth/py2/tests/test_ucslevel.py new file mode 100644 index 0000000000..654e835fc7 --- /dev/null +++ b/contrib/python/wcwidth/py2/tests/test_ucslevel.py @@ -0,0 +1,182 @@ +# coding: utf-8 +"""Unicode version level tests for wcwidth.""" +# std imports +import warnings + +# 3rd party +import pytest + +# local +import wcwidth + + +def test_latest(): + """wcwidth._wcmatch_version('latest') returns tail item.""" + # given, + expected = wcwidth.list_versions()[-1] + + # exercise, + result = wcwidth._wcmatch_version('latest') + + # verify. + assert result == expected + + +def test_exact_410_str(): + """wcwidth._wcmatch_version('4.1.0') returns equal value (str).""" + # given, + given = expected = '4.1.0' + + # exercise, + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected + + +def test_exact_410_unicode(): + """wcwidth._wcmatch_version(u'4.1.0') returns equal value (unicode).""" + # given, + given = expected = u'4.1.0' + + # exercise, + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected + + +def test_nearest_505_str(): + """wcwidth._wcmatch_version('5.0.5') returns nearest '5.0.0'. (str)""" + # given + given, expected = '5.0.5', '5.0.0' + + # exercise + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected + + +def test_nearest_505_unicode(): + """wcwidth._wcmatch_version(u'5.0.5') returns nearest u'5.0.0'. (unicode)""" + # given + given, expected = u'5.0.5', u'5.0.0' + + # exercise + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected + + +def test_nearest_lowint40_str(): + """wcwidth._wcmatch_version('4.0') returns nearest '4.1.0'.""" + # given + given, expected = '4.0', '4.1.0' + warnings.resetwarnings() + wcwidth._wcmatch_version.cache_clear() + + # exercise + with pytest.warns(UserWarning): + # warns that given version is lower than any available + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected + + +def test_nearest_lowint40_unicode(): + """wcwidth._wcmatch_version(u'4.0') returns nearest u'4.1.0'.""" + # given + given, expected = u'4.0', u'4.1.0' + warnings.resetwarnings() + wcwidth._wcmatch_version.cache_clear() + + # exercise + with pytest.warns(UserWarning): + # warns that given version is lower than any available + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected + + +def test_nearest_800_str(): + """wcwidth._wcmatch_version('8') returns nearest '8.0.0'.""" + # given + given, expected = '8', '8.0.0' + + # exercise + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected + + +def test_nearest_800_unicode(): + """wcwidth._wcmatch_version(u'8') returns nearest u'8.0.0'.""" + # given + given, expected = u'8', u'8.0.0' + + # exercise + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected + + +def test_nearest_999_str(): + """wcwidth._wcmatch_version('999.0') returns nearest (latest).""" + # given + given, expected = '999.0', wcwidth.list_versions()[-1] + + # exercise + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected + + +def test_nearest_999_unicode(): + """wcwidth._wcmatch_version(u'999.0') returns nearest (latest).""" + # given + given, expected = u'999.0', wcwidth.list_versions()[-1] + + # exercise + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected + + +def test_nonint_unicode(): + """wcwidth._wcmatch_version(u'x.y.z') returns latest (unicode).""" + # given + given, expected = u'x.y.z', wcwidth.list_versions()[-1] + warnings.resetwarnings() + wcwidth._wcmatch_version.cache_clear() + + # exercise + with pytest.warns(UserWarning): + # warns that given version is not valid + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected + + +def test_nonint_str(): + """wcwidth._wcmatch_version(u'x.y.z') returns latest (str).""" + # given + given, expected = 'x.y.z', wcwidth.list_versions()[-1] + warnings.resetwarnings() + wcwidth._wcmatch_version.cache_clear() + + # exercise + with pytest.warns(UserWarning): + # warns that given version is not valid + result = wcwidth._wcmatch_version(given) + + # verify. + assert result == expected |