transfer from monorepo
This commit is contained in:
62
worker/tests/e2e.py
Normal file
62
worker/tests/e2e.py
Normal file
@ -0,0 +1,62 @@
|
||||
"""End-to-end test for the summarizer task."""
|
||||
|
||||
from pathlib import Path
|
||||
from prometheus_test import TestRunner
|
||||
import dotenv
|
||||
import argparse
|
||||
import uuid
|
||||
|
||||
from .steps import steps
|
||||
|
||||
dotenv.load_dotenv()
|
||||
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser(description="Run summarizer test sequence")
|
||||
parser.add_argument(
|
||||
"--reset",
|
||||
action="store_true",
|
||||
help="Force reset of all databases before running tests",
|
||||
)
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def post_load_callback(db):
|
||||
"""Post-load callback to process MongoDB data after JSON import"""
|
||||
# Process todos collection
|
||||
todos = list(db.todos.find({"taskId": runner.config.task_id}))
|
||||
for todo in todos:
|
||||
if "uuid" not in todo:
|
||||
todo["uuid"] = str(uuid.uuid4())
|
||||
db.todos.replace_one({"_id": todo["_id"]}, todo)
|
||||
|
||||
# Process issues collection
|
||||
issues = list(db.issues.find({"taskId": runner.config.task_id}))
|
||||
for issue in issues:
|
||||
if "uuid" not in issue:
|
||||
issue["uuid"] = str(uuid.uuid4())
|
||||
db.issues.replace_one({"_id": issue["_id"]}, issue)
|
||||
|
||||
|
||||
# Global reference to the test runner
|
||||
runner = None
|
||||
|
||||
|
||||
def main():
|
||||
global runner
|
||||
args = parse_args()
|
||||
|
||||
# Create test runner with config from YAML
|
||||
base_dir = Path(__file__).parent
|
||||
runner = TestRunner(
|
||||
steps=steps,
|
||||
config_file=base_dir / "config.yaml",
|
||||
config_overrides={"post_load_callback": post_load_callback},
|
||||
)
|
||||
|
||||
# Run test sequence
|
||||
runner.run(force_reset=args.reset)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Reference in New Issue
Block a user