pytest setup a github workflow to run tests + more ignores

This commit is contained in:
2025-11-04 19:23:10 +01:00
parent 5b0afea651
commit 6cba6bb329
6 changed files with 59 additions and 2 deletions

30
.github/workflows/pytest.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: Run Tests
on:
push:
paths:
- 'experiments/**'
- 'backend/**'
- 'requirements.txt'
- '.github/workflows/pytest.yml'
pull_request:
paths:
- 'experiments/**'
- 'backend/**'
- 'requirements.txt'
- '.github/workflows/pytest.yml'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.13'
cache: 'pip'
- name: Install dependencies
run: |
python -m venv .venv
.venv/bin/pip install --upgrade pip
.venv/bin/pip install -r requirements.txt
- name: Run tests
run: .venv/bin/pytest -v

3
.gitignore vendored
View File

@@ -1,2 +1,5 @@
**/.env **/.env
**/.venv **/.venv
**/__pycache__
**/.ipynb_checkpoints/
**/.virtual_documents/

View File

@@ -4,6 +4,10 @@ BUILDDIR := build
TEX := main.tex TEX := main.tex
JOBNAME := main JOBNAME := main
PDF := paper/$(BUILDDIR)/$(JOBNAME).pdf PDF := paper/$(BUILDDIR)/$(JOBNAME).pdf
VENV := .venv
PYTHON := $(VENV)/bin/python
PIP := $(VENV)/bin/pip
PYTEST := $(VENV)/bin/pytest
.DEFAULT_GOAL := help .DEFAULT_GOAL := help
@@ -35,5 +39,14 @@ clean:
$(LATEXMK) -C -jobname=$(JOBNAME) -outdir=../$(BUILDDIR) || true $(LATEXMK) -C -jobname=$(JOBNAME) -outdir=../$(BUILDDIR) || true
rm -rf paper/$(BUILDDIR)/* rm -rf paper/$(BUILDDIR)/*
$(VENV):
python3 -m venv $(VENV)
$(PIP) install --upgrade pip
.PHONY: all pdf clean watch run.webapp install: $(VENV)
$(PIP) install -r requirements.txt
test: $(VENV)
$(PYTEST) -v
.PHONY: all pdf clean watch run.webapp install test

View File

@@ -1,6 +1,7 @@
import pytest import pytest
import asyncio import asyncio
from experiments.agents.agent import get_agent, AgentTypes from experiments.agents.agent import get_agent, AgentTypes
import os
def test_agent_init(): def test_agent_init():
@@ -16,8 +17,10 @@ def test_invalid_agent():
@pytest.mark.asyncio @pytest.mark.asyncio
@pytest.mark.skipif("OPENAI_API_KEY" not in os.environ, reason="OPENAI_API_KEY not set")
async def test_agent_execution(): async def test_agent_execution():
agent = get_agent(AgentTypes.GENERIC_BROWSER_USE_AGENT, goal="get page title", url="https://example.com", timeout=60) agent = get_agent(AgentTypes.GENERIC_BROWSER_USE_AGENT, goal="get page title", url="https://example.com", timeout=60)
result = await agent.act() result = await agent.act()
assert result assert result
assert agent.final_result() assert agent.final_result()

7
pytest.ini Normal file
View File

@@ -0,0 +1,7 @@
[pytest]
testpaths = experiments
python_files = test*.py
python_classes = Test*
python_functions = test_*
asyncio_mode = auto
asyncio_default_fixture_loop_scope = function

View File

@@ -8,3 +8,4 @@ graphviz
browser-use browser-use
pytest pytest
pytest-asyncio pytest-asyncio
uv