Add more tests

This commit is contained in:
2023-01-19 04:05:35 +01:00
parent 82bf97491d
commit f39c9056fd
5 changed files with 177 additions and 6 deletions

View File

@ -5,7 +5,13 @@ import tempfile
from platformdirs import user_data_dir
from reader import Reader
from discord_rss_bot.settings import data_dir, get_db_location, get_reader
from discord_rss_bot.settings import (
data_dir,
default_custom_message,
get_db_location,
get_reader,
get_webhook_for_entry,
)
def test_get_db_location() -> None:
@ -45,3 +51,34 @@ def test_reader() -> None:
def test_data_dir() -> None:
"""Test the data directory."""
assert os.path.exists(data_dir)
def test_default_custom_message() -> None:
"""Test the default custom message."""
assert "{{entry_title}}\n{{entry_link}}" == default_custom_message
def test_get_webhook_for_entry() -> None:
"""Test getting the webhook for an entry."""
# Test with a custom reader.
with tempfile.TemporaryDirectory() as temp_dir:
# Create the temp directory
os.makedirs(temp_dir, exist_ok=True)
custom_loc: pathlib.Path = pathlib.Path(temp_dir, "custom_loc_db.sqlite")
custom_reader: Reader = get_reader(custom_location=str(custom_loc))
# Add a feed to the database.
custom_reader.add_feed("https://www.reddit.com/r/movies.rss")
custom_reader.update_feed("https://www.reddit.com/r/movies.rss")
for entry in custom_reader.get_entries():
assert get_webhook_for_entry(custom_reader=custom_reader, entry=entry) == ""
# Add a webhook to the database.
custom_reader.set_tag("https://www.reddit.com/r/movies.rss", "webhook", "https://example.com") # type: ignore
our_tag: str = custom_reader.get_tag("https://www.reddit.com/r/movies.rss", "webhook") # type: ignore
assert our_tag == "https://example.com"
# Close the reader, so we can delete the directory.
custom_reader.close()