Name the example databases as the documentation does
`medic` and `st` become `papers` and `notes`.
This commit is contained in:
parent
dfa5f8027e
commit
b2c617f9f2
3 changed files with 26 additions and 24 deletions
|
|
@ -185,20 +185,20 @@ class TestSelectingADatabaseByName:
|
|||
def test_a_named_database_is_passed_on_by_name(self, monkeypatch):
|
||||
"""Not resolved to a path: the name is what results and citations carry,
|
||||
and rewriting the configuration is what used to lose it."""
|
||||
self._install(monkeypatch, medic="s3://bucket/prefix/medic.lancedb")
|
||||
monkeypatch.setattr("haiku.rag.cli._db_name", "medic")
|
||||
self._install(monkeypatch, papers="s3://bucket/prefix/papers.lancedb")
|
||||
monkeypatch.setattr("haiku.rag.cli._db_name", "papers")
|
||||
|
||||
assert resolve_scope(None).names == ("medic",)
|
||||
assert resolve_scope(None).names == ("papers",)
|
||||
|
||||
def test_naming_a_database_leaves_the_configuration_alone(self, monkeypatch):
|
||||
self._install(monkeypatch, st="/data/st.lancedb", other="/data/o.lancedb")
|
||||
monkeypatch.setattr("haiku.rag.cli._db_name", "st")
|
||||
self._install(monkeypatch, notes="/data/notes.lancedb", other="/data/o.lancedb")
|
||||
monkeypatch.setattr("haiku.rag.cli._db_name", "notes")
|
||||
|
||||
resolve_scope(None)
|
||||
|
||||
config = get_config()
|
||||
assert config.lancedb.databases == {
|
||||
"st": "/data/st.lancedb",
|
||||
"notes": "/data/notes.lancedb",
|
||||
"other": "/data/o.lancedb",
|
||||
}
|
||||
assert config.lancedb.uri == ""
|
||||
|
|
@ -211,7 +211,7 @@ class TestSelectingADatabaseByName:
|
|||
resolve_scope(None)
|
||||
|
||||
def test_an_unknown_name_does_not_leak_locations(self, monkeypatch):
|
||||
self._install(monkeypatch, medic="s3://bucket/prefix/medic.lancedb")
|
||||
self._install(monkeypatch, papers="s3://bucket/prefix/papers.lancedb")
|
||||
monkeypatch.setattr("haiku.rag.cli._db_name", "gamma")
|
||||
|
||||
with pytest.raises(AmbiguousDatabaseError) as raised:
|
||||
|
|
@ -221,7 +221,7 @@ class TestSelectingADatabaseByName:
|
|||
|
||||
def test_selecting_nothing_reports_an_empty_mapping(self, monkeypatch):
|
||||
self._install(monkeypatch)
|
||||
monkeypatch.setattr("haiku.rag.cli._db_name", "medic")
|
||||
monkeypatch.setattr("haiku.rag.cli._db_name", "papers")
|
||||
|
||||
with pytest.raises(AmbiguousDatabaseError, match="nothing"):
|
||||
resolve_scope(None)
|
||||
|
|
@ -304,13 +304,15 @@ class TestSelectingADatabaseByName:
|
|||
monkeypatch.chdir(tmp_path)
|
||||
config_file = tmp_path / "selected.yaml"
|
||||
config_file.write_text(
|
||||
"lancedb:\n databases:\n medic: s3://bucket/medic.lancedb\n"
|
||||
"lancedb:\n databases:\n papers: s3://bucket/papers.lancedb\n"
|
||||
)
|
||||
|
||||
runner.invoke(
|
||||
cli, ["--config", str(config_file), "--db-name", "medic", "settings"]
|
||||
cli, ["--config", str(config_file), "--db-name", "papers", "settings"]
|
||||
)
|
||||
assert get_config().lancedb.databases == {"medic": "s3://bucket/medic.lancedb"}
|
||||
assert get_config().lancedb.databases == {
|
||||
"papers": "s3://bucket/papers.lancedb"
|
||||
}
|
||||
|
||||
runner.invoke(cli, ["settings"])
|
||||
|
||||
|
|
@ -326,7 +328,7 @@ class TestResolvingTheDatabasePath:
|
|||
assert ref.db_path == Path("/data/one.lancedb")
|
||||
|
||||
def test_naming_a_database_twice_is_refused(self, monkeypatch):
|
||||
monkeypatch.setattr("haiku.rag.cli._db_name", "st")
|
||||
monkeypatch.setattr("haiku.rag.cli._db_name", "notes")
|
||||
|
||||
with pytest.raises(AmbiguousDatabaseError, match="not both"):
|
||||
resolve_scope(Path("/data/other.lancedb"))
|
||||
|
|
|
|||
|
|
@ -172,13 +172,13 @@ async def test_app_info_opens_a_named_remote_database(tmp_path):
|
|||
from haiku.rag.client.scope import DatabaseScope
|
||||
|
||||
config = AppConfig(
|
||||
lancedb=LanceDBConfig(databases={"medic": "s3://bucket/medic.lancedb"})
|
||||
lancedb=LanceDBConfig(databases={"papers": "s3://bucket/papers.lancedb"})
|
||||
)
|
||||
scope = DatabaseScope.resolve(config, database_name="medic")
|
||||
scope = DatabaseScope.resolve(config, database_name="papers")
|
||||
app = HaikuRAGApp(scope=scope, config=config)
|
||||
|
||||
assert app._is_local is False
|
||||
assert app._store_config.lancedb.uri == "s3://bucket/medic.lancedb"
|
||||
assert app._store_config.lancedb.uri == "s3://bucket/papers.lancedb"
|
||||
assert app._store_config.lancedb.databases == {}
|
||||
|
||||
with patch(
|
||||
|
|
@ -191,7 +191,7 @@ async def test_app_info_opens_a_named_remote_database(tmp_path):
|
|||
await app.info()
|
||||
|
||||
opened = mock_connect.call_args.args[0]
|
||||
assert opened.lancedb.uri == "s3://bucket/medic.lancedb"
|
||||
assert opened.lancedb.uri == "s3://bucket/papers.lancedb"
|
||||
|
||||
|
||||
async def test_app_doctor_opens_a_named_remote_database():
|
||||
|
|
@ -200,15 +200,15 @@ async def test_app_doctor_opens_a_named_remote_database():
|
|||
from haiku.rag.client.scope import DatabaseScope
|
||||
|
||||
config = AppConfig(
|
||||
lancedb=LanceDBConfig(databases={"medic": "s3://bucket/medic.lancedb"})
|
||||
lancedb=LanceDBConfig(databases={"papers": "s3://bucket/papers.lancedb"})
|
||||
)
|
||||
app = HaikuRAGApp(scope=DatabaseScope.resolve(config, database_name="medic"))
|
||||
app = HaikuRAGApp(scope=DatabaseScope.resolve(config, database_name="papers"))
|
||||
|
||||
with patch("haiku.rag.doctor.run_doctor", new_callable=AsyncMock) as run:
|
||||
run.return_value = MagicMock(checks=[], ok=True, duplicates=None)
|
||||
await app.doctor()
|
||||
|
||||
assert run.call_args.args[0].lancedb.uri == "s3://bucket/medic.lancedb"
|
||||
assert run.call_args.args[0].lancedb.uri == "s3://bucket/papers.lancedb"
|
||||
|
||||
|
||||
async def test_app_info_uses_connect_lancedb_for_remote(tmp_path):
|
||||
|
|
|
|||
|
|
@ -782,15 +782,15 @@ async def test_format_citations_rich_names_the_database_when_federating():
|
|||
document_uri="test://doc",
|
||||
document_title="Test Doc",
|
||||
content="Body",
|
||||
source="medic",
|
||||
source="papers",
|
||||
)
|
||||
client = AsyncMock()
|
||||
client.covers_multiple = True
|
||||
client.source_names = ("medic", "st")
|
||||
client.source_names = ("papers", "notes")
|
||||
|
||||
output = _render_rich(await format_citations_rich([citation], client))
|
||||
|
||||
assert "medic" in output
|
||||
assert "papers" in output
|
||||
|
||||
|
||||
def test_truncated_marks_what_it_dropped():
|
||||
|
|
@ -820,7 +820,7 @@ async def test_format_citations_rich_omits_the_database_for_one_database():
|
|||
document_uri="test://doc",
|
||||
document_title="Test Doc",
|
||||
content="Body",
|
||||
source="medic",
|
||||
source="papers",
|
||||
)
|
||||
client = AsyncMock()
|
||||
client.covers_multiple = False
|
||||
|
|
@ -828,7 +828,7 @@ async def test_format_citations_rich_omits_the_database_for_one_database():
|
|||
|
||||
output = _render_rich(await format_citations_rich([citation], client))
|
||||
|
||||
assert "medic" not in output
|
||||
assert "papers" not in output
|
||||
|
||||
|
||||
async def test_format_citations_rich_truncates_long_content():
|
||||
|
|
|
|||
Loading…
Reference in a new issue