Files
website-v2/libraries/tests/test_utils.py
Lacey Williams Henschel 688ae87e76 Add methods to retrieve adoc content for libraries
(Part of #394 and #252)

- Add method to the GitHub API class to retrieve a specific file from a repo by its tag and path (to retrieve README or adocc files)
- Add method to Library model to retrieve the description content and render it
- Fail gracefully if no content is found
- Add caching logic for redis and database caching
2023-06-15 15:08:42 -07:00

56 lines
1.4 KiB
Python

from datetime import datetime
import os
from libraries.utils import (
decode_content,
generate_fake_email,
parse_date,
write_content_to_tempfile,
)
def test_decode_content():
byte_content = b"This is a test content"
str_content = "This is a test content"
decoded_byte_content = decode_content(byte_content)
decoded_str_content = decode_content(str_content)
assert decoded_byte_content == str_content
assert decoded_str_content == str_content
def test_generate_fake_email():
sample = "Tester de Testerson"
expected = "tester_de_testerson"
result = generate_fake_email(sample)
assert expected in result
assert "@example.com" in result
def test_parse_date_iso():
expected = datetime.now()
result = parse_date(expected.isoformat())
assert expected == result
def test_parse_date_str():
expected = datetime.now()
input_date = f"{expected.month}-{expected.day}-{expected.year}"
result = parse_date(input_date)
assert expected.date() == result.date()
def test_parse_date_str_none():
expected = None
result = parse_date("")
assert expected == result
def test_write_content_to_tempfile():
content = b"This is a test content"
temp_file = write_content_to_tempfile(content)
assert os.path.exists(temp_file.name)
with open(temp_file.name, "rb") as f:
file_content = f.read()
assert file_content == content
os.remove(temp_file.name)