import pathlib
import unittest


class WebsocketModuleCompatibilityTests(unittest.TestCase):
    def test_websocket_module_uses_supported_redis_asyncio_client(self):
        module_path = pathlib.Path(__file__).parents[1] / "ws" / "main.py"
        source = module_path.read_text(encoding="utf-8")

        self.assertIn("import redis.asyncio as aioredis", source)
        self.assertNotIn("import websockets, json, aioredis", source)

    def test_runtime_dependencies_pin_redis_py_instead_of_aioredis(self):
        requirements_path = pathlib.Path(__file__).parents[1] / "requirements.txt"
        requirements = requirements_path.read_text(encoding="utf-8").splitlines()

        self.assertIn("redis==5.0.1", requirements)
        self.assertFalse(any(line.startswith("aioredis") for line in requirements))


if __name__ == "__main__":
    unittest.main()
