Compare commits

..

2 commits

Author SHA1 Message Date
fa819503e1 Merge pull request 'Minor fixes to testing whether a demo exists.' (#14) from iss13 into trunk
Reviewed-on: #14
2026-01-19 18:09:32 +00:00
116c21456f Minor fixes to testing whether a demo exists.
Add a unit test to validate functionality of this tricky corner of code.
2026-01-19 13:05:29 -05:00
2 changed files with 32 additions and 2 deletions

View file

@ -132,8 +132,10 @@ class WadMap(Wad):
]
if len(candidates) == 0:
raise Exception(
"no suitable demo candidates for WAD {} MAP {} name {}.".format(
self.wad, self.map, self.name_string
"no suitable demo candidates for WAD {} MAP {}{}.".format(
self.wad,
self.map,
f" name {self._name}" if self._name else "",
)
)
if len(candidates) == 1:

28
tests/doom_base_test.py Normal file
View file

@ -0,0 +1,28 @@
import doomcc.doom_base
import os
import pathlib
import pytest
import tempfile
class Workbench:
pass
def test_demo_in_path():
w = Workbench()
w.demo_in_path = lambda: doomcc.doom_base.WadMap.demo_in_path(w)
w._file_base = lambda path: doomcc.doom_base.WadMap._file_base(w, path)
w.wad = pathlib.Path("scythe")
w.map = "01"
w.name_string = "_index"
w._name = "index"
with tempfile.TemporaryDirectory() as td:
w.demos = pathlib.Path(td)
with pytest.raises(Exception):
w.demo_in_path()
dp = pathlib.Path(td).joinpath("scythe")
os.mkdir(dp)
dp.joinpath("scythe_map01_index.lmp").touch()
assert w.demo_in_path() == dp.joinpath("scythe_map01_index.lmp")
dp.joinpath("scythe_map01_index-00028.lmp").touch()
assert w.demo_in_path() == dp.joinpath("scythe_map01_index-00028.lmp")