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