switch to TOML config and export republisher feed manifests
This commit is contained in:
parent
98dcea4d7e
commit
897af2872c
17 changed files with 832 additions and 324 deletions
84
tests/test_entrypoint.py
Normal file
84
tests/test_entrypoint.py
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
import tomllib
|
||||
from pathlib import Path
|
||||
|
||||
from pygea import main as main_module
|
||||
|
||||
|
||||
class StubPangeaFeed:
|
||||
def __init__(self, config, feeds):
|
||||
self.config = config
|
||||
self.feed = feeds[0]
|
||||
|
||||
def acquire_content(self) -> None:
|
||||
return None
|
||||
|
||||
def generate_feed(self) -> None:
|
||||
return None
|
||||
|
||||
def disgorge(self, slug: str):
|
||||
output_path = self.config.results.output_directory / slug / "rss.xml"
|
||||
output_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
output_path.write_text("<rss />\n", encoding="utf-8")
|
||||
return output_path
|
||||
|
||||
|
||||
def test_main_writes_manifest_toml_with_absolute_file_urls(
|
||||
tmp_path: Path, monkeypatch
|
||||
) -> None:
|
||||
config_path = tmp_path / "pygea.toml"
|
||||
config_path.write_text(
|
||||
"""
|
||||
domain = "www.martinoticias.com"
|
||||
|
||||
[[feeds]]
|
||||
name = "Info Martí "
|
||||
slug = "info-marti"
|
||||
only_newest = false
|
||||
|
||||
[[feeds]]
|
||||
name = "Titulares"
|
||||
slug = "titulares"
|
||||
only_newest = true
|
||||
content_type = "articles"
|
||||
|
||||
[runtime]
|
||||
api_key = "demo-key"
|
||||
verbose_p = false
|
||||
|
||||
[results]
|
||||
output_directory = "feed"
|
||||
output_file_name = "rss.xml"
|
||||
|
||||
[logging]
|
||||
log_file = "logs/pygea.log"
|
||||
default_log_level = "INFO"
|
||||
""".strip()
|
||||
+ "\n",
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
monkeypatch.setattr(main_module, "feed_class", lambda: StubPangeaFeed)
|
||||
|
||||
exit_code = main_module.main(["--config", str(config_path)])
|
||||
|
||||
manifest_path = tmp_path / "feed" / "manifest.toml"
|
||||
assert exit_code == 0
|
||||
assert manifest_path.exists()
|
||||
|
||||
manifest = tomllib.loads(manifest_path.read_text(encoding="utf-8"))
|
||||
assert manifest == {
|
||||
"feeds": [
|
||||
{
|
||||
"name": "Info Martí ",
|
||||
"slug": "info-marti",
|
||||
"url": (tmp_path / "feed" / "info-marti" / "rss.xml")
|
||||
.resolve()
|
||||
.as_uri(),
|
||||
},
|
||||
{
|
||||
"name": "Titulares",
|
||||
"slug": "titulares",
|
||||
"url": (tmp_path / "feed" / "titulares" / "rss.xml").resolve().as_uri(),
|
||||
},
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue