mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 12:11:33 -06:00
WebHost: server render remaining markdown using mistune (#5276)
--------- Co-authored-by: Aaron Wagener <mmmcheese158@gmail.com> Co-authored-by: qwint <qwint.42@gmail.com> Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
This commit is contained in:
@@ -2,6 +2,8 @@ import unittest
|
||||
import Utils
|
||||
import os
|
||||
|
||||
from werkzeug.utils import secure_filename
|
||||
|
||||
import WebHost
|
||||
from worlds.AutoWorld import AutoWorldRegister
|
||||
|
||||
@@ -9,36 +11,30 @@ from worlds.AutoWorld import AutoWorldRegister
|
||||
class TestDocs(unittest.TestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls) -> None:
|
||||
cls.tutorials_data = WebHost.create_ordered_tutorials_file()
|
||||
WebHost.copy_tutorials_files_to_static()
|
||||
|
||||
def test_has_tutorial(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}")
|
||||
tutorials = world_type.web.tutorials
|
||||
self.assertGreater(len(tutorials), 0, msg=f"{game_name} has no setup tutorial.")
|
||||
|
||||
safe_name = secure_filename(game_name)
|
||||
target_path = Utils.local_path("WebHostLib", "static", "generated", "docs", safe_name)
|
||||
for tutorial in tutorials:
|
||||
self.assertTrue(
|
||||
os.path.isfile(Utils.local_path(target_path, secure_filename(tutorial.file_name))),
|
||||
f'{game_name} missing tutorial file {tutorial.file_name}.'
|
||||
)
|
||||
|
||||
def test_has_game_info(self):
|
||||
for game_name, world_type in AutoWorldRegister.world_types.items():
|
||||
if not world_type.hidden:
|
||||
safe_name = Utils.get_file_safe_name(game_name)
|
||||
safe_name = secure_filename(game_name)
|
||||
target_path = Utils.local_path("WebHostLib", "static", "generated", "docs", safe_name)
|
||||
for game_info_lang in world_type.web.game_info_languages:
|
||||
with self.subTest(game_name):
|
||||
self.assertTrue(
|
||||
safe_name == game_name or
|
||||
not os.path.isfile(Utils.local_path(target_path, f'{game_info_lang}_{game_name}.md')),
|
||||
f'Info docs have be named <lang>_{safe_name}.md for {game_name}.'
|
||||
)
|
||||
self.assertTrue(
|
||||
os.path.isfile(Utils.local_path(target_path, f'{game_info_lang}_{safe_name}.md')),
|
||||
f'{game_name} missing game info file for "{game_info_lang}" language.'
|
||||
|
@@ -29,8 +29,3 @@ class TestFileGeneration(unittest.TestCase):
|
||||
with open(file, encoding="utf-8-sig") as f:
|
||||
for value in roll_options({file.name: f.read()})[0].values():
|
||||
self.assertTrue(value is True, f"Default Options for template {file.name} cannot be run.")
|
||||
|
||||
def test_tutorial(self):
|
||||
WebHost.create_ordered_tutorials_file()
|
||||
self.assertTrue(os.path.exists(os.path.join(self.correct_path, "static", "generated", "tutorials.json")))
|
||||
self.assertFalse(os.path.exists(os.path.join(self.incorrect_path, "static", "generated", "tutorials.json")))
|
||||
|
Reference in New Issue
Block a user