Files
factorio/tests/test_mod_list.py
T
feedc0de df6af9d0d1
Validate, publish and promote Factorio chart / chart (push) Successful in 18s
Disable Factorio recycler on vanilla server
2026-10-27 08:04:47 +01:00

41 lines
1.4 KiB
Python

import json
import subprocess
import tempfile
import unittest
from pathlib import Path
SCRIPT = Path(__file__).resolve().parents[1] / "scripts/disable-recycler.sh"
class ModListTests(unittest.TestCase):
def test_disables_recycler_without_changing_other_mods(self):
with tempfile.TemporaryDirectory() as directory:
path = Path(directory) / "mod-list.json"
path.write_text(json.dumps({"mods": [
{"name": "base", "enabled": True},
{"name": "recycler", "enabled": True},
{"name": "my-mod", "enabled": True},
]}))
subprocess.run(["bash", str(SCRIPT), str(path)], check=True)
mods = {mod["name"]: mod["enabled"] for mod in json.loads(path.read_text())["mods"]}
self.assertFalse(mods["recycler"])
self.assertTrue(mods["base"])
self.assertTrue(mods["my-mod"])
def test_adds_recycler_disabled_to_new_mod_list(self):
with tempfile.TemporaryDirectory() as directory:
path = Path(directory) / "mods" / "mod-list.json"
subprocess.run(["bash", str(SCRIPT), str(path)], check=True)
mods = {mod["name"]: mod["enabled"] for mod in json.loads(path.read_text())["mods"]}
self.assertTrue(mods["base"])
self.assertFalse(mods["recycler"])
if __name__ == "__main__":
unittest.main()