from llamacppctl.prompt_io import PromptSource, PromptSourceError, resolve_source def test_resolve_literal_source(): src = resolve_source("hello", None, None) assert src == PromptSource("literal", "hello") def test_resolve_file_source(): src = resolve_source(None, "/tmp/foo.txt", None) assert src == PromptSource("file", "/tmp/foo.txt") def test_resolve_url_source(): src = resolve_source(None, None, "https://example.org/x.txt") assert src == PromptSource("url", "https://example.org/x.txt") def test_resolve_none(): assert resolve_source(None, None, None) is None def test_resolve_rejects_multiple_sources(): try: resolve_source("a", "b", None) assert False, "expected PromptSourceError" except PromptSourceError: pass