refactor(products): remove obsolete interaction fields across stack
This commit is contained in:
parent
1d8a8eafb8
commit
c5ea38880c
16 changed files with 32 additions and 278 deletions
|
|
@ -7,14 +7,12 @@ from innercontext.models import Product
|
|||
from innercontext.models.enums import (
|
||||
DayTime,
|
||||
IngredientFunction,
|
||||
InteractionScope,
|
||||
ProductCategory,
|
||||
)
|
||||
from innercontext.models.product import (
|
||||
ActiveIngredient,
|
||||
ProductContext,
|
||||
ProductEffectProfile,
|
||||
ProductInteraction,
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -156,29 +154,6 @@ def test_effect_profile_nonzero_included():
|
|||
assert "retinoid_strength" not in ctx["effect_profile"]
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Incompatible_with
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
def test_incompatible_with_pydantic_objects():
|
||||
inc = ProductInteraction(
|
||||
target="AHA", scope=InteractionScope.SAME_DAY, reason="increases irritation"
|
||||
)
|
||||
p = _make(incompatible_with=[inc])
|
||||
ctx = p.to_llm_context()
|
||||
assert "incompatible_with" in ctx
|
||||
assert ctx["incompatible_with"][0] == "avoid AHA (same_day): increases irritation"
|
||||
|
||||
|
||||
def test_incompatible_with_raw_dicts():
|
||||
raw = {"target": "Vitamin C", "scope": "same_step", "reason": None}
|
||||
p = _make(incompatible_with=[raw])
|
||||
ctx = p.to_llm_context()
|
||||
assert "incompatible_with" in ctx
|
||||
assert ctx["incompatible_with"][0] == "avoid Vitamin C (same_step)"
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Context rules
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -136,7 +136,6 @@ def test_shopping_tool_handlers_return_payloads(session: Session):
|
|||
usage_notes="Use AM and PM on clean skin.",
|
||||
inci=["Water", "Niacinamide"],
|
||||
actives=[{"name": "Niacinamide", "percent": 5, "functions": ["niacinamide"]}],
|
||||
incompatible_with=[{"target": "Vitamin C", "scope": "same_step"}],
|
||||
context_rules={"safe_after_shaving": True},
|
||||
product_effect_profile={},
|
||||
)
|
||||
|
|
@ -153,5 +152,4 @@ def test_shopping_tool_handlers_return_payloads(session: Session):
|
|||
assert notes_data["products"][0]["usage_notes"] == "Use AM and PM on clean skin."
|
||||
|
||||
safety_data = _build_safety_rules_tool_handler([product])(payload)
|
||||
assert "incompatible_with" in safety_data["products"][0]
|
||||
assert "context_rules" in safety_data["products"][0]
|
||||
|
|
|
|||
|
|
@ -184,7 +184,6 @@ def test_build_products_context(session: Session):
|
|||
recommended_time="am",
|
||||
pao_months=6,
|
||||
product_effect_profile={"hydration_immediate": 2, "exfoliation_strength": 0},
|
||||
incompatible_with=[{"target": "retinol", "scope": "same_routine"}],
|
||||
context_rules={"safe_after_shaving": False},
|
||||
min_interval_hours=12,
|
||||
max_frequency_per_week=7,
|
||||
|
|
@ -233,7 +232,6 @@ def test_build_products_context(session: Session):
|
|||
assert "nearest_open_pao_deadline=" in ctx
|
||||
assert "pao_months=6" in ctx
|
||||
assert "effects={'hydration_immediate': 2}" in ctx
|
||||
assert "incompatible_with=['avoid retinol (same_routine)']" in ctx
|
||||
assert "context_rules={'safe_after_shaving': False}" in ctx
|
||||
assert "min_interval_hours=12" in ctx
|
||||
assert "max_frequency_per_week=7" in ctx
|
||||
|
|
@ -390,7 +388,6 @@ def test_additional_tool_handlers_return_product_payloads(session: Session):
|
|||
leave_on=True,
|
||||
usage_notes="Apply morning and evening.",
|
||||
actives=[{"name": "Niacinamide", "percent": 5, "functions": ["niacinamide"]}],
|
||||
incompatible_with=[{"target": "Retinol", "scope": "same_step"}],
|
||||
context_rules={"safe_after_shaving": True},
|
||||
product_effect_profile={},
|
||||
)
|
||||
|
|
@ -404,5 +401,4 @@ def test_additional_tool_handlers_return_product_payloads(session: Session):
|
|||
assert notes_out["products"][0]["usage_notes"] == "Apply morning and evening."
|
||||
|
||||
safety_out = _build_safety_rules_tool_handler([p])(ids_payload)
|
||||
assert "incompatible_with" in safety_out["products"][0]
|
||||
assert "context_rules" in safety_out["products"][0]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue