|
|
@ -7,6 +7,7 @@ from tildes.lib.string import ( |
|
|
|
truncate_string, |
|
|
|
truncate_string_at_char, |
|
|
|
word_count, |
|
|
|
extract_text_from_html, |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
@ -152,3 +153,23 @@ def test_basic_camelcase_to_snakecase(): |
|
|
|
def test_camelcase_to_snakecase_with_acronym(): |
|
|
|
"""Ensure CamelCase->snake_case works as expected with an acronym.""" |
|
|
|
assert camelcase_to_snakecase("SomeHTTPThing") == "some_http_thing" |
|
|
|
|
|
|
|
|
|
|
|
def test_extract_text_from_html_include_details(): |
|
|
|
"""Ensure extract_text_from_html behavior includes <details> elements by default.""" |
|
|
|
html = "<details><summary>Spoilers!</summary> <p>Don't hide me!</p></details>" |
|
|
|
assert extract_text_from_html(html) == "Spoilers! Don't hide me!" |
|
|
|
|
|
|
|
html = "<details><p>Don't hide me!</p></details>" |
|
|
|
assert extract_text_from_html(html) == "Don't hide me!" |
|
|
|
|
|
|
|
|
|
|
|
def test_extract_text_from_html_exclude_details(): |
|
|
|
"""Ensure extract_text_from_html behavior excludes <details> elements when specified.""" |
|
|
|
html = "<details><summary>Spoilers!</summary> <p>Hide me!</p></details>" |
|
|
|
text = extract_text_from_html(html, exclude_details_include_summary=True) |
|
|
|
assert text == "Spoilers!" |
|
|
|
|
|
|
|
html = "<details><p>Hide me!</p></details>" |
|
|
|
text = extract_text_from_html(html, exclude_details_include_summary=True) |
|
|
|
assert text == "Details" |