Download tests/test_packaginge.py from huggingmenfordays/sysadmin-env: direct link, hf CLI and curl.
- Browser
- Download file 7.29 kB
-
https://huggingface.co/spaces/huggingmenfordays/sysadmin-env/resolve/main/tests/test_packaginge.py
- Command line
-
hf download hf://spaces/huggingmenfordays/sysadmin-env/tests/test_packaginge.py
-
curl -L -o test_packaginge.py https://huggingface.co/spaces/huggingmenfordays/sysadmin-env/resolve/main/tests/test_packaginge.py
7.29 kB
| import ast | |
| import tomllib | |
| from pathlib import Path | |
| def test_openenv_manifest_declares_runtime_resources_and_tasks(): | |
| manifest = Path("openenv.yaml").read_text() | |
| assert 'name: sysadmin-env' in manifest | |
| assert 'entry_point: inference.py' in manifest | |
| assert 'server_entry_point: server.app:app' in manifest | |
| assert 'reset_endpoint: /reset' in manifest | |
| assert 'step_endpoint: /step' in manifest | |
| assert 'state_endpoint: /state' in manifest | |
| assert 'websocket_endpoint: /ws' in manifest | |
| assert 'healthcheck_endpoint: /health' in manifest | |
| assert 'tasks_endpoint: /tasks' in manifest | |
| assert 'max_runtime_minutes: 20' in manifest | |
| assert 'id: nginx_crash' in manifest | |
| assert 'id: disk_full' in manifest | |
| assert 'id: network_broken' in manifest | |
| def test_requirements_are_pinned_for_core_dependencies(): | |
| lines = [line.strip() for line in Path("requirements.txt").read_text().splitlines() if line.strip()] | |
| pyproject = tomllib.loads(Path("pyproject.toml").read_text()) | |
| runtime_dependencies = pyproject["project"]["dependencies"] | |
| assert lines == runtime_dependencies | |
| assert 'fastapi==0.115.12' in lines | |
| assert 'uvicorn==0.34.2' in lines | |
| assert 'pydantic==2.11.1' in lines | |
| assert 'websockets==15.0.1' in lines | |
| assert 'httpx==0.28.1' in lines | |
| assert 'openenv-core>=0.2.0' in lines | |
| assert 'openai==2.11.0' in lines | |
| assert all('==' in line or line == 'openenv-core>=0.2.0' for line in lines) | |
| def test_pyproject_declares_uv_friendly_project_metadata(): | |
| pyproject = Path("pyproject.toml").read_text() | |
| pyproject_data = tomllib.loads(pyproject) | |
| python_version = Path(".python-version").read_text().strip() | |
| assert 'name = "sysadmin-env"' in pyproject | |
| assert 'requires-python = ">=3.11,<3.14"' in pyproject | |
| assert '"fastapi==0.115.12"' in pyproject | |
| assert '"openenv-core>=0.2.0"' in pyproject | |
| assert '"openai==2.11.0"' in pyproject | |
| assert 'server = "server.app:main"' in pyproject | |
| assert 'sysadmin-env-agent' not in pyproject | |
| assert pyproject_data["project"]["scripts"] == {"server": "server.app:main"} | |
| assert pyproject_data["tool"]["setuptools"]["py-modules"] == ["client", "inference", "models"] | |
| assert python_version == "3.11" | |
| def test_openenv_push_required_structure_files_exist(): | |
| assert Path("__init__.py").exists() | |
| assert Path("client.py").exists() | |
| assert Path("models.py").exists() | |
| assert Path("server/__init__.py").exists() | |
| assert Path("server/app.py").exists() | |
| assert Path("server/Dockerfile").exists() | |
| def test_server_app_defines_main_function_and_standard_main_guard(): | |
| server_app = Path("server/app.py").read_text() | |
| module = ast.parse(server_app) | |
| main_function = next( | |
| (node for node in module.body if isinstance(node, ast.FunctionDef) and node.name == "main"), | |
| None, | |
| ) | |
| main_guard = next( | |
| ( | |
| node | |
| for node in module.body | |
| if isinstance(node, ast.If) | |
| and isinstance(node.test, ast.Compare) | |
| and isinstance(node.test.left, ast.Name) | |
| and node.test.left.id == "__name__" | |
| and len(node.test.ops) == 1 | |
| and isinstance(node.test.ops[0], ast.Eq) | |
| and len(node.test.comparators) == 1 | |
| and isinstance(node.test.comparators[0], ast.Constant) | |
| and node.test.comparators[0].value == "__main__" | |
| ), | |
| None, | |
| ) | |
| assert main_function is not None | |
| assert main_guard is not None | |
| assert any( | |
| isinstance(statement, ast.Expr) | |
| and isinstance(statement.value, ast.Call) | |
| and isinstance(statement.value.func, ast.Name) | |
| and statement.value.func.id == "main" | |
| for statement in main_guard.body | |
| ) | |
| def test_dockerignore_excludes_local_state_and_secrets(): | |
| dockerignore = Path(".dockerignore").read_text() | |
| assert '.env' in dockerignore | |
| assert '!.env.example' in dockerignore | |
| assert '__pycache__/' in dockerignore | |
| assert 'assets/runtime/' in dockerignore | |
| assert 'tests/' in dockerignore | |
| assert 'markdownstochat/' in dockerignore | |
| def test_env_example_defaults_to_all_tasks(): | |
| env_example = Path(".env.example").read_text() | |
| assert 'HF_TOKEN=""' in env_example | |
| assert 'MODEL_NAME="gpt-5.4"' in env_example | |
| assert 'SYSADMIN_ENV_TASK_ID=""' in env_example | |
| def test_deployment_files_reference_hugging_face_and_openenv_workflow(): | |
| dockerfile = Path("Dockerfile").read_text() | |
| server_dockerfile = Path("server/Dockerfile").read_text() | |
| readme = Path("README.md").read_text() | |
| client = Path("client.py").read_text() | |
| models = Path("models.py").read_text() | |
| server_app = Path("server/app.py").read_text() | |
| assert 'FROM python:3.11-slim' in dockerfile | |
| assert 'FROM python:3.11-slim' in server_dockerfile | |
| assert 'pyproject.toml' in dockerfile | |
| assert 'pyproject.toml' in server_dockerfile | |
| assert 'uv.lock' in dockerfile | |
| assert 'uv.lock' in server_dockerfile | |
| assert 'uv sync --locked --no-dev --no-install-project' in dockerfile | |
| assert 'uv sync --locked --no-dev --no-install-project' in server_dockerfile | |
| assert 'uv sync --locked --no-dev --no-editable' in dockerfile | |
| assert 'uv sync --locked --no-dev --no-editable' in server_dockerfile | |
| assert 'requirements.txt' not in dockerfile | |
| assert 'requirements.txt' not in server_dockerfile | |
| assert 'client.py' in dockerfile | |
| assert 'models.py' in dockerfile | |
| assert 'client.py' in server_dockerfile | |
| assert 'models.py' in server_dockerfile | |
| assert 'CMD ["uv", "run", "server"' in dockerfile | |
| assert 'CMD ["uv", "run", "server"' in server_dockerfile | |
| assert 'EXPOSE 8000' in dockerfile | |
| assert 'EXPOSE 8000' in server_dockerfile | |
| assert 'sdk: docker' in readme | |
| assert 'hugging face' in readme | |
| assert 'openenv' in readme | |
| assert 'openenv init' in readme | |
| assert 'openenv validate' in readme | |
| assert 'openenv push' in readme | |
| assert 'uv run server' in readme | |
| assert 'pyproject.toml' in readme | |
| assert 'uv.lock' in readme | |
| assert 'server/app.py' in readme | |
| assert 'server/Dockerfile' in readme | |
| assert '__init__.py' in readme | |
| assert 'client.py' in readme | |
| assert 'models.py' in readme | |
| assert 'server.app:app' in readme | |
| assert 'Dockerfile' in readme | |
| assert 'python -m pip install .' in readme | |
| assert 'docker build -t sysadmin-env .' in readme | |
| assert 'docker run --rm -p 18000:8000 sysadmin-env' in readme | |
| assert 'curl http://127.0.0.1:18000/health' in readme | |
| assert 'API_BASE_URL' in readme | |
| assert 'MODEL_NAME' in readme | |
| assert 'HF_TOKEN' in readme | |
| assert '/reset' in readme | |
| assert '/home/cyclops' not in readme | |
| assert 'mamba activate' not in readme | |
| assert 'legacy' not in readme.lower() | |
| assert 'web shim routes' in readme | |
| assert 'openai-compatible endpoint' in readme or 'openai-compatible endpoints' in readme | |
| assert 'sysadmin_env.server:app' not in readme | |
| assert 'from inference import main' in client | |
| assert 'from sysadmin_env.models import Action' in models | |
| assert 'from sysadmin_env.server import app' in server_app | |
| assert 'uvicorn.run(' in server_app | |
| assert 'if __name__ == "__main__":' in server_app | |