from pathlib import Path
import unittest


ROOT = Path(__file__).resolve().parents[1]


class WebSocketAuthTests(unittest.TestCase):
    def test_websocket_enforces_fresh_single_use_auth_and_test_ownership(self) -> None:
        server = (ROOT / "ws/main.py").read_text(encoding="utf-8")
        self.assertIn("hmac.compare_digest", server)
        self.assertIn("30_000", server)
        self.assertIn("nx=True", server)
        self.assertIn("ex=60", server)
        self.assertIn("authenticate(data.get('auth'), redis)", server)
        self.assertIn("owns_test", server)
        self.assertIn("owner_id", server)
        self.assertNotIn("print(data)", server)


if __name__ == "__main__":
    unittest.main()
