refactor tileset to name; preserve pmtiles module ZIP structure

This commit is contained in:
Brandon Liu
2022-07-18 16:23:04 +08:00
parent 2b7f6b6c9f
commit 0a153bf127
3 changed files with 32 additions and 25 deletions

View File

@@ -4,43 +4,51 @@ from lambda_function import parse_tile_path, pmtiles_path
class TestLambda(unittest.TestCase):
def test_parse_tile_default(self):
tileset, tile = parse_tile_path(None, "abcd")
name, tile = parse_tile_path(None, "abcd")
self.assertEqual(tile, None)
tileset, tile = parse_tile_path(None, "/foo/11/22/33.pbf")
self.assertEqual(tileset, "foo")
name, tile = parse_tile_path(None, "/foo/11/22/33.pbf")
self.assertEqual(name, "foo")
self.assertEqual(tile.z, 11)
self.assertEqual(tile.x, 22)
self.assertEqual(tile.y, 33)
def test_parse_tile_path_setting(self):
tileset, tile = parse_tile_path(
"/{tileset}/{z}/{y}/{x}.pbf", "/foo/11/22/33.pbf"
)
name, tile = parse_tile_path("/{name}/{z}/{y}/{x}.pbf", "/foo/11/22/33.pbf")
self.assertEqual(tile.x, 33)
self.assertEqual(tile.y, 22)
tileset, tile = parse_tile_path(
"/tiles/{tileset}/{z}/{x}/{y}.mvt", "/tiles/foo/4/2/3.mvt"
name, tile = parse_tile_path(
"/tiles/{name}/{z}/{x}/{y}.mvt", "/tiles/foo/4/2/3.mvt"
)
self.assertEqual(tileset, "foo")
self.assertEqual(name, "foo")
self.assertEqual(tile.z, 4)
self.assertEqual(tile.x, 2)
self.assertEqual(tile.y, 3)
def test_parse_tile_path_setting_special_chars(self):
tileset, tile = parse_tile_path(
"/folder(new/{tileset}/{z}/{y}/{x}.pbf", "/folder(new/foo/11/22/33.pbf"
name, tile = parse_tile_path(
"/folder(new/{name}/{z}/{y}/{x}.pbf", "/folder(new/foo/11/22/33.pbf"
)
self.assertEqual(tileset, "foo")
self.assertEqual(name, "foo")
def test_parse_tile_path_setting_slash(self):
name, tile = parse_tile_path("/{name}/{z}/{y}/{x}.pbf", "/foo/bar/11/22/33.pbf")
self.assertEqual(name, "foo/bar")
def test_pmtiles_path(self):
self.assertEqual(pmtiles_path(None, "foo"), "foo.pmtiles")
self.assertEqual(
pmtiles_path("folder/{tileset}/file.pmtiles", "foo"),
pmtiles_path("folder/{name}/file.pmtiles", "foo"),
"folder/foo/file.pmtiles",
)
def test_pmtiles_path_slash(self):
self.assertEqual(
pmtiles_path("folder/{name}.pmtiles", "foo/bar"),
"folder/foo/bar.pmtiles",
)
if __name__ == "__main__":
unittest.main()