0
|
1 import pytest
|
|
2 from silorider.format import format_entry
|
|
3
|
|
4
|
|
5 test_url = 'https://example.org/article'
|
|
6
|
|
7
|
|
8 class TestEntry:
|
|
9 pass
|
|
10
|
|
11
|
|
12 def _make_test_entry(best_name, is_micropost):
|
|
13 entry = TestEntry()
|
|
14 entry.best_name = best_name
|
|
15 entry.is_micropost = is_micropost
|
|
16 entry.url = test_url
|
|
17 return entry
|
|
18
|
|
19
|
|
20 @pytest.mark.parametrize("title, limit, add_url, expected", [
|
|
21 ('A test entry', None, False, 'A test entry'),
|
|
22 ('A test entry', None, 'auto', 'A test entry ' + test_url),
|
|
23 ('A test entry', None, True, 'A test entry ' + test_url),
|
|
24
|
|
25 ('A test entry', 80, False, 'A test entry'),
|
|
26 ('A test entry', 80, 'auto', 'A test entry ' + test_url),
|
|
27 ('A test entry', 80, True, 'A test entry ' + test_url),
|
|
28
|
|
29 ('A test entry that is very very long because its title has many many '
|
|
30 'words in it for no good reason', 80, False,
|
|
31 'A test entry that is very very long because its title has many many '
|
|
32 'words in...'),
|
|
33 ('A test entry that is very very long because its title has many many '
|
|
34 'words in it for no good reason', 80, 'auto',
|
|
35 'A test entry that is very very long because its... ' + test_url),
|
|
36 ('A test entry that is very very long because its title has many many '
|
|
37 'words in it for no good reason', 80, True,
|
|
38 'A test entry that is very very long because its... ' + test_url)
|
|
39 ])
|
|
40 def test_format_lonform_entry(title, limit, add_url, expected):
|
|
41 entry = _make_test_entry(title, False)
|
|
42 actual = format_entry(entry, limit, add_url)
|
|
43 assert actual == expected
|
|
44
|
|
45
|
|
46 @pytest.mark.parametrize("text, limit, add_url, expected", [
|
|
47 ('A test entry', None, False, 'A test entry'),
|
|
48 ('A test entry', None, 'auto', 'A test entry'),
|
|
49 ('A test entry', None, True, 'A test entry ' + test_url),
|
|
50
|
|
51 ('A test entry', 80, False, 'A test entry'),
|
|
52 ('A test entry', 80, 'auto', 'A test entry'),
|
|
53 ('A test entry', 80, True, 'A test entry ' + test_url),
|
|
54
|
|
55 ('A test entry that is very very long because its title has many many '
|
|
56 'words in it for no good reason', 80, False,
|
|
57 'A test entry that is very very long because its title has many many '
|
|
58 'words in...'),
|
|
59 ('A test entry that is very very long because its title has many many '
|
|
60 'words in it for no good reason', 80, 'auto',
|
|
61 'A test entry that is very very long because its... ' + test_url),
|
|
62 ('A test entry that is very very long because its title has many many '
|
|
63 'words in it for no good reason', 80, True,
|
|
64 'A test entry that is very very long because its... ' + test_url)
|
|
65 ])
|
|
66 def test_format_micropost_entry(text, limit, add_url, expected):
|
|
67 entry = _make_test_entry(text, True)
|
|
68 actual = format_entry(entry, limit, add_url)
|
|
69 assert actual == expected
|