Test: verify file webhost file creations work to some degree (#953)
WebHost: fix some file creation paths
This commit is contained in:
parent
e548abd332
commit
c390801c4c
|
@ -1,6 +1,6 @@
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
from Utils import __version__
|
from Utils import __version__, local_path
|
||||||
from jinja2 import Template
|
from jinja2 import Template
|
||||||
import yaml
|
import yaml
|
||||||
import json
|
import json
|
||||||
|
@ -9,14 +9,13 @@ import typing
|
||||||
from worlds.AutoWorld import AutoWorldRegister
|
from worlds.AutoWorld import AutoWorldRegister
|
||||||
import Options
|
import Options
|
||||||
|
|
||||||
target_folder = os.path.join("WebHostLib", "static", "generated")
|
|
||||||
|
|
||||||
handled_in_js = {"start_inventory", "local_items", "non_local_items", "start_hints", "start_location_hints",
|
handled_in_js = {"start_inventory", "local_items", "non_local_items", "start_hints", "start_location_hints",
|
||||||
"exclude_locations"}
|
"exclude_locations"}
|
||||||
|
|
||||||
|
|
||||||
def create():
|
def create():
|
||||||
os.makedirs(os.path.join(target_folder, 'configs'), exist_ok=True)
|
target_folder = local_path("WebHostLib", "static", "generated")
|
||||||
|
os.makedirs(os.path.join(target_folder, "configs"), exist_ok=True)
|
||||||
|
|
||||||
def dictify_range(option: typing.Union[Options.Range, Options.SpecialRange]):
|
def dictify_range(option: typing.Union[Options.Range, Options.SpecialRange]):
|
||||||
data = {}
|
data = {}
|
||||||
|
@ -66,12 +65,16 @@ def create():
|
||||||
for game_name, world in AutoWorldRegister.world_types.items():
|
for game_name, world in AutoWorldRegister.world_types.items():
|
||||||
|
|
||||||
all_options = {**Options.per_game_common_options, **world.option_definitions}
|
all_options = {**Options.per_game_common_options, **world.option_definitions}
|
||||||
res = Template(open(os.path.join("WebHostLib", "templates", "options.yaml")).read()).render(
|
with open(local_path("WebHostLib", "templates", "options.yaml")) as f:
|
||||||
|
file_data = f.read()
|
||||||
|
res = Template(file_data).render(
|
||||||
options=all_options,
|
options=all_options,
|
||||||
__version__=__version__, game=game_name, yaml_dump=yaml.dump,
|
__version__=__version__, game=game_name, yaml_dump=yaml.dump,
|
||||||
dictify_range=dictify_range, default_converter=default_converter,
|
dictify_range=dictify_range, default_converter=default_converter,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
del file_data
|
||||||
|
|
||||||
with open(os.path.join(target_folder, 'configs', game_name + ".yaml"), "w") as f:
|
with open(os.path.join(target_folder, 'configs', game_name + ".yaml"), "w") as f:
|
||||||
f.write(res)
|
f.write(res)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
"""Tests for successful generation of WebHost cached files. Can catch some other deeper errors."""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
import WebHost
|
||||||
|
|
||||||
|
|
||||||
|
class TestFileGeneration(unittest.TestCase):
|
||||||
|
def setUp(self) -> None:
|
||||||
|
self.correct_path = os.path.join(os.path.dirname(WebHost.__file__), "WebHostLib")
|
||||||
|
# should not create the folder *here*
|
||||||
|
self.incorrect_path = os.path.join(os.path.split(os.path.dirname(__file__))[0], "WebHostLib")
|
||||||
|
|
||||||
|
def testOptions(self):
|
||||||
|
WebHost.create_options_files()
|
||||||
|
self.assertTrue(os.path.exists(os.path.join(self.correct_path, "static", "generated", "configs")))
|
||||||
|
self.assertFalse(os.path.exists(os.path.join(self.incorrect_path, "static", "generated", "configs")))
|
||||||
|
|
||||||
|
def testTutorial(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")))
|
Loading…
Reference in New Issue