From 7fdc39501734c28d6580ec82bfced64823d9be48 Mon Sep 17 00:00:00 2001 From: Vitaliy Gulevatiy Date: Tue, 4 Nov 2025 18:53:24 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=94=D0=B0=D0=B1=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20BooksCollector?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 22 +++++++- __pycache__/main.cpython-313.pyc | Bin 0 -> 3599 bytes tests.py | 87 ++++++++++++++++++++++++++++++- 3 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 __pycache__/main.cpython-313.pyc diff --git a/README.md b/README.md index 1cc701d..3ae04b4 100644 --- a/README.md +++ b/README.md @@ -1 +1,21 @@ -# qa_python \ No newline at end of file +# qa_python +# Тестирование класса BooksCollector + +## Реализованные тесты + +| Метод | Проверка | +|--------|-----------| +| `add_new_book` | Добавление книги, ограничение длины названия, уникальность | +| `set_book_genre` | Присвоение жанра и проверка валидности | +| `get_book_genre` | Возврат установленного жанра | +| `get_books_with_specific_genre` | Фильтрация по жанру | +| `get_books_genre` | Получение полного списка книг с жанрами | +| `get_books_for_children` | Исключение жанров с возрастным рейтингом | +| `add_book_in_favorites` | Добавление без повторов | +| `delete_book_from_favorites` | Удаление из избранного | +| `get_list_of_favorites_books` | Получение списка избранных книг | + +## Как запустить тесты + +```bash +pytest -v tests.py diff --git a/__pycache__/main.cpython-313.pyc b/__pycache__/main.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a1e73adc7c55bef28510a929e0814ef64f11c636 GIT binary patch literal 3599 zcmbVP-A@}w5Z^odh_Q|D1mw%cV6X`sBoGwRrX)f6pi(~+x8;I_TBPg6J{+sYCVM7n zA~kB$sv=6Hv{F&hs#1~KhwxO|CTW_cAAiDKDcHK#KIJVniu&4_JAYveQoF$1-p=ga z&ToD@v#d8Yxe2rvg6?EnBO!m`OQ|`Fo%KD?Ss;5z7m@B7RVH#j6^6aG1MWkenOp+10*LoK{iMn$Q@DxNSCw&WTWH)>6RKndL%bUujB#Q zBzdVX(Iomz->FRI9qn``l~QBb41I#%i3?^MF2hS`UrQJ6B!7b+9C{GPLl5e6m7w2RaK7 zig9?>w(&Cb70m>5xEQqF;$XZFg2lYWm24^&8he}_fhZ^dqGb142ziYSkpz((^}jj6 z^uR(1>j%R91Xq0`f-s5bpl~dR=}4$q(~(lsODx5Rna;E_qiX10C`5T2@hb7SoK`Q% zh_o4~L9tqioY78!03`XA9N%H^9XUR1@ZrU=94{KYcvra>UXK4Dt`3}dcy4XrM83Oc zek|v0GrVng&i>);dg>s9CmEd=DH1MLjT!dwZ~bi$3uIELhw@R-DIJ7NhQ_NS1f$q2 zE%*dldtigCMr(3LMaIC!rETK26P9=oIN3tifob8bQ?#fB=*{ ze6A&Iw1ihY;k(?A{_p%Ny+`xieH#%GkLjMU4M??9Wk8O=TK|uB5klKxa>>=*(5HJr zY>2-PD6*Y*8`YRlG+d(&2Ud7dcNIfh?Me9n{SNaM$RJ5WuBsQJ(lJq9fglQ7h8W^p zfBty+V8Mrq?QrqgLS70IG6(yb9iBWnGD%1r`e(eb7CVkftENpjN{2T@&H&{+Bm|Zv zM4c7#m>eXw8O>}^W@puOT;yynA&tzvc&0S@QZjp9)@IdMayl8aNn~-&bfexL&~WcS zxf1DuCEV*yH}}_Ya9e9Egc<@4L5u9uU7biwPXK-wxo`bT{*}<7e55xQ88#xrxyXnS z8Ci=QGlbA5&U{O7wPjzv^+2w5*k~PIKD*XB@;67ik3Vf70z|vl=54t)!8fpP9b`OB zTk*DpBV*&(1g3W8w{sF-amTI~?OVEQ={s>g9^ooh>aLE>n=4cCfweiHA{5ekRIHcJ ztEdEL(xOs$^58hGS<{XJ2o}AdfPw`U#+rt?%CdkIKEaG*vaV?pY!v}ViUedzz;QNk z-7tv)hwZdQvCN51JJUDY+?&o&Id(poic=`Xl>~>Iu8?h41@CHmvwKU}tIco|S`-AJ zAMDUw{(PV#7w9(v{kg!95g1wv9J>DM{8*lE&9w~~Z9}X4(6aj5m7lJxKKF87=*kJA zA&7S)Yr-HUIMAqXspHfV<%O+ z!cr`X7Veuf>rO157zMbZ$dxNlqz2TwR#-r^VGw|6RTY7{`_<^@qmXIyLhEhcr@oxf zZ3x|q@l~N8imT8E!W-EJxi?|SZIQFF0jt_p??lvMQz|zIirGNbnao9XGcNwPno_f> z4b3#o%v6CR)_}9M=^^-r76xGT(w6;uLFd7wkyyoJ? z4X(LvS)R$n=Tg}B%JPLdB~{e$vOJxnS~itTtLcm^QvoK^01BvIgm$68>mh~HLFhpg z2qJwR1!Ndv?v!OM3-|GutYot^d2SA_?6SN>?9JfKhGJ^B1R|(mO8l4npe#II+;oaG`>WVo?$P$-+fXqG(28-Ai4^ cY(GcoDHyZ9hT~5i48#1x9%0%G1cWu=UlgzUX8-^I literal 0 HcmV?d00001 diff --git a/tests.py b/tests.py index 383385e..572a344 100644 --- a/tests.py +++ b/tests.py @@ -21,4 +21,89 @@ def test_add_new_book_add_two_books(self): assert len(collector.get_books_rating()) == 2 # напиши свои тесты ниже - # чтобы тесты были независимыми в каждом из них создавай отдельный экземпляр класса BooksCollector() \ No newline at end of file + # чтобы тесты были независимыми в каждом из них создавай отдельный экземпляр класса BooksCollector() + from main import BooksCollector + + class TestBooksCollector: + + # ---------- add_new_book ---------- + + def test_add_new_book_invalid_name_not_added(self): + collector = BooksCollector() + collector.add_new_book('') # пустое имя не добавится + collector.add_new_book('A' * 41) # слишком длинное имя не добавится + + assert len(collector.get_books_genre()) == 0 + + def test_add_new_book_same_book_not_duplicated(self): + collector = BooksCollector() + collector.add_new_book('Гарри Поттер') + collector.add_new_book('Гарри Поттер') + + assert len(collector.get_books_genre()) == 1 + + # ---------- set_book_genre ---------- + + def test_set_book_genre_valid_genre(self): + collector = BooksCollector() + collector.add_new_book('Гарри Поттер') + collector.set_book_genre('Гарри Поттер', 'Фантастика') + + assert collector.get_book_genre('Гарри Поттер') == 'Фантастика' + + def test_set_book_genre_invalid_genre_not_set(self): + collector = BooksCollector() + collector.add_new_book('Гарри Поттер') + collector.set_book_genre('Гарри Поттер', 'Романтика') + + assert collector.get_book_genre('Гарри Поттер') == '' + + # ---------- get_books_with_specific_genre ---------- + + def test_get_books_with_specific_genre_returns_correct_books(self): + collector = BooksCollector() + collector.add_new_book('Гарри Поттер') + collector.add_new_book('Оно') + collector.set_book_genre('Гарри Поттер', 'Фантастика') + collector.set_book_genre('Оно', 'Ужасы') + + result = collector.get_books_with_specific_genre('Фантастика') + assert result == ['Гарри Поттер'] + + # ---------- get_books_for_children ---------- + + def test_get_books_for_children_excludes_adult_genres(self): + collector = BooksCollector() + collector.add_new_book('Оно') + collector.add_new_book('Шрек') + collector.set_book_genre('Оно', 'Ужасы') + collector.set_book_genre('Шрек', 'Мультфильмы') + + result = collector.get_books_for_children() + assert 'Оно' not in result + assert 'Шрек' in result + + # ---------- add_book_in_favorites ---------- + + def test_add_book_in_favorites_adds_once(self): + collector = BooksCollector() + collector.add_new_book('Шрек') + collector.add_book_in_favorites('Шрек') + collector.add_book_in_favorites('Шрек') # повторно не добавляется + + assert collector.get_list_of_favorites_books() == ['Шрек'] + + def test_add_book_in_favorites_not_existing_not_added(self): + collector = BooksCollector() + collector.add_book_in_favorites('Несуществующая книга') + assert collector.get_list_of_favorites_books() == [] + + # ---------- delete_book_from_favorites ---------- + + def test_delete_book_from_favorites_removes_book(self): + collector = BooksCollector() + collector.add_new_book('Шрек') + collector.add_book_in_favorites('Шрек') + collector.delete_book_from_favorites('Шрек') + + assert 'Шрек' not in collector.get_list_of_favorites_books() From b724e041042fb89d89b918b9857f46202a0db198 Mon Sep 17 00:00:00 2001 From: Vitaliy Gulevatiy Date: Thu, 6 Nov 2025 11:45:28 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=94=D0=B0=D0=B1=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20BooksCollector=20=D0=9F=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests.py | 140 ++++++++++++++++++++++--------------------------------- 1 file changed, 56 insertions(+), 84 deletions(-) diff --git a/tests.py b/tests.py index 572a344..c55dbe6 100644 --- a/tests.py +++ b/tests.py @@ -1,109 +1,81 @@ +import pytest from main import BooksCollector -# класс TestBooksCollector объединяет набор тестов, которыми мы покрываем наше приложение BooksCollector -# обязательно указывать префикс Test -class TestBooksCollector: +@pytest.fixture +def collector(): + return BooksCollector() - # пример теста: - # обязательно указывать префикс 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_rating()) == 2 - - # напиши свои тесты ниже - # чтобы тесты были независимыми в каждом из них создавай отдельный экземпляр класса BooksCollector() - from main import BooksCollector - - class TestBooksCollector: + class TestBooksCollector: # ---------- add_new_book ---------- +@pytest.mark.parametrize('name', ['', 'A' * 41]) +def test_add_new_book_invalid_name_not_added(self, collector, name): + collector.add_new_book(name) + assert collector.get_books_genre() == {} - def test_add_new_book_invalid_name_not_added(self): - collector = BooksCollector() - collector.add_new_book('') # пустое имя не добавится - collector.add_new_book('A' * 41) # слишком длинное имя не добавится - - assert len(collector.get_books_genre()) == 0 - - def test_add_new_book_same_book_not_duplicated(self): - collector = BooksCollector() - collector.add_new_book('Гарри Поттер') - collector.add_new_book('Гарри Поттер') - - assert len(collector.get_books_genre()) == 1 +def test_add_new_book_same_book_not_duplicated(self, collector): + collector.add_new_book('Гарри Поттер') + collector.add_new_book('Гарри Поттер') + assert collector.get_books_genre() == {'Гарри Поттер': ''} # ---------- set_book_genre ---------- - def test_set_book_genre_valid_genre(self): - collector = BooksCollector() - collector.add_new_book('Гарри Поттер') - collector.set_book_genre('Гарри Поттер', 'Фантастика') + def test_set_book_genre_valid_genre(self, collector): + collector.add_new_book('Гарри Поттер') + collector.set_book_genre('Гарри Поттер', 'Фантастика') + assert collector.get_book_genre('Гарри Поттер') == 'Фантастика' - assert collector.get_book_genre('Гарри Поттер') == 'Фантастика' - - def test_set_book_genre_invalid_genre_not_set(self): - collector = BooksCollector() - collector.add_new_book('Гарри Поттер') - collector.set_book_genre('Гарри Поттер', 'Романтика') - - assert collector.get_book_genre('Гарри Поттер') == '' +def test_set_book_genre_invalid_genre_not_set(self, collector): + collector.add_new_book('Гарри Поттер') + collector.set_book_genre('Гарри Поттер', 'Романтика') + assert collector.get_book_genre('Гарри Поттер') == '' # ---------- get_books_with_specific_genre ---------- - def test_get_books_with_specific_genre_returns_correct_books(self): - collector = BooksCollector() - collector.add_new_book('Гарри Поттер') - collector.add_new_book('Оно') - collector.set_book_genre('Гарри Поттер', 'Фантастика') - collector.set_book_genre('Оно', 'Ужасы') - - result = collector.get_books_with_specific_genre('Фантастика') - assert result == ['Гарри Поттер'] +def test_get_books_with_specific_genre_returns_correct_books(self, collector): + collector.add_new_book('Гарри Поттер') + collector.add_new_book('Оно') + collector.set_book_genre('Гарри Поттер', 'Фантастика') + collector.set_book_genre('Оно', 'Ужасы') + assert collector.get_books_with_specific_genre('Фантастика') == ['Гарри Поттер'] # ---------- get_books_for_children ---------- - def test_get_books_for_children_excludes_adult_genres(self): - collector = BooksCollector() - collector.add_new_book('Оно') - collector.add_new_book('Шрек') - collector.set_book_genre('Оно', 'Ужасы') - collector.set_book_genre('Шрек', 'Мультфильмы') - - result = collector.get_books_for_children() - assert 'Оно' not in result - assert 'Шрек' in result +def test_get_books_for_children_excludes_adult_genres(self, collector): + collector.add_new_book('Оно') + collector.add_new_book('Шрек') + collector.set_book_genre('Оно', 'Ужасы') + collector.set_book_genre('Шрек', 'Мультфильмы') + result = collector.get_books_for_children() + assert 'Оно' not in result + assert 'Шрек' in result # ---------- add_book_in_favorites ---------- - def test_add_book_in_favorites_adds_once(self): - collector = BooksCollector() - collector.add_new_book('Шрек') - collector.add_book_in_favorites('Шрек') - collector.add_book_in_favorites('Шрек') # повторно не добавляется +def test_add_book_in_favorites_adds_once(self, collector): + collector.add_new_book('Шрек') + collector.add_book_in_favorites('Шрек') + collector.add_book_in_favorites('Шрек') # повторно не добавляется + assert collector.get_list_of_favorites_books() == ['Шрек'] - assert collector.get_list_of_favorites_books() == ['Шрек'] +def test_add_book_in_favorites_not_existing_not_added(self): - def test_add_book_in_favorites_not_existing_not_added(self): - collector = BooksCollector() - collector.add_book_in_favorites('Несуществующая книга') - assert collector.get_list_of_favorites_books() == [] + collector.add_book_in_favorites('Несуществующая книга') + assert collector.get_list_of_favorites_books() == [] # ---------- delete_book_from_favorites ---------- - def test_delete_book_from_favorites_removes_book(self): - collector = BooksCollector() - collector.add_new_book('Шрек') - collector.add_book_in_favorites('Шрек') - collector.delete_book_from_favorites('Шрек') +def test_delete_book_from_favorites_removes_book(self, collector): + + collector.add_new_book('Шрек') + collector.add_book_in_favorites('Шрек') + collector.delete_book_from_favorites('Шрек') + assert 'Шрек' not in collector.get_list_of_favorites_books() + + # ---------- get_list_of_favorites_books ---------- - assert 'Шрек' not in collector.get_list_of_favorites_books() +def test_get_list_of_favorites_books_returns_correct_list(self, collector): + collector.add_new_book('Шрек') + collector.add_new_book('Гарри Поттер') + collector.add_book_in_favorites('Шрек') + assert collector.get_list_of_favorites_books() == ['Шрек'] \ No newline at end of file From 651204486d2b93056984120459ef824ab5500d64 Mon Sep 17 00:00:00 2001 From: Vitaliy Gulevatiy Date: Sat, 8 Nov 2025 21:22:33 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=94=D0=B0=D0=B1=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20BooksCollector=20=D0=9F=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8=20v2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conftest.py | 7 +++ tests.py | 130 ++++++++++++++++++++++++++++------------------------ 2 files changed, 77 insertions(+), 60 deletions(-) create mode 100644 conftest.py diff --git a/conftest.py b/conftest.py new file mode 100644 index 0000000..1a4f491 --- /dev/null +++ b/conftest.py @@ -0,0 +1,7 @@ +import pytest +from main import BooksCollector + + +@pytest.fixture +def collector(): + return BooksCollector() diff --git a/tests.py b/tests.py index c55dbe6..67aaa64 100644 --- a/tests.py +++ b/tests.py @@ -1,81 +1,91 @@ import pytest -from main import BooksCollector -@pytest.fixture -def collector(): - return BooksCollector() +class TestBooksCollector: + # ---------- add_new_book ---------- - class TestBooksCollector: - # ---------- add_new_book ---------- -@pytest.mark.parametrize('name', ['', 'A' * 41]) -def test_add_new_book_invalid_name_not_added(self, collector, name): - collector.add_new_book(name) - assert collector.get_books_genre() == {} + @pytest.mark.parametrize('name', ['', 'A' * 41]) + def test_add_new_book_invalid_name_not_added(self, collector, name): + collector.add_new_book(name) + assert collector.get_books_genre() == {} -def test_add_new_book_same_book_not_duplicated(self, collector): - collector.add_new_book('Гарри Поттер') - collector.add_new_book('Гарри Поттер') - assert collector.get_books_genre() == {'Гарри Поттер': ''} + def test_add_new_book_same_book_not_duplicated(self, collector): + collector.add_new_book('Гарри Поттер') + collector.add_new_book('Гарри Поттер') + assert collector.get_books_genre() == {'Гарри Поттер': ''} - # ---------- set_book_genre ---------- + # ---------- set_book_genre ---------- - def test_set_book_genre_valid_genre(self, collector): - collector.add_new_book('Гарри Поттер') - collector.set_book_genre('Гарри Поттер', 'Фантастика') - assert collector.get_book_genre('Гарри Поттер') == 'Фантастика' + def test_set_book_genre_valid_genre(self, collector): + collector.add_new_book('Гарри Поттер') + collector.set_book_genre('Гарри Поттер', 'Фантастика') + assert collector.get_book_genre('Гарри Поттер') == 'Фантастика' -def test_set_book_genre_invalid_genre_not_set(self, collector): - collector.add_new_book('Гарри Поттер') - collector.set_book_genre('Гарри Поттер', 'Романтика') - assert collector.get_book_genre('Гарри Поттер') == '' + def test_set_book_genre_invalid_genre_not_set(self, collector): + collector.add_new_book('Гарри Поттер') + collector.set_book_genre('Гарри Поттер', 'Романтика') + assert collector.get_book_genre('Гарри Поттер') == '' - # ---------- get_books_with_specific_genre ---------- + # ---------- get_books_with_specific_genre ---------- -def test_get_books_with_specific_genre_returns_correct_books(self, collector): - collector.add_new_book('Гарри Поттер') - collector.add_new_book('Оно') - collector.set_book_genre('Гарри Поттер', 'Фантастика') - collector.set_book_genre('Оно', 'Ужасы') - assert collector.get_books_with_specific_genre('Фантастика') == ['Гарри Поттер'] + def test_get_books_with_specific_genre_returns_correct_books(self, collector): + collector.add_new_book('Гарри Поттер') + collector.add_new_book('Оно') + collector.set_book_genre('Гарри Поттер', 'Фантастика') + collector.set_book_genre('Оно', 'Ужасы') + assert collector.get_books_with_specific_genre('Фантастика') == ['Гарри Поттер'] - # ---------- get_books_for_children ---------- + # ---------- get_books_for_children ---------- -def test_get_books_for_children_excludes_adult_genres(self, collector): - collector.add_new_book('Оно') - collector.add_new_book('Шрек') - collector.set_book_genre('Оно', 'Ужасы') - collector.set_book_genre('Шрек', 'Мультфильмы') - result = collector.get_books_for_children() - assert 'Оно' not in result - assert 'Шрек' in result + def test_get_books_for_children_excludes_adult_genres(self, collector): + collector.add_new_book('Оно') + collector.add_new_book('Шрек') + collector.set_book_genre('Оно', 'Ужасы') + collector.set_book_genre('Шрек', 'Мультфильмы') + result = collector.get_books_for_children() + assert 'Оно' not in result + assert 'Шрек' in result - # ---------- add_book_in_favorites ---------- + # ---------- add_book_in_favorites ---------- -def test_add_book_in_favorites_adds_once(self, collector): - collector.add_new_book('Шрек') - collector.add_book_in_favorites('Шрек') - collector.add_book_in_favorites('Шрек') # повторно не добавляется - assert collector.get_list_of_favorites_books() == ['Шрек'] + def test_add_book_in_favorites_adds_once(self, collector): + collector.add_new_book('Шрек') + collector.add_book_in_favorites('Шрек') + collector.add_book_in_favorites('Шрек') # повторно не добавляется + assert collector.get_list_of_favorites_books() == ['Шрек'] -def test_add_book_in_favorites_not_existing_not_added(self): + def test_add_book_in_favorites_not_existing_not_added(self, collector): + collector.add_book_in_favorites('Несуществующая книга') + assert collector.get_list_of_favorites_books() == [] - collector.add_book_in_favorites('Несуществующая книга') - assert collector.get_list_of_favorites_books() == [] + # ---------- delete_book_from_favorites ---------- - # ---------- delete_book_from_favorites ---------- + def test_delete_book_from_favorites_removes_book(self, collector): -def test_delete_book_from_favorites_removes_book(self, collector): + collector.add_new_book('Шрек') + collector.add_book_in_favorites('Шрек') + collector.delete_book_from_favorites('Шрек') + assert 'Шрек' not in collector.get_list_of_favorites_books() - collector.add_new_book('Шрек') - collector.add_book_in_favorites('Шрек') - collector.delete_book_from_favorites('Шрек') - assert 'Шрек' not in collector.get_list_of_favorites_books() + # ---------- get_list_of_favorites_books ---------- - # ---------- get_list_of_favorites_books ---------- + def test_get_list_of_favorites_books_returns_correct_list(self, collector): + collector.add_new_book('Шрек') + collector.add_new_book('Гарри Поттер') + collector.add_book_in_favorites('Шрек') + assert collector.get_list_of_favorites_books() == ['Шрек'] -def test_get_list_of_favorites_books_returns_correct_list(self, collector): - collector.add_new_book('Шрек') - collector.add_new_book('Гарри Поттер') - collector.add_book_in_favorites('Шрек') - assert collector.get_list_of_favorites_books() == ['Шрек'] \ No newline at end of file + # ---------- get_books_genre ---------- + + def test_get_books_genre_returns_all_books(self, collector): + collector.add_new_book('Шрек') + collector.add_new_book('Гарри Поттер') + expected = {'Шрек': '', 'Гарри Поттер': ''} + assert collector.get_books_genre() == expected + + # ---------- get_book_genre ---------- + + def test_get_book_genre_returns_correct_genre(self, collector): + collector.add_new_book('Шрек') + collector.set_book_genre('Шрек', 'Мультфильмы') + assert collector.get_book_genre('Шрек') == 'Мультфильмы'