Mercurial > silorider
diff tests/test_format.py @ 0:a1b7a459326a
Initial commit.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 18 Jul 2018 20:46:04 -0700 |
parents | |
children | a921cc2306bc |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test_format.py Wed Jul 18 20:46:04 2018 -0700 @@ -0,0 +1,69 @@ +import pytest +from silorider.format import format_entry + + +test_url = 'https://example.org/article' + + +class TestEntry: + pass + + +def _make_test_entry(best_name, is_micropost): + entry = TestEntry() + entry.best_name = best_name + entry.is_micropost = is_micropost + entry.url = test_url + return entry + + +@pytest.mark.parametrize("title, limit, add_url, expected", [ + ('A test entry', None, False, 'A test entry'), + ('A test entry', None, 'auto', 'A test entry ' + test_url), + ('A test entry', None, True, 'A test entry ' + test_url), + + ('A test entry', 80, False, 'A test entry'), + ('A test entry', 80, 'auto', 'A test entry ' + test_url), + ('A test entry', 80, True, 'A test entry ' + test_url), + + ('A test entry that is very very long because its title has many many ' + 'words in it for no good reason', 80, False, + 'A test entry that is very very long because its title has many many ' + 'words in...'), + ('A test entry that is very very long because its title has many many ' + 'words in it for no good reason', 80, 'auto', + 'A test entry that is very very long because its... ' + test_url), + ('A test entry that is very very long because its title has many many ' + 'words in it for no good reason', 80, True, + 'A test entry that is very very long because its... ' + test_url) +]) +def test_format_lonform_entry(title, limit, add_url, expected): + entry = _make_test_entry(title, False) + actual = format_entry(entry, limit, add_url) + assert actual == expected + + +@pytest.mark.parametrize("text, limit, add_url, expected", [ + ('A test entry', None, False, 'A test entry'), + ('A test entry', None, 'auto', 'A test entry'), + ('A test entry', None, True, 'A test entry ' + test_url), + + ('A test entry', 80, False, 'A test entry'), + ('A test entry', 80, 'auto', 'A test entry'), + ('A test entry', 80, True, 'A test entry ' + test_url), + + ('A test entry that is very very long because its title has many many ' + 'words in it for no good reason', 80, False, + 'A test entry that is very very long because its title has many many ' + 'words in...'), + ('A test entry that is very very long because its title has many many ' + 'words in it for no good reason', 80, 'auto', + 'A test entry that is very very long because its... ' + test_url), + ('A test entry that is very very long because its title has many many ' + 'words in it for no good reason', 80, True, + 'A test entry that is very very long because its... ' + test_url) +]) +def test_format_micropost_entry(text, limit, add_url, expected): + entry = _make_test_entry(text, True) + actual = format_entry(entry, limit, add_url) + assert actual == expected