Files
ai-marketplace-monitor/tests/test_ai.py
2025-03-14 14:39:23 -05:00

66 lines
2.3 KiB
Python

import pytest
from ai_marketplace_monitor.ai import OllamaBackend, OllamaConfig
from ai_marketplace_monitor.facebook import FacebookItemConfig, FacebookMarketplaceConfig
from ai_marketplace_monitor.listing import Listing
@pytest.mark.skipif(True, reason="Condition met, skipping this test")
def test_ai(
ollama_config: OllamaConfig,
item_config: FacebookItemConfig,
marketplace_config: FacebookMarketplaceConfig,
listing: Listing,
) -> None:
ai = OllamaBackend(ollama_config)
# ai.config = ollama_config
res = ai.evaluate(listing, item_config, marketplace_config)
assert res.score >= 1 and res.score <= 5
def test_prompt(
ollama: OllamaBackend,
listing: Listing,
item_config: FacebookItemConfig,
marketplace_config: FacebookMarketplaceConfig,
) -> None:
prompt = ollama.get_prompt(listing, item_config, marketplace_config)
assert item_config.name in prompt
assert (item_config.description or "something weird") in prompt
assert str(item_config.min_price) in prompt
assert str(item_config.max_price) in prompt
assert listing.title in prompt
assert listing.condition in prompt
assert listing.price in prompt
assert listing.post_url in prompt
def test_extra_prompt(
ollama: OllamaBackend,
listing: Listing,
item_config: FacebookItemConfig,
marketplace_config: FacebookMarketplaceConfig,
) -> None:
marketplace_config.extra_prompt = "This is an extra prompt"
prompt = ollama.get_prompt(listing, item_config, marketplace_config)
assert "extra prompt" in prompt
#
item_config.extra_prompt = "This overrides marketplace prompt"
prompt = ollama.get_prompt(listing, item_config, marketplace_config)
assert "extra prompt" not in prompt
assert "overrides marketplace prompt" in prompt
#
assert "Great deal: Fully matches" in prompt
item_config.rating_prompt = "something else"
prompt = ollama.get_prompt(listing, item_config, marketplace_config)
assert "Great deal: Fully matches" not in prompt
assert "something else" in prompt
#
assert "Evaluate how well this listing" in prompt
marketplace_config.prompt = "myprompt"
prompt = ollama.get_prompt(listing, item_config, marketplace_config)
assert "Evaluate how well this listing" not in prompt
assert "myprompt" in prompt