Spaces:
Sleeping
Sleeping
| $ErrorActionPreference = "Stop" | |
| $python = ".venv\Scripts\python.exe" | |
| if (-not (Test-Path $python)) { | |
| $python = "python" | |
| try { | |
| & $python --version | Out-Null | |
| } catch { | |
| $python = "$env:LOCALAPPDATA\Microsoft\WindowsApps\python3.11.exe" | |
| } | |
| } | |
| $mypyCache = "$env:TEMP\openbmb-workbench-mypy-cache" | |
| $pipAuditCache = "$env:TEMP\openbmb-workbench-pip-audit-cache" | |
| $pytestCache = "$env:TEMP\openbmb-workbench-pytest-cache" | |
| $coverageFile = "$env:TEMP\openbmb-workbench.coverage" | |
| function Invoke-Checked { | |
| param( | |
| [Parameter(Mandatory = $true)] | |
| [string[]] $Command | |
| ) | |
| & $Command[0] $Command[1..($Command.Length - 1)] | |
| if ($LASTEXITCODE -ne 0) { | |
| throw "Command failed: $($Command -join ' ')" | |
| } | |
| } | |
| Write-Host "Running tests" | |
| Invoke-Checked @($python, "-m", "unittest", "discover", "-s", "tests", "-p", "test_*.py") | |
| Write-Host "Running app smoke test" | |
| Invoke-Checked @($python, "scripts/smoke_app.py") | |
| Write-Host "Running coverage" | |
| Invoke-Checked @( | |
| $python, | |
| "-m", | |
| "coverage", | |
| "run", | |
| "--data-file", | |
| $coverageFile, | |
| "-m", | |
| "unittest", | |
| "discover", | |
| "-s", | |
| "tests", | |
| "-p", | |
| "test_*.py" | |
| ) | |
| Invoke-Checked @($python, "-m", "coverage", "report", "--data-file", $coverageFile) | |
| Write-Host "Running performance tests" | |
| Invoke-Checked @( | |
| $python, | |
| "-m", | |
| "pytest", | |
| "tests/performance", | |
| "-m", | |
| "performance", | |
| "-o", | |
| "cache_dir=$pytestCache" | |
| ) | |
| Write-Host "Running ruff" | |
| Invoke-Checked @($python, "-m", "ruff", "check", ".", "--no-cache") | |
| Write-Host "Running mypy" | |
| Invoke-Checked @($python, "-m", "mypy", ".", "--cache-dir", $mypyCache) | |
| Write-Host "Running pylint" | |
| Invoke-Checked @($python, "-m", "pylint", "--persistent=n", "app.py", "core", "datasets", "models", "ui") | |
| Write-Host "Running bandit" | |
| Invoke-Checked @($python, "-m", "bandit", "-r", "app.py", "core", "datasets", "models", "ui") | |
| Write-Host "Running pip-audit" | |
| Invoke-Checked @( | |
| $python, | |
| "-m", | |
| "pip_audit", | |
| "--cache-dir", | |
| $pipAuditCache, | |
| "-r", | |
| "requirements.txt", | |
| "-r", | |
| "requirements-dev.txt" | |
| ) | |