Files
AutoMetabuilder/backend/tests
copilot-swe-agent[bot] dc59911bdd Implement trigger-based workflow execution
Add support for workflow triggers to determine start node:
- Modified execution_order.py to accept optional start_node_id from triggers
- Updated N8NExecutor to use triggers for determining workflow entry point
- Added helper function to find start node from enabled manual triggers
- Created comprehensive tests for trigger-based execution
- Maintains backward compatibility when no triggers are specified

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-11 00:12:51 +00:00
..

AutoMetabuilder Test Suite

Running Tests

Run all tests:

pytest backend/tests/

Run specific test files:

pytest backend/tests/test_main.py
pytest backend/tests/test_workflow_plugins.py

Run with verbose output:

pytest backend/tests/ -v

Test Structure

Core Tests (Always Passing)

  • test_main.py - Tests for main utility functions
  • test_metadata.py - Tests for metadata loading
  • test_n8n_schema.py - Tests for N8N workflow schema validation
  • test_roadmap.py - Tests for roadmap utilities
  • test_workflow_plugins.py - Tests for workflow plugin system (logic, math, string, list, dict plugins)
  • test_unit_testing_plugins.py - Tests for testing framework plugins

Integration Tests (Require Dependencies)

  • test_ajax_contracts.py - Tests for API endpoints (requires Flask and workflow execution)
  • test_web_plugins.py - Tests for web-specific plugins (requires Flask)
  • test_workflow_graph.py - Tests for workflow graph building

Known Issues

Missing Optional Dependencies

Some tests require optional dependencies that may not be installed:

  • flask - Required for web server functionality
  • github (PyGithub) - Required for GitHub integration
  • openai - Required for AI request plugins
  • python-dotenv - Required for environment loading
  • tenacity - Required for retry logic

To install all dependencies:

pip install flask PyGithub openai python-dotenv tenacity

Workflow-Based Architecture

The system has been refactored to use a workflow-based architecture. Some plugins that were previously static imports now need to be invoked through the workflow system:

  1. Server Setup: The Flask server is no longer a static module but is built dynamically through workflow execution (see packages/web_server_bootstrap/workflow.json)

  2. Plugin Imports: Some plugins have import path issues that need fixing:

    • web.build_context references old route structure
    • Various plugins may reference autometabuilder.workflow.plugins.*_helpers modules
  3. Test Adaptation: Tests should use the workflow execution model where appropriate (principle: "if in doubt, use the workflow")

Test Philosophy

Primary Principle: When in doubt, use the workflow.

The workflow system is the primary interface for the application. Tests should:

  1. Execute workflows to build/configure components
  2. Use workflow plugins for data access
  3. Avoid direct imports of implementation details where possible

Current Status

  • 36 core tests passing
  • ⚠️ 11 tests require dependencies or refactoring
  • 📝 Test suite documented and configured with conftest.py