-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtests.py
More file actions
185 lines (180 loc) · 10.4 KB
/
tests.py
File metadata and controls
185 lines (180 loc) · 10.4 KB
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
import pytest
from main import BooksCollector
class TestBooksCollector:
# тест на добавление книг
def test_add_new_book_adding_three_books_success(self, collection):
books = ['Гарри Поттер и Филосовский камень', 'Приключения Тома Сойера', 'Приключения Оливера Твиста']
for book in books:
collection.add_new_book(book)
assert len(collection.get_books_genre()) == 3
# тест на недобавление одинаковых книг
def test_add_new_book_add_double_books_not_added(self, collection):
books = ['Приключения Тома Сойера', 'Приключения Тома Сойера']
for book in books:
collection.add_new_book(book)
assert len(collection.get_books_genre()) == 1
# тест на недобавление книги с некорректным названием
@pytest.mark.parametrize('book',
['', 'Гарри Поттер и Филосовский камень и Гарри Поттер и Филосовский камень']
)
def test_add_new_book_add_incorrect_name_not_added(self, book, collection):
collection.add_new_book(book)
assert len(collection.get_books_genre()) == 0
# тест на установку жанра книге
def test_set_book_genre_added(self, collection):
collect = collection
collect.books_genre = {
'Гарри Поттер и Филосовский камень' : ''
}
genre = 'Фантастика'
collection.set_book_genre('Гарри Поттер и Филосовский камень', genre)
assert collection.books_genre['Гарри Поттер и Филосовский камень'] == genre
# тест на получение списка жанров
def test_get_books_genre_true(self, collection):
collect = collection
genre = ['Фантастика', 'Роман', 'Семейный', 'Ужасы']
collect.genre = genre
collect.books_genre = {
'Рассвет жатвы' : 'Фантастика',
'Сильнее ветра' : 'Роман',
'Гарри Поттер и Тайная комната' : 'Семейный',
'Оно' : 'Ужасы'
}
assert len(collect.get_books_genre()) == 4
# тест на неприсвоение несуществующего жанра
def test_set_book_genre_missing_genre_not_added(self, collection):
first_book = 'Приключения Оливера Твиста'
missing_genre = 'Приключения'
collection.add_new_book(first_book)
collection.set_book_genre(first_book, missing_genre)
assert collection.get_book_genre(first_book) == ''
# тест на получение жанра по книге
def test_get_book_genre_true(self, collection):
collect = collection
genre = ['Фантастика', 'Роман', 'Семейный', 'Ужасы']
collect.genre = genre
collect.books_genre = {
'Рассвет жатвы' : 'Фантастика',
'Сильнее ветра' : 'Роман',
'Гарри Поттер и Тайная комната' : 'Семейный',
'Оно' : 'Ужасы'
}
assert collect.get_book_genre('Оно') == 'Ужасы'
# тест на проверку пустого жанра
def test_add_new_book_check_genre_success(self, collection):
first_book = 'Гарри Поттер и Филосовский камень'
collection.add_new_book(first_book)
assert collection.get_book_genre(first_book) == ''
# тест на удаление книги из избранного
def test_delete_book_from_favorites_book_deleted(self, collection):
collect = collection
collect.books_genre = {
'Приключения Тома Сойера' : ''
}
collect.add_book_in_favorites('Приключения Тома Сойера')
collect.delete_book_from_favorites('Приключения Тома Сойера')
assert len(collect.get_list_of_favorites_books()) == 0
# тест на установку нового жарна книге
def test_set_book_genre_changed(self, collection):
new_genre = 'Комедии'
collect = collection
collect.books_genre = {
'Приключения Оливера Твиста' : 'Фантастика',
'Оно' : 'Ужасы'
}
collect.set_book_genre('Приключения Оливера Твиста', new_genre)
assert collection.books_genre['Приключения Оливера Твиста'] == new_genre
# тест на получение книги по жанру
def test_get_books_with_specific_genre_success(self, collection):
collect = collection
genre = ['Фантастика', 'Роман', 'Семейный', 'Ужасы']
collect.genre = genre
collect.books_genre = {
'Рассвет жатвы' : 'Фантастика',
'Сильнее ветра' : 'Роман',
'Гарри Поттер и Тайная комната' : 'Семейный',
'Оно' : 'Ужасы'
}
assert collect.get_books_with_specific_genre('Роман') == ['Сильнее ветра']
# тест на получение книг по несуществующему жанру
def test_get_books_with_specific_genre_missing_book(self, collection):
collect = collection
genre = ['Фантастика', 'Роман', 'Семейный', 'Ужасы']
collect.genre = genre
collect.books_genre = {
'Рассвет жатвы' : 'Фантастика',
'Сильнее ветра' : 'Роман',
'Гарри Поттер и Тайная комната' : 'Семейный',
'Оно' : 'Ужасы'
}
assert len(collect.get_books_with_specific_genre('Приключения')) == 0
# тест на получение книг для детей
def test_get_books_for_children_success(self, collection):
collect = collection
genre = ['Фантастика', 'Роман', 'Семейный', 'Ужасы']
collect.genre = genre
collect.books_genre = {
'Рассвет жатвы' : 'Фантастика',
'Сильнее ветра' : 'Роман',
'Гарри Поттер и Тайная комната' : 'Семейный',
'Оно' : 'Ужасы'
}
children_books = collect.get_books_for_children()
assert len(children_books) == 3 and children_books == ['Рассвет жатвы', 'Сильнее ветра', 'Гарри Поттер и Тайная комната']
# тест на недобавление в список для детей книг без установленного жанра
def test_get_books_for_children_books_without_genre_not_added(self, collection):
collect = collection
collect.add_new_book = {
'Оно' : ''
}
children_books = collect.get_books_for_children()
assert children_books == []
# тест на добавление одной книги в избранное
def test_add_book_in_favorites_add_one_book_added(self, collection):
collect = collection
genre = ['Фантастика', 'Роман', 'Семейный', 'Ужасы']
collect.genre = genre
collect.books_genre = {
'Приключения Тома Сойера' : 'Фантастика',
'Сильнее ветра' : 'Роман'
}
collection.add_book_in_favorites('Приключения Тома Сойера')
favorites = collection.get_list_of_favorites_books()
assert len(favorites) == 1 and favorites[0] == 'Приключения Тома Сойера'
# тест на недобавление дублирующей кники в избранное
def test_add_book_in_favorites_add_double_books_not_added(self, collection):
collect = collection
collect.books_genre = {
'Приключения Тома Сойера' : '',
'Сильнее ветра' : ''
}
collect.add_book_in_favorites('Приключения Тома Сойера')
collect.add_book_in_favorites('Приключения Тома Сойера')
favorites = collect.get_list_of_favorites_books()
assert len(favorites) == 1 and favorites[0] == 'Приключения Тома Сойера'
# тест на недобавление в избранное несуществующей кники
def test_add_book_in_favorites_add_missing_book_not_added(self, collection):
first_book = 'Приключения Тома Сойера'
collection.add_book_in_favorites(first_book)
assert len(collection.get_list_of_favorites_books()) == 0
# тест на неудаление несуществующей книги из избранного
def test_delete_book_from_favorites_missing_book_not_deleted(self, collection):
collect = collection
collect.books_genre = {
'Приключения Тома Сойера' : ''
}
collect.favorites = ['Приключения Тома Сойера']
collect.delete_book_from_favorites('Приключения Оливера Твиста')
favorites = collect.get_list_of_favorites_books()
assert len(favorites) == 1 and favorites[0] == 'Приключения Тома Сойера'
# тест на получение не пустого избранного
def test_get_list_of_favorites_books_not_empty_true(self, collection):
collect = collection
collect.books_genre = {
'Рассвет жатвы' : ''
}
collect.favorites = ['Рассвет жатвы']
assert len(collect.favorites) == 1
# тест на получение пустого списка избранного
def test_get_list_of_favorites_books_empty_true(self, collection):
assert len(collection.favorites) == 0