test(tileset): add tests

This commit is contained in:
Benjamin Kirkbride
2020-06-04 21:28:34 -04:00
parent 5c519bde9e
commit 6d64db1aaf

View File

@@ -1,4 +1,5 @@
"""Tests for tilesets"""
import importlib.util
import json
import os
from pathlib import Path
@@ -12,12 +13,24 @@ TEST_DATA = TESTS_DIR / "test_data"
TILE_SETS = TEST_DATA / "tilesets"
ALL_TILESETS = TILE_SETS.glob("*.json")
ALL_TILESET_DIRS = TILE_SETS.glob("*")
@pytest.mark.parametrize("raw_tileset", ALL_TILESETS)
def test_tilesets_integration(raw_tileset):
@pytest.mark.parametrize("tileset_dir", ALL_TILESET_DIRS)
def test_tilesets_integration(tileset_dir):
""" This could be redundant, but it is useful just to ensure that anything in there
is at least sanity checked"""
tileset_ = tileset.cast(json.loads(raw_tileset))
assert tileset_ is not None
# it's a PITA to import like this, don't do it
# https://stackoverflow.com/a/67692/1342874
spec = importlib.util.spec_from_file_location(
"expected", tileset_dir / "expected.py"
)
expected = importlib.util.module_from_spec(spec)
spec.loader.exec_module(expected)
raw_tileset_path = tileset_dir / "tileset.json"
with open(raw_tileset_path) as raw_tileset:
tileset_ = tileset.cast(json.loads(raw_tileset))
assert tileset_ == expected.EXPECTED