An error occurred while loading the file. Please try again.
-
Eric Duminil authored5b0ab0ec
import unittest
import pyperclip
from get_coordinates_by_zipcode import get_coordinates_by_zipcode
class TestGetCoordinates(unittest.TestCase):
def test_get_single_plz(self):
coords = get_coordinates_by_zipcode(['70567'])
self.assertTrue(coords.startswith('POLYGON ((9.'))
self.assertTrue(' 48.7' in coords)
self.assertTrue(' 9.15' in coords)
# Should be detailed enough
self.assertTrue(len(coords.split(',')) > 100)
def test_get_single_plz_with_coarser_coordinates(self):
coords = get_coordinates_by_zipcode(['70567'], precision=1000)
self.assertTrue(coords.startswith('POLYGON ((9.'))
# Should be not detailed at all
self.assertTrue(len(coords.split(',')) < 10)
def test_get_multiple_plz(self):
# Multiple PLZs
coords = get_coordinates_by_zipcode(['70567', '70569'])
self.assertTrue(coords.startswith('POLYGON ((9.'))
self.assertTrue(' 48.7' in coords)
self.assertTrue(' 9.15' in coords)
def test_get_multiple_disjoint_plz(self):
# Multiple PLZs, separate
coords = get_coordinates_by_zipcode(['70567', '10178'])
self.assertTrue(coords.startswith('MULTIPOLYGON ((('))
self.assertTrue(' 48.7' in coords)
self.assertTrue(' 9.15' in coords)
self.assertTrue(' 52.5' in coords)
self.assertTrue(' 13.4' in coords)
def test_get_plz_with_hole(self):
# 70469 missing in the middle
coords = get_coordinates_by_zipcode(['70469', '70193',
'70176', '70174', '70191'])
self.assertTrue(coords.startswith('POLYGON ((9'))
self.assertTrue('), (' in coords)
def test_get_coords_in_clipboard(self):
pyperclip.copy("")
self.assertEqual(pyperclip.paste(), "")
get_coordinates_by_zipcode(['70567'])
coords = pyperclip.paste()
self.assertTrue(coords.startswith('POLYGON ((9.'))
self.assertTrue(' 48.7' in coords)
self.assertTrue(' 9.15' in coords)
def test_get_unknown_plz(self):
# Incorrect PLZ
self.assertRaisesRegex(AttributeError, "no information could be found",
get_coordinates_by_zipcode, ['1234567']
)
if __name__ == '__main__':
unittest.main()