40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
import unittest
|
|
import Utils
|
|
import os
|
|
|
|
import WebHost
|
|
from worlds.AutoWorld import AutoWorldRegister
|
|
|
|
|
|
class TestDocs(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls) -> None:
|
|
cls.tutorials_data = WebHost.create_ordered_tutorials_file()
|
|
|
|
def testHasTutorial(self):
|
|
games_with_tutorial = set(entry["gameTitle"] for entry in self.tutorials_data)
|
|
for game_name, world_type in AutoWorldRegister.world_types.items():
|
|
if not world_type.hidden:
|
|
with self.subTest(game_name):
|
|
try:
|
|
self.assertIn(game_name, games_with_tutorial)
|
|
except AssertionError:
|
|
# look for partial name in the tutorial name
|
|
for game in games_with_tutorial:
|
|
if game_name in game:
|
|
break
|
|
else:
|
|
self.fail(f"{game_name} has no setup tutorial. "
|
|
f"Games with Tutorial: {games_with_tutorial}")
|
|
|
|
def testHasGameInfo(self):
|
|
for game_name, world_type in AutoWorldRegister.world_types.items():
|
|
if not world_type.hidden:
|
|
target_path = Utils.local_path("WebHostLib", "static", "generated", "docs", game_name)
|
|
for game_info_lang in world_type.web.game_info_languages:
|
|
with self.subTest(game_name):
|
|
self.assertTrue(
|
|
os.path.isfile(Utils.local_path(target_path, f'{game_info_lang}_{game_name}.md')),
|
|
f'{game_name} missing game info file for "{game_info_lang}" language.'
|
|
)
|