-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtests.py
More file actions
154 lines (132 loc) · 7.93 KB
/
tests.py
File metadata and controls
154 lines (132 loc) · 7.93 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
from main import BooksCollector
import pytest
class TestBooksCollector:
valid_book_names = [
'Бегающий сейф',
'С',
'Се',
'39 симв. Сергей Вишневский. Бегающий се',
'40 симв. Сергей Вишневский. Бегающий сей'
]
@pytest.mark.parametrize('book_name', valid_book_names)
def test_add_new_book_with_valid_name_success(self, book_name):
collector = BooksCollector()
collector.add_new_book(book_name)
assert book_name in collector.books_genre
invalid_book_names = [
'',
'41 симв. Сергей Вишневский. Бегающий сейф',
'42 симв. Сергей Вишневский. Бегающий сейф ',
'60 симв. Сергей Вишневский. Бегающий сейф. Сергей Вишневский'
]
@pytest.mark.parametrize('book_name', invalid_book_names)
def test_add_new_book_with_invalid_name_fault(self, book_name):
collector = BooksCollector()
collector.add_new_book(book_name)
assert book_name not in collector.books_genre
def test_add_new_book_duplicate_fault(self):
collector = BooksCollector()
collector.add_new_book('Играть чтобы жить')
collector.add_new_book('Играть чтобы жить')
assert len(collector.books_genre) == 1
def test_add_new_book_added_book_without_genre(self):
collector = BooksCollector()
collector.add_new_book('Господство клана Неспящих')
assert collector.books_genre['Господство клана Неспящих'] == ''
def test_set_book_genre_valid_genre_success(self):
collector = BooksCollector()
collector.add_new_book('Макс Глебов. Бригадный генерал')
collector.set_book_genre('Макс Глебов. Бригадный генерал', 'Фантастика')
assert collector.books_genre['Макс Глебов. Бригадный генерал'] == 'Фантастика'
def test_set_book_genre_unknown_book_fault(self):
collector = BooksCollector()
collector.set_book_genre('Неизвестная книга', 'Фантастика')
assert 'Неизвестная книга' not in collector.books_genre
def test_set_book_genre_unknown_genre_fault(self):
collector = BooksCollector()
collector.add_new_book('Дмитрий Рус. Играть чтобы Жить')
collector.set_book_genre('Дмитрий Рус. Играть чтобы Жить', 'ЛитРПГ')
assert collector.books_genre['Дмитрий Рус. Играть чтобы Жить'] == ''
def test_get_book_genre_known_name_success(self):
collector = BooksCollector()
collector.add_new_book('Макс Глебов. Блюстители хаоса')
collector.set_book_genre('Макс Глебов. Блюстители хаоса', 'Фантастика')
assert collector.get_book_genre('Макс Глебов. Блюстители хаоса') == 'Фантастика'
def test_get_book_genre_unknown_name_fault(self):
collector = BooksCollector()
assert collector.get_book_genre('Гарри поттер') == None
def test_get_books_with_specific_genre_found(self):
book_names_with_genre = [
['Дюна','Фантастика'],
['Приключения Шерлока Холмса','Детективы'],
['Оно','Ужасы'],
['Гиперион','Фантастика'],
['Бригадный генерал','Фантастика'],
['12 стульев','Комедии']
]
collector = BooksCollector()
for i in book_names_with_genre:
collector.add_new_book(i[0])
collector.set_book_genre(i[0],i[1])
assert collector.get_books_with_specific_genre('Фантастика') == ['Дюна', 'Гиперион', 'Бригадный генерал']
def test_get_books_with_specific_genre_empty_genre_not_found(self):
book_names_with_genre = [
['Дюна','Фантастика'],
['Приключения Шерлока Холмса','Детективы'],
['Оно','Ужасы'],
['Гиперион','Фантастика'],
['Бригадный генерал','Фантастика'],
['12 стульев','Комедии']
]
collector = BooksCollector()
for i in book_names_with_genre:
collector.add_new_book(i[0])
collector.set_book_genre(i[0],i[1])
assert collector.get_books_with_specific_genre('Мультфильмы') == []
def test_get_books_with_specific_genre_invalid_genre_fault(self):
collector = BooksCollector()
assert collector.get_books_with_specific_genre('ЛитРПГ') == []
def test_get_books_genre_valid_books_success(self):
book_names_with_genre = [
['Дюна', 'Фантастика'],
['Приключения Шерлока Холмса', 'Детективы']
]
collector = BooksCollector()
for i in book_names_with_genre:
collector.add_new_book(i[0])
collector.set_book_genre(i[0], i[1])
assert collector.get_books_genre() == {'Дюна': 'Фантастика', 'Приключения Шерлока Холмса': 'Детективы'}
def test_get_books_for_children_valid_names_success(self):
book_names_with_genre = [
['Гарри Поттер','Фантастика'],
['Приключения Шерлока Холмса','Детективы'],
['Оно','Ужасы'],
['Винни Пух','Мультфильмы']
]
collector = BooksCollector()
for i in book_names_with_genre:
collector.add_new_book(i[0])
collector.set_book_genre(i[0],i[1])
assert collector.get_books_for_children() == ['Гарри Поттер', 'Винни Пух']
def test_add_book_in_favorites_valid_name_success(self):
collector = BooksCollector()
collector.add_new_book('Артём Каменистый. Самый странный нуб')
collector.add_book_in_favorites('Артём Каменистый. Самый странный нуб')
assert 'Артём Каменистый. Самый странный нуб' in collector.favorites
def test_add_book_in_favorites_unknown_book_fault(self):
collector = BooksCollector()
collector.add_book_in_favorites('Неизвестная книга')
assert 'Неизвестная книга' not in collector.favorites
def test_delete_book_from_favorites_valid_name_success(self):
collector = BooksCollector()
collector.add_new_book('Дмитрий Распопов. Лучшая пятерка')
collector.add_book_in_favorites('Дмитрий Распопов. Лучшая пятерка')
collector.delete_book_from_favorites('Дмитрий Распопов. Лучшая пятерка')
assert 'Дмитрий Распопов. Лучшая пятерка' not in collector.favorites
def test_get_list_of_favorites_books_valid_name_success(self):
collector = BooksCollector()
collector.add_new_book('Дмитрий Распопов. Жить заново')
collector.add_book_in_favorites('Дмитрий Распопов. Жить заново')
collector.add_new_book('Василий Маханенко. Путь шамана')
collector.add_book_in_favorites('Василий Маханенко. Путь шамана')
assert collector.favorites == ['Дмитрий Распопов. Жить заново', 'Василий Маханенко. Путь шамана']