I'm back!

This commit is contained in:
Benjamin Kirkbride
2019-06-29 15:53:30 -04:00
parent a44c3523d4
commit 5b62df0409
14 changed files with 454 additions and 219 deletions

View File

@@ -1,3 +1,3 @@
import pytest
pytest.main(["-x", "tests/unit2"])
pytest.main(["--tb=native", "-s", "tests"])

View File

@@ -1,11 +1,9 @@
import pytest
import xml.etree.ElementTree as etree
from contextlib import contextmanager
from typing import Callable, List, Optional, Tuple
from pytiled_parser import objects, xml_parser, utilities
import pytest
from pytiled_parser import objects, utilities, xml_parser
@contextmanager
@@ -19,8 +17,7 @@ def _get_root_element(xml: str) -> etree.Element:
layer_data = [
(
'<layer id="1" name="Tile Layer 1" width="10" height="10">'
"</layer>",
'<layer id="1" name="Tile Layer 1" width="10" height="10">' "</layer>",
(int(1), "Tile Layer 1", None, None, None),
),
(
@@ -46,7 +43,7 @@ layer_data = [
@pytest.mark.parametrize("xml,expected", layer_data)
def test_parse_layer(xml, expected, monkeypatch):
def mockreturn(properties):
def mockreturn(*args):
return "properties"
monkeypatch.setattr(xml_parser, "_parse_properties_element", mockreturn)
@@ -160,11 +157,53 @@ data_base64 = [
@pytest.mark.parametrize(
"data_base64,width,compression,expected,raises", data_base64
)
def test_decode_base64_data(
data_base64, width, compression, expected, raises
):
def test_decode_base64_data(data_base64, width, compression, expected, raises):
with raises:
assert (
xml_parser._decode_base64_data(data_base64, width, compression)
== expected
)
# FIXME: use hypothesis for this
def create_tile_set(qty_of_tiles):
tile_set = objects.TileSet(None, None)
if qty_of_tiles == 0:
return tile_set
tiles = {}
for tile_id in range(qty_of_tiles):
tiles[tile_id] = objects.Tile(tile_id)
tile_set.tiles = tiles
return tile_set
tile_by_gid = [
(1, {1: create_tile_set(0)}, None),
(1, {1: create_tile_set(1)}, objects.Tile(0)),
(1, {1: create_tile_set(2)}, objects.Tile(0)),
(2, {1: create_tile_set(1)}, None),
(10, {1: create_tile_set(10)}, objects.Tile(9)),
(1, {1: create_tile_set(1), 2: create_tile_set(1)}, objects.Tile(0)),
(2, {1: create_tile_set(1), 2: create_tile_set(1)}, objects.Tile(0)),
(3, {1: create_tile_set(1), 2: create_tile_set(1)}, None),
(15, {1: create_tile_set(5), 6: create_tile_set(10)}, objects.Tile(9)),
(
20,
{
1: create_tile_set(5),
6: create_tile_set(10),
16: create_tile_set(10),
},
objects.Tile(4),
),
]
@pytest.mark.parametrize("gid,tile_sets,expected", tile_by_gid)
def test_get_tile_by_gid(gid, tile_sets, expected):
assert utilities.get_tile_by_gid(gid, tile_sets) == expected

View File

@@ -1,9 +1,7 @@
import os
from pathlib import Path
import pytest
import pytiled_parser
print(os.path.dirname(os.path.abspath(__file__)))
@@ -15,13 +13,11 @@ def test_map_simple():
"""
TMX with a very simple spritesheet tile set and some properties.
"""
map = pytiled_parser.parse_tile_map(
Path("../test_data/test_map_simple.tmx")
)
map = pytiled_parser.parse_tile_map(Path("test_data/test_map_simple.tmx"))
# map
# unsure how to get paths to compare propperly
assert str(map.parent_dir) == "../test_data"
assert str(map.parent_dir) == "test_data"
assert map.version == "1.2"
assert map.tiled_version == "1.2.3"
assert map.orientation == "orthogonal"
@@ -41,7 +37,7 @@ def test_map_simple():
assert map.properties == {
"bool property - false": False,
"bool property - true": True,
"color property": (0x49, 0xFC, 0xFF, 0xFF),
"color property": "#ff49fcff",
"file property": Path("/var/log/syslog"),
"float property": 1.23456789,
"int property": 13,