Add more tests
This commit is contained in:
@ -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()
|
||||
|
Reference in New Issue
Block a user