-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtests.py
More file actions
128 lines (106 loc) · 5.77 KB
/
Copy pathtests.py
File metadata and controls
128 lines (106 loc) · 5.77 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
from main import BooksCollector
import pytest
# класс TestBooksCollector объединяет набор тестов, которыми мы покрываем наше приложение BooksCollector
# обязательно указывать префикс Test
class TestBooksCollector:
# пример теста:
# обязательно указывать префикс test_
# дальше идет название метода, который тестируем add_new_book_
# затем, что тестируем add_two_books - добавление двух книг
def test_add_new_book_add_two_books(self):
# создаем экземпляр (объект) класса BooksCollector
collector = BooksCollector()
# добавляем две книги
collector.add_new_book('Гордость и предубеждение и зомби')
collector.add_new_book('Что делать, если ваш кот хочет вас убить')
# проверяем, что добавилось именно две
# словарь books_rating, который нам возвращает метод get_books_rating, имеет длину 2
assert len(collector.get_books_genre()) == 2#Исправлено rating на genre
@pytest.mark.parametrize('name', ['', 'А'*41])#1.1
def test_add_new_book_rejects_empty_and_long_names(self, name):
collector = BooksCollector()
collector.add_new_book(name)
assert name not in collector.get_books_genre()
def test_add_new_book_duplicate_not_added(self):#1.2
collector = BooksCollector()
collector.add_new_book('Мы')
collector.add_new_book('Мы')
assert len(collector.get_books_genre()) == 1
@pytest.mark.parametrize(
'book_name, genre',
[
['Дюна','Фантастика'],
['Оно', 'Ужасы'],
['Десять негритя', 'Детективы'],
['38 попугаев', 'Мультфильмы'],
['12 стульев', 'Комедии']
]
)
def test_set_book_genre_existing_name_and_genre_success(self, book_name, genre):
collector = BooksCollector()
collector.add_new_book(book_name)
collector.set_book_genre(book_name, genre)
assert collector.get_book_genre(book_name) == genre
def test_set_book_genre_invalid_genre_not_added(self):
collector = BooksCollector()
collector.add_new_book('Дюна')
collector.set_book_genre('Дюна', 'Несуществующий жанр')
assert collector.get_book_genre('Дюна') == ''
def test_get_books_with_specific_genre_(self):
collector = BooksCollector()
collector.add_new_book('Дюна')
collector.set_book_genre('Дюна', 'Фантастика')
collector.add_new_book('Оно')
collector.set_book_genre('Оно', 'Ужасы')
result = collector.get_books_with_specific_genre('Фантастика')
assert result == ['Дюна']
def test_get_books_genre_return_empty_dict_when_no_books(self):
collector = BooksCollector()
assert collector.get_books_genre() == {}
def test_get_books_genre_includes_book_after_addition(self):
collector = BooksCollector()
collector.add_new_book('Дюна')
assert collector.get_books_genre() == {'Дюна': ''}
def test_get_books_genre_return_correct_dict(self):
collector = BooksCollector()
collector.add_new_book('Дюна')
collector.set_book_genre('Дюна', 'Фантастика')
assert collector.get_books_genre() == {'Дюна': 'Фантастика'}
def test_get_books_for_children_return_correct_childrens_books(self):
collector = BooksCollector()
collector.add_new_book('Дюна')
collector.set_book_genre('Дюна', 'Фантастика')
collector.add_new_book('Оно')
collector.set_book_genre('Оно', 'Ужасы')
collector.add_new_book('38 попугаев')
collector.set_book_genre('38 попугаев', 'Мультфильмы')
books_for_children = collector.get_books_for_children()
assert 'Дюна' in books_for_children
assert '38 попугаев' in books_for_children
assert 'Оно' not in books_for_children
def test_add_book_in_favorites_adds_existing_book(self):
collector = BooksCollector()
collector.add_new_book('Дюна')
collector.add_book_in_favorites('Дюна')
assert 'Дюна' in collector.favorites
def test_add_book_in_favorites_books_when_book_not_exists_return_empty_list(self):
collector = BooksCollector()
collector.add_book_in_favorites('Какая-то книга')
assert collector.favorites == []
def test_delete_book_from_favorites_book_is_removed_when_present(self):
collector = BooksCollector()
collector.add_new_book('Дюна')
collector.add_book_in_favorites('Дюна')
collector.delete_book_from_favorites('Дюна')
assert 'Дюна' not in collector.favorites
def test_delete_book_from_favorites_does_nothing_if_book_not_in_favorites(self):
collector = BooksCollector()
collector.add_new_book('Оно')
collector.delete_book_from_favorites('Оно')
assert collector.favorites == []
def test_get_list_of_favorites_books_returns_favorites_list(self):
collector = BooksCollector()
collector.favorites = ['Дюна', 'Оно']
favorites = collector.get_list_of_favorites_books()
assert favorites is collector.favorites
assert favorites == ['Дюна', 'Оно']