1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import pathlib
- import shutil
- import subprocess
- import unittest.mock
- import tooncher
- def test_start_engine():
- process = tooncher.start_engine(
- engine_path=pathlib.Path(shutil.which("printenv")),
- gameserver="gameserver",
- playcookie="cookie",
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE,
- )
- assert isinstance(process, subprocess.Popen)
- stdout, stderr = process.communicate()
- assert not stderr
- env = stdout.strip().split(b"\n")
- assert b"TTR_GAMESERVER=gameserver" in env
- assert b"TTR_PLAYCOOKIE=cookie" in env
- def test_start_engine_mac():
- app_support_path = "/Users/me/Library/Application Support"
- with unittest.mock.patch("subprocess.Popen") as popen_mock:
- with unittest.mock.patch("sys.platform", "darwin"):
- tooncher.start_engine(
- engine_path=pathlib.PosixPath(
- app_support_path + "/Toontown Rewritten/Toontown Rewritten"
- ),
- gameserver="gameserver",
- playcookie="cookie",
- check=True,
- )
- popen_mock.assert_called_once_with(
- args=[
- "/Users/me/Library/Application Support/Toontown Rewritten/Toontown Rewritten"
- ],
- check=True,
- cwd=pathlib.PosixPath(
- "/Users/me/Library/Application Support/Toontown Rewritten"
- ),
- env={
- "TTR_GAMESERVER": "gameserver",
- "TTR_PLAYCOOKIE": "cookie",
- "DYLD_LIBRARY_PATH": app_support_path
- + "/Toontown Rewritten/Libraries.bundle",
- "DYLD_FRAMEWORK_PATH": app_support_path + "/Toontown Rewritten/Frameworks",
- },
- )
- def test_start_engine_xorg():
- with unittest.mock.patch("subprocess.Popen") as popen_mock:
- with unittest.mock.patch("os.environ", {"XAUTHORITY": "/home/me/.Xauthority"}):
- with unittest.mock.patch("sys.platform", "linux"):
- tooncher.start_engine(
- engine_path=pathlib.PosixPath("/opt/toontown-rewritter/TTREngine"),
- gameserver="gameserver.tld",
- playcookie="cookie123",
- check=False,
- )
- popen_mock.assert_called_once_with(
- args=["/opt/toontown-rewritter/TTREngine"],
- check=False,
- cwd=pathlib.PosixPath("/opt/toontown-rewritter"),
- env={
- "TTR_GAMESERVER": "gameserver.tld",
- "TTR_PLAYCOOKIE": "cookie123",
- "XAUTHORITY": "/home/me/.Xauthority",
- },
- )
|