From 6d64db1aaf9a036ff7fb01422687fcb0ef3ca9a9 Mon Sep 17 00:00:00 2001 From: Benjamin Kirkbride Date: Thu, 4 Jun 2020 21:28:34 -0400 Subject: [PATCH] test(tileset): add tests --- tests/test_tileset.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/tests/test_tileset.py b/tests/test_tileset.py index 63f313e..1e6f458 100644 --- a/tests/test_tileset.py +++ b/tests/test_tileset.py @@ -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