mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-05-18 07:11:44 -07:00
af11fa5150
* Test: check that default templates can be parsed into Option objects
35 lines
1.6 KiB
Python
35 lines
1.6 KiB
Python
"""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()
|
|
target = os.path.join(self.correct_path, "static", "generated", "configs")
|
|
self.assertTrue(os.path.exists(target))
|
|
self.assertFalse(os.path.exists(os.path.join(self.incorrect_path, "static", "generated", "configs")))
|
|
|
|
# folder seems fine, so now we try to generate Options based on the default file
|
|
from WebHostLib.check import roll_options
|
|
file: os.DirEntry
|
|
for file in os.scandir(target):
|
|
if file.is_file() and file.name.endswith(".yaml"):
|
|
with self.subTest(file=file.name):
|
|
with open(file) 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 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")))
|