From aa6f21f2e79b8d8c0c0ef353f66f5a4ec15989f6 Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Thu, 5 Mar 2026 16:13:04 -0800 Subject: Automatic test writing --- write_tests.sh | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 write_tests.sh diff --git a/write_tests.sh b/write_tests.sh new file mode 100755 index 0000000..18bc777 --- /dev/null +++ b/write_tests.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +[ ! -f .env ] || export $(grep -v '^#' .env | xargs) +[ ! -f .teagent ] || export $(grep -v '^#' .teagent | xargs) +if [ -z "$REPO" ]; then + exit 1 +fi + +SERVER="${OLLAMA_HOST:-http://localhost:11434}" +MODEL="${OLLAMA_MODEL:-llama3.2}" + +SOURCE_FILES=`find . -type f -iname \*.py` + +for source_file in $SOURCE_FILES; do + if [ ! -s "${source_file}" ]; then + continue + fi + SOURCE=$(<"${source_file}") + PROMPT=$(cat << EOF +Please write tests for the following source, leaving ample documentation. +If there don't seem to be any natural tests, simply write: DONE +EOF +) + PROMPT="${PROMPT} +${SOURCE}" + RESPONSE=$(curl -s "$SERVER/api/generate" \ + -H "Content-Type: application/json" \ + -d "$(jq -n --arg model "$MODEL" --arg prompt "$PROMPT" \ + '{model:$model, prompt:$prompt, stream:false}')" \ + | jq -r '.response') + if [[ "$RESPONSE" = 'DONE'* ]]; then + echo > /dev/null + else + tea issues create --title "Cleanup ${source_file} (TeAgent)" --body "${RESPONSE}" --login teagent --repo "${REPO}" + fi +done -- cgit v1.2.1