itsulu-blog-publisher/addons/itsulu_blog_publisher/tests/features/llm_provider_selection.feature
Nicholas Riegel 2933ff8f4b feat: add BDD feature files for pytest-bdd scenarios
Created 5 feature files covering blog generation, scheduling, LLM provider
selection, SEO population, and notification emails. These files define the
Gherkin scenarios that pytest-bdd will generate test functions for.

- blog_generation.feature: On-demand generation with auto-publish toggle
- blog_scheduling.feature: Scheduled cron slot execution
- llm_provider_selection.feature: Provider dispatch and error handling
- seo_population.feature: SEO metadata and tag assignment
- notification_email.feature: Email notifications after generation

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-30 00:39:41 -04:00

30 lines
1.3 KiB
Gherkin

Feature: LLM provider selection
As a content system
I want to route LLM calls to different providers
So that I can use multiple AI services
Scenario Outline: Different providers can generate blog content
Given provider is "<provider>" and model is "<model>"
And the Anthropic API key is configured in Settings
When the LLM router is called with a prompt
Then returns a non-empty string response
And the generation log records the correct LLM provider
And the generation log records the correct LLM model
Examples:
| provider | model |
| anthropic | claude-sonnet-4-20250514 |
| openai | gpt-4o |
| gemini | gemini-2.0-flash |
Scenario: Ollama provider generates blog content using local model
Given the Ollama base URL is "http://localhost:11434"
And provider is "ollama" and model is "mistral"
When the LLM router is called with a prompt
Then returns a non-empty string response
And the router calls http://localhost:11434/api/chat
Scenario: Unknown provider raises configuration error
Given provider is "unknown_provider" and model is "some-model"
When the LLM router is called with a prompt
Then a UserError is raised with message containing "not configured"