From b735857fe64500de433fbc006b7807e8964688ed Mon Sep 17 00:00:00 2001 From: Benjamin Kirkbride Date: Thu, 4 Jun 2020 20:10:40 -0400 Subject: [PATCH] test: tileset stuff --- pytiled_parser/tileset.py | 2 +- tests/test_data/tilesets/tileset_image.json | 14 ++ .../tilesets/tileset_image_objects.json | 192 ++++++++++++++++++ tests/test_tileset.py | 23 +++ 4 files changed, 230 insertions(+), 1 deletion(-) create mode 100644 tests/test_data/tilesets/tileset_image.json create mode 100644 tests/test_data/tilesets/tileset_image_objects.json create mode 100644 tests/test_tileset.py diff --git a/pytiled_parser/tileset.py b/pytiled_parser/tileset.py index 8d30e06..c615813 100644 --- a/pytiled_parser/tileset.py +++ b/pytiled_parser/tileset.py @@ -171,5 +171,5 @@ class TileSet: parent_dir: Path = None -def parse(): +def cast(): pass diff --git a/tests/test_data/tilesets/tileset_image.json b/tests/test_data/tilesets/tileset_image.json new file mode 100644 index 0000000..8f3b73e --- /dev/null +++ b/tests/test_data/tilesets/tileset_image.json @@ -0,0 +1,14 @@ +{ "columns":8, + "image":"..\/images\/tmw_desert_spacing.png", + "imageheight":199, + "imagewidth":265, + "margin":1, + "name":"tile_set_image", + "spacing":1, + "tilecount":48, + "tiledversion":"1.3.1", + "tileheight":32, + "tilewidth":32, + "type":"tileset", + "version":1.2 +} diff --git a/tests/test_data/tilesets/tileset_image_objects.json b/tests/test_data/tilesets/tileset_image_objects.json new file mode 100644 index 0000000..6ceb5be --- /dev/null +++ b/tests/test_data/tilesets/tileset_image_objects.json @@ -0,0 +1,192 @@ +{ "columns":8, + "image":"..\/images\/tmw_desert_spacing.png", + "imageheight":199, + "imagewidth":265, + "margin":1, + "name":"tile_set_image", + "spacing":1, + "tilecount":5, + "tiledversion":"1.3.1", + "tileheight":32, + "tiles":[ + { + "id":9, + "objectgroup": + { + "draworder":"index", + "name":"", + "objects":[ + { + "height":32, + "id":2, + "name":"wall", + "rotation":1, + "type":"rectangle type", + "visible":true, + "width":32, + "x":1, + "y":1 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":19, + "objectgroup": + { + "draworder":"index", + "name":"", + "objects":[ + { + "height":0, + "id":1, + "name":"wall corner", + "polygon":[ + { + "x":0, + "y":0 + }, + { + "x":-32, + "y":0 + }, + { + "x":-32, + "y":32 + }, + { + "x":-16, + "y":32.1818 + }, + { + "x":-15.8182, + "y":16.9091 + }, + { + "x":0.181818, + "y":17.0909 + }], + "rotation":1, + "type":"polygon type", + "visible":true, + "width":0, + "x":32, + "y":1 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":20, + "objectgroup": + { + "draworder":"index", + "name":"", + "objects":[ + { + "height":0, + "id":1, + "name":"polyline", + "polyline":[ + { + "x":0, + "y":0 + }, + { + "x":25.0909, + "y":21.2727 + }, + { + "x":9.63636, + "y":28.3636 + }], + "rotation":1, + "type":"polyline type", + "visible":true, + "width":0, + "x":1.45455, + "y":1.45455 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":31, + "objectgroup": + { + "draworder":"index", + "name":"", + "objects":[ + { + "ellipse":true, + "height":19.2727, + "id":1, + "name":"rock 1", + "rotation":1, + "type":"elipse type", + "visible":true, + "width":19.6364, + "x":5.09091, + "y":2.54545 + }, + { + "ellipse":true, + "height":8.36364, + "id":2, + "name":"rock 2", + "rotation":-1, + "type":"elipse type", + "visible":true, + "width":8.54545, + "x":16.1818, + "y":22 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }, + { + "id":45, + "objectgroup": + { + "draworder":"index", + "name":"", + "objects":[ + { + "height":0, + "id":1, + "name":"sign", + "point":true, + "rotation":0, + "type":"point type", + "visible":true, + "width":0, + "x":14.7273, + "y":26.3636 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + } + }], + "tilewidth":32, + "type":"tileset", + "version":1.2 +} diff --git a/tests/test_tileset.py b/tests/test_tileset.py new file mode 100644 index 0000000..63f313e --- /dev/null +++ b/tests/test_tileset.py @@ -0,0 +1,23 @@ +"""Tests for tilesets""" +import json +import os +from pathlib import Path + +import pytest + +from pytiled_parser import tileset + +TESTS_DIR = Path(os.path.dirname(os.path.abspath(__file__))) +TEST_DATA = TESTS_DIR / "test_data" +TILE_SETS = TEST_DATA / "tilesets" + + +ALL_TILESETS = TILE_SETS.glob("*.json") + + +@pytest.mark.parametrize("raw_tileset", ALL_TILESETS) +def test_tilesets_integration(raw_tileset): + """ 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