This commit is contained in:
Rui Carmo
2026-01-21 23:53:57 +00:00
commit a0e31d43fd
52 changed files with 6312 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
"""Tests for constants module."""
class TestConstants:
"""Tests for constants module."""
def test_import(self):
"""Test module can be imported."""
from textual_webterm import constants
assert constants is not None
def test_debug_exists(self, monkeypatch):
"""Test DEBUG constant exists and respects env var."""
import importlib
from textual_webterm import constants
assert hasattr(constants, "DEBUG")
assert isinstance(constants.DEBUG, bool)
monkeypatch.setenv("DEBUG", "1")
reloaded = importlib.reload(constants)
assert reloaded.DEBUG is True
monkeypatch.setenv("DEBUG", "0")
reloaded = importlib.reload(constants)
assert reloaded.DEBUG is False
class TestExitPoller:
"""Tests for exit_poller module."""
def test_import(self):
"""Test module can be imported."""
from textual_webterm.exit_poller import ExitPoller
assert ExitPoller is not None
async def test_exits_when_idle(self, monkeypatch):
"""ExitPoller should call force_exit after idle_wait seconds with no sessions."""
import asyncio
from textual_webterm import exit_poller
from textual_webterm.exit_poller import ExitPoller
# Speed up the poll loop for the unit test.
monkeypatch.setattr(exit_poller, "EXIT_POLL_RATE", 0.01)
class FakeServer:
def __init__(self):
class SM:
def __init__(self):
self.sessions = {}
self.session_manager = SM()
self.exited = False
def force_exit(self):
self.exited = True
server = FakeServer()
poller = ExitPoller(server, idle_wait=0.02)
poller.start()
await asyncio.sleep(0.1)
poller.stop()
assert server.exited is True