#!/bin/bash # Use this file to install test dependencies and run the tests. # It will be copied to /verifier/test.sh and run from the working directory. # Don't use set -e so we can capture pytest exit code apt-get update apt-get install -y curl curl -LsSf https://astral.sh/uv/0.9.7/install.sh | sh source $HOME/.local/bin/env # Recalculate formulas using gnumeric (ssconvert) - export to CSV only # NOTE: Do NOT replace original xlsx with ssconvert output - it destroys formatting if [ -f "/root/test_demand.xlsx" ]; then echo "Evaluating Excel formulas with gnumeric..." cd /root # Export CSV with calculated values for test verification ssconvert -S "/root/test_demand.xlsx" /root/sheet.csv 2>/dev/null || true echo "Formula evaluation complete." fi # Ensure logs directory exists mkdir -p /logs/verifier # CTRF produces a standard test report in JSON format which is useful for logging. cd /root uvx \ --with pytest==8.4.1 \ --with pytest-json-ctrf==0.3.5 \ --with openpyxl==3.1.5 \ pytest --ctrf /logs/verifier/ctrf.json /verifier/test_outputs.py -rA -v PYTEST_EXIT_CODE=$? if [ $PYTEST_EXIT_CODE -eq 0 ]; then echo 1 > /logs/verifier/reward.txt else echo 0 > /logs/verifier/reward.txt fi # Copy artifacts for debugging if [ -f "/root/test_demand.xlsx" ]; then cp "/root/test_demand.xlsx" /logs/verifier/test_demand_modified.xlsx fi # Copy CSV files cp /root/sheet.csv.* /logs/verifier/ 2>/dev/null || true exit 0