Spaces:
Running
Running
| from __future__ import annotations | |
| import unittest | |
| from pathlib import Path | |
| class EnvExampleContractTests(unittest.TestCase): | |
| def setUpClass(cls) -> None: | |
| cls.env_example = (Path(__file__).resolve().parent.parent / ".env.example").read_text( | |
| encoding="utf-8", | |
| ) | |
| def test_env_example_includes_required_runtime_keys(self) -> None: | |
| self.assertIn("ADMIN_TOKEN=replace-with-a-long-random-secret", self.env_example) | |
| self.assertIn("HOST=127.0.0.1", self.env_example) | |
| self.assertIn("PORT=8000", self.env_example) | |
| self.assertIn("AIFORECAST_START_WITH_WINDOWS=true", self.env_example) | |
| self.assertIn("DEFAULT_FORECAST_CONTEXT_LENGTH=384", self.env_example) | |
| self.assertIn("ALLOWED_FORECAST_CONTEXT_LENGTHS=128,256,384,512", self.env_example) | |
| self.assertIn("FORECAST_WORKER_IDLE_TTL_MS=120000", self.env_example) | |
| def test_env_example_includes_model_and_provider_placeholders(self) -> None: | |
| self.assertIn("PRELOAD_TIMESFM=false", self.env_example) | |
| self.assertIn("PRELOAD_KRONOS=false", self.env_example) | |
| self.assertIn("PRELOAD_CHRONOS=false", self.env_example) | |
| self.assertIn("TORCH_NUM_THREADS=2", self.env_example) | |
| self.assertIn("TORCH_NUM_INTEROP_THREADS=1", self.env_example) | |
| self.assertIn("OMP_NUM_THREADS=2", self.env_example) | |
| self.assertIn("MKL_NUM_THREADS=2", self.env_example) | |
| self.assertIn("TIMESFM_MODEL_HF_ID=google/timesfm-2.5-200m-pytorch", self.env_example) | |
| self.assertIn("KRONOS_MODEL_HF_ID=NeoQuasar/Kronos-base", self.env_example) | |
| self.assertIn("CHRONOS_MODEL_HF_ID=amazon/chronos-2", self.env_example) | |
| self.assertIn("TWELVEDATA_API_KEY=", self.env_example) | |
| self.assertIn("FINNHUB_API_KEY=", self.env_example) | |
| self.assertIn("BINANCE_API_KEY=", self.env_example) | |
| self.assertIn("BYBIT_API_KEY=", self.env_example) | |
| if __name__ == "__main__": | |
| unittest.main() | |