File size: 2,454 Bytes
638c806
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from __future__ import annotations

from conftest import (
    call_with_supported_kwargs,
    install_fake_adapter,
    maybe_import,
    resolve_callable,
    sqlite_contains_text,
    sqlite_user_tables,
    text_blob,
    unload_promptboost_modules,
)


BOOST_MODULES = (
    "promptboost",
    "promptboost.core",
    "promptboost.boost",
)

BOOST_FUNCS = (
    "boost",
    "boost_prompt",
)


def _patch_guards_to_pass(monkeypatch):
    for module_name in (
        "promptboost.guards",
        "promptboost.guardrails",
        "promptboost.rules.guards",
        "promptboost.rules",
        "promptboost.core",
        "promptboost.boost",
    ):
        module = maybe_import(module_name)
        if module is None:
            continue
        for attr_name in (
            "ensure_no_new_facts",
            "check_no_new_facts",
            "validate_no_new_facts",
            "guard_no_new_facts",
        ):
            monkeypatch.setattr(module, attr_name, lambda *_args, **_kwargs: True, raising=False)


def _call_boost(raw_prompt: str, target_harness: str, target_model: str):
    boost = resolve_callable(BOOST_MODULES, BOOST_FUNCS)
    return call_with_supported_kwargs(
        boost,
        raw_prompt=raw_prompt,
        prompt=raw_prompt,
        text=raw_prompt,
        target_harness=target_harness,
        harness=target_harness,
        target_model=target_model,
        model=target_model,
    )


def test_boost_persists_run_to_local_sqlite(promptboost_db_path, monkeypatch):
    unload_promptboost_modules()
    raw_prompt = (
        "Create a PromptBoost test prompt about FastAPI, local SQLite, and no paid API calls."
    )
    boosted_prompt = (
        "Create a focused PromptBoost test prompt about FastAPI, local SQLite, "
        "and no paid API calls."
    )

    resolve_callable(BOOST_MODULES, BOOST_FUNCS)
    install_fake_adapter(monkeypatch, boosted_prompt)
    _patch_guards_to_pass(monkeypatch)

    result = _call_boost(raw_prompt, target_harness="codex", target_model="test-model")

    assert boosted_prompt.lower() in text_blob(result)
    assert promptboost_db_path.exists()
    assert sqlite_user_tables(promptboost_db_path)
    assert sqlite_contains_text(promptboost_db_path, raw_prompt)
    assert sqlite_contains_text(promptboost_db_path, boosted_prompt)
    assert sqlite_contains_text(promptboost_db_path, "codex")
    assert sqlite_contains_text(promptboost_db_path, "test-model")