-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_habr_nouns.py
140 lines (119 loc) · 5.44 KB
/
test_habr_nouns.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# # -*- coding: utf-8 -*-
#
import unittest
import habr_nouns
class TestHabrNouns(unittest.TestCase):
# def setUp(self):
# pass
def test_get_number_of_page(self):
self.assertEqual(habr_nouns.get_number_of_page(), 20)
def test_format_one_line_to_print(self):
header_list = ['Начало недели', 'Конец недели', 'Популярные слова']
size_list = [13, 12, 20]
self.assertEqual(
habr_nouns.format_one_line_to_print(
header_list, size_list, '|', filler=' '
),
'| Начало недели | Конец недели | Популярные слова |'
)
def test_get_max_len_words_for_output(self):
list_nouns_with_dates = [
('09.01.2017', '15.01.2017', 'программирование, голос, основа'),
('23.04.2018', '30.04.2018', 'Дайджест, материал, видео')
]
self.assertEqual(
habr_nouns.get_max_len_words_for_output(list_nouns_with_dates),
31
)
def test_get_range_of_weeks_by_day(self):
self.assertEqual(habr_nouns.get_range_of_weeks_by_day('12/04/2018'),
('09/04/2018', '15/04/2018'))
self.assertEqual(habr_nouns.get_range_of_weeks_by_day('01/03/2018'),
('26/02/2018', '04/03/2018'))
self.assertEqual(habr_nouns.get_range_of_weeks_by_day('05/02/2018'),
('05/02/2018', '11/02/2018'))
self.assertEqual(habr_nouns.get_range_of_weeks_by_day('29/02/2016'),
('29/02/2016', '06/03/2016'))
def test_get_nouns_from_text(self):
test_str = 'Программирование голоса stm32f103 с самых основ ' \
'программирования'
self.assertCountEqual(
habr_nouns.get_nouns_from_text(test_str),
['программирование', 'голос', 'основа']
)
def test_is_noun(self):
self.assertEqual(habr_nouns.is_noun('голос'), True)
self.assertEqual(habr_nouns.is_noun('программировать'), False)
self.assertEqual(habr_nouns.is_noun('с'), False)
self.assertEqual(habr_nouns.is_noun('по'), False)
self.assertEqual(habr_nouns.is_noun('и'), False)
def test_get_normal_form(self):
self.assertEqual(habr_nouns.get_normal_form('голоса'), 'голос')
self.assertEqual(
habr_nouns.get_normal_form('программирования'), 'программирование'
)
def test_dict_get_nouns_of_weeks(self):
test_list = [
('12/04/2018', 'Программирование голоса'),
('13/04/2018', 'Анализ кода'),
('13/05/2018', 'языки и питон'),
('14/05/2018', 'разбор полетов'),
]
self.assertCountEqual(
habr_nouns.create_dict_with_nouns_by_weeks(test_list),
{
('09/04/2018', '15/04/2018'):
['голос', 'программирование', 'анализ', 'код'],
('14/05/2018', '20/05/2018'):
['полёт', 'разбор'],
('07/05/2018', '13/05/2018'):
['питон', 'язык']
}
)
def test_dict_to_list(self):
test_dict = {
('09/04/2018', '15/04/2018'):
['голос', 'программирование', 'анализ', 'код'],
('14/05/2018', '20/05/2018'):
['полёт', 'разбор'],
('07/05/2018', '13/05/2018'):
['питон', 'язык']
}
self.assertCountEqual(
habr_nouns.dict_to_list(test_dict),
[
(
('09/04/2018', '15/04/2018'),
['голос', 'программирование', 'анализ', 'код']
),
(
('14/05/2018', '20/05/2018'),
['полёт', 'разбор']
),
(
('07/05/2018', '13/05/2018'),
['питон', 'язык']
),
])
def test_create_nouns_of_week(self):
self.assertCountEqual(
habr_nouns.create_nouns_of_week(
('12/04/2018', 'Программирование голоса')),
(('09/04/2018', '15/04/2018'), ['голос', 'программирование']))
def test_format_date(self):
dt_today = habr_nouns.datetime.today()
dt_yesterday = habr_nouns.datetime.today() - habr_nouns.timedelta(1)
self.assertEqual(habr_nouns.format_date('сегодня в 12:03'),
dt_today.strftime("%d/%m/%Y")
)
self.assertEqual(habr_nouns.format_date('вчера в 16:41'),
dt_yesterday.strftime("%d/%m/%Y")
)
self.assertEqual(habr_nouns.format_date('29 апреля в 21:14'),
'29/04/2018'
)
self.assertEqual(habr_nouns.format_date('22 декабря 2017 в 12:48'),
'22/12/2017'
)
if __name__ == "__main__":
unittest.main()