| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- """Test locale independence of WKT"""
- import locale
- import sys
- import unittest
- from shapely.wkt import dumps, loads
- # Set locale to one that uses a comma as decimal separator
- # TODO: try a few other common locales
- if sys.platform == "win32":
- test_locales = {"Portuguese": "portuguese_brazil", "Italian": "italian_italy"}
- else:
- test_locales = {
- "Portuguese": "pt_BR.UTF-8",
- "Italian": "it_IT.UTF-8",
- }
- do_test_locale = False
- def setUpModule():
- global do_test_locale
- for name in test_locales:
- try:
- test_locale = test_locales[name]
- locale.setlocale(locale.LC_ALL, test_locale)
- do_test_locale = True
- break
- except Exception:
- pass
- if not do_test_locale:
- raise unittest.SkipTest("test locale not found")
- def tearDownModule():
- if sys.platform == "win32" or sys.version_info[0:2] >= (3, 11):
- locale.setlocale(locale.LC_ALL, "")
- else:
- # Deprecated since version 3.11, will be removed in version 3.13
- locale.resetlocale()
- class LocaleTestCase(unittest.TestCase):
- # @unittest.skipIf(not do_test_locale, 'test locale not found')
- def test_wkt_locale(self):
- # Test reading and writing
- p = loads("POINT (0.0 0.0)")
- assert p.x == 0.0
- assert p.y == 0.0
- wkt = dumps(p)
- assert wkt.startswith("POINT")
- assert "," not in wkt
|