From 9b556e9aba95d184e812007b8812e07049e04215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= Date: Fri, 24 Jul 2026 18:54:07 +0500 Subject: [PATCH 1/3] BooksCollector and README --- README.md | 32 +++++- __pycache__/main.cpython-313.pyc | Bin 0 -> 3594 bytes .../tests.cpython-313-pytest-7.4.3.pyc | Bin 0 -> 15542 bytes tests.py | 97 +++++++++++++++--- 4 files changed, 112 insertions(+), 17 deletions(-) create mode 100644 __pycache__/main.cpython-313.pyc create mode 100644 __pycache__/tests.cpython-313-pytest-7.4.3.pyc diff --git a/README.md b/README.md index 1cc701d..1a77140 100644 --- a/README.md +++ b/README.md @@ -1 +1,31 @@ -# qa_python \ No newline at end of file +# qa_python + +## Тестовое покрытие BooksCollector + +Проект содержит набор юнит-тестов для проверки функциональности приложения BooksCollector — системы управления коллекцией книг с возможностью установки жанра и добавления в избранное. + +### Список реализованных тестов + +**test_initial_state** — проверяет, что только что созданный объект BooksCollector содержит пустой словарь книг и пустой список избранного. Убеждаемся, что начальное состояние класса корректно. + +**test_add_new_book_correct_add_book_successful_add** — добавляет книгу с корректным названием и проверяет, что она появляется в словаре books_genre с пустым жанром (по умолчанию жанр не указан). + +**test_add_new_book_incorrect_add_book_unsuccessful_add** — параметризованный тест, проверяющий граничные случаи: нельзя добавить книгу с пустой строкой (0 символов) или названием длиннее 40 символов. Валидное название успешно добавляется. + +**test_set_book_genre_correct_genre_success** — добавляет книгу и устанавливает ей жанр из допустимого списка. Проверяет, что жанр успешно присвоен книге. + +**test_set_book_genre_incorrect_genre_unsuccess** — пытается установить книге жанр, которого нет в списке разрешённых. Проверяет, что жанр не изменился (остался пустым), а метод отработал без ошибок. + +**test_get_book_genre** — добавляет книгу, задаёт ей конкретный жанр и проверяет, что метод get_book_genre возвращает именно тот жанр, который был установлен ранее. + +**test_get_books_with_specific_genre** — создаёт несколько книг, присваивает им одинаковый жанр «Ужасы» и одну книгу с другим жанром. Убеждаемся, что фильтрация по жанру возвращает только книги с искомым жанром. + +**test_get_books_genre** — проверяет, что метод get_books_genre возвращает актуальный словарь со всеми добавленными книгами и их жанрами. + +**test_get_books_for_children** — добавляет две книги: одну с жанром без возрастного рейтинга («Фантастика»), другую — с возрастным рейтингом («Ужасы»). Проверяет, что в список для детей попадает только книга, не имеющая возрастных ограничений. + +**test_add_book_in_favorites** — добавляет книгу в словарь, затем в избранное. Проверяет, что она появляется в списке избранных книг. + +**test_delete_book_from_favorites** — добавляет книгу в избранное, затем удаляет её оттуда. Убеждаемся, что список избранного становится пустым. + +**test_get_list_of_favorites_books** — добавляет две книги в избранное и проверяет, что метод возвращает корректный список, содержащий обе добавленные книги. diff --git a/__pycache__/main.cpython-313.pyc b/__pycache__/main.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7881fc7bc1b914231324ded5e21a7c0cc6d547ac GIT binary patch literal 3594 zcmbVP-A@}w5Z^odh_Q|D1mw%cU~H3ckU&tJHX;ei2bKDv(3T4lY9n1Q_Te}+HrX?Y z5~)#}RuxeqrIm`3R+Wm>K7^;zHc8Vo{rD5^O2O8>_9<_vQPkJY-1!S*klF?2_I76X zc7F5QnPsh|#Z91Hn2ulQXeQ(@d?`0)sk62VI`d=~2@{FP6_V{E< zFKcf=XP%rTl#vK!C5AdA)=#KYa)9I{C&(s=1G!CV0_l>rfozssAl*_kNRQ+O>6JVn zTO=>_C0j(F={uRtzN?+erqgOXm!(hfd-3u|@!PmH2mGy#f|w@<$OK74&u)YGR5uiL=Lnzvwf@i= zy!pHpUq90yfc}C0*s}WGxH-E6hrcvF)PFW^8P|=EU^4XdC!q47>I?l>{Rzyt4~j>$ z35Mu45Q|RJa}FJrlWK;lX7iMCDN9p1RWmtzM6e#Rl2m1?1f#96;PuH%( z?!cV$me1V&9z5KI?*01UDLphg=Uj0G*T9m*E2zQ?Qpt+SUFgh16vp9M-^MGbS2YvN zp;EkhOM{6%h!gWRSGK8IXzVd|7y_UGev;j5Bjj~9M3O{uH2&rUvlkXhT0ao!r?~1< z5rj!Z2Za+sOh;19nU1uYS!5{&%XDUxX;nk_LLtiIh*wD@y7BN9R@tju(3N&W+~19fr5#?wLQl z;b#sqc!JS+ks{aPwU}Wa|JL3CF;6CiMkpTvozg|fWN5rLLNJQW(t=N*wFlP8TC^6K zF_Eq-dsshMiSnL1ME=p)8OfI{+6Z&*Fh;{Mz0Y$d*ZoL|F ziH2)5;J`93>aJ2~YdxtPpx0VIn?x4ZOgHN70S)&Klq-`iSjN5KbaP)F z2e-7w8mJ-Q5VYtX-PMi6^aS8{f&13K=wA*UEJSjy-E40z|vl=53`c!8fpP9b`OBoAI`cBV*&(0;YD- zw{sF-b;m9hotwIA>AP`09^o2R>aMPho2yXqp|v@nBGk}ERBV*bYp4Wg(xOsi^1wK* zS=WvL2o}Adc7g@g#JYyL%CdkIKEaG*vaV|rYz+a2O9W)fz;QNkJury^hwZdQvCN51 zJJYw?+?&c$IetEsPEe@A)dYu|u99s>74KSmvu9J-Yt3*I+878xKiH+a{DnYQKG1Ij z`tyMyBQUfYIC$f=xzPgOp6?hkI)+yGp(XXVt3O>`dEu3U5Y7vtA&B>)tHK~qt0RWg z3Ij>ENQqbBV_VjUeVZl_h>X%A|Nb;?u>jovh3+Dc!k?zH^%bbZo}KX5MA-^ML@zE6TyGXQdX4fvs3_2O**CJ zZvap9ui;Pw^0VDcQao%V{j*q8|aU*V!BP_&}3?xn7ywx1*PB#c>K!|`Vh QhGG6;4>O%b0>YZ`FEVNP*Z=?k literal 0 HcmV?d00001 diff --git a/__pycache__/tests.cpython-313-pytest-7.4.3.pyc b/__pycache__/tests.cpython-313-pytest-7.4.3.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fa6f4223847e33e9cb3691bfb48a7f77fed5a6ca GIT binary patch literal 15542 zcmeHOU2q%K72cJ0rIjo@iIdO}0ufF^qM5|8<)1hqPV=8M6jQtwN$bF($g-m%YsFoO z5Ep1541_5|f2K_PKs$8Whxjd>7D!2<(}&LVt*chV%(fjrv@;BE!70-jo_fyR-MhQ; z%94|~gid#)qkHe(|K0nY@0@#ey|p#U!S#p9%r`H$aoj&JVqbz4xPBM{uX8dd^AB)@ zr@w(?K`jvHjtNAJn|DGa1a|@tgpWx?igRnY4o(iPj=W%ulE6!`6&dhf6`S+0_t+S9>0 zTM)W9btEP3I?8eCxcbxBG-LQEFrP%75NV@&*5x(+D4r9FKm{pT}{@o`r_bBhqxvsGU=mtmn}t zN91U#&3YblzRzQsT`KNg53B6w<@~}s7m!2wwrdA^3{$mEap0NJ7K(USFb> zAR-&fYUaSW3lr*e#)$4Mo`tTJlr%9`D4BFVuaIn!WYo!Gnq-X_+*VGNbNN!Ppc$dO z3OO`mjiQ}a%lR>yRhh`Er_y<)kei?tmH+v}}HyAQl@f*a>sY-R?+_JJRQl47ejZ+>tJG zNLFpVo>;#pw$l?EFk|LWx~*EQSkiqj+3kt-cw$z2X1Qd))(*pq&%2Bb2X~!(GOfUq zIjt6yUQZYwmeyH3YqZnHmMi2+IhcK|lrCkBO(XMkcjx?UsJykSAkJ}rTh;NGRU0ov zW~Eaz{}Z38bm}^c%*$3#-%z&l2&^A}wgPMebJSci)7_xWeECQLXq=h^yki=;AjkoS z)7Tnt?4M0&z#!!#f`^ZYw;>-9UFh%6M*=qLH_XZAtzpg^VJ@Lgk?OIq9G0b2*wSOt zC}S?JR{eD%)8zJuEIsDZVZ|)ytjN%(NEh|*>F?;jten^1)h`(w!8dQ3pBk~0SFIKU zU^kN>V5tw#2TY4GC1zu>LM-B5Wx%0APc@2H!!) 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 T-1>iqMtJ^FevYF*w4eV04&d&( literal 0 HcmV?d00001 diff --git a/tests.py b/tests.py index 383385e..5484ccc 100644 --- a/tests.py +++ b/tests.py @@ -1,24 +1,89 @@ +import pytest from main import BooksCollector -# класс TestBooksCollector объединяет набор тестов, которыми мы покрываем наше приложение BooksCollector -# обязательно указывать префикс Test + class TestBooksCollector: - # пример теста: - # обязательно указывать префикс test_ - # дальше идет название метода, который тестируем add_new_book_ - # затем, что тестируем add_two_books - добавление двух книг - def test_add_new_book_add_two_books(self): - # создаем экземпляр (объект) класса BooksCollector + def test_initial_state(self): + collector = BooksCollector() + assert collector.get_books_genre() == {} and collector.get_list_of_favorites_books() == [] + + def test_add_new_book_correct_add_book_successful_add(self): + collector = BooksCollector() + collector.add_new_book('Азбука') + assert collector.get_book_genre('Азбука') == '' + + @pytest.mark.parametrize("name, expected_count", [ + ('Азбука', 1), + ('', 0), + ('Азбука' * 10, 0) + ]) + def test_add_new_book_incorrect_add_book_unsuccessful_add(self, name, expected_count): + collector = BooksCollector() + collector.add_new_book(name) + assert len(collector.get_books_genre()) == expected_count + + def test_set_book_genre_correct_genre_success(self): + collector = BooksCollector() + collector.add_new_book('Азбука') + collector.set_book_genre('Азбука', 'Ужасы') + assert collector.books_genre['Азбука'] == 'Ужасы' + + def test_set_book_genre_incorrect_genre_unsuccess(self): + collector = BooksCollector() + collector.add_new_book('Азбука') + collector.set_book_genre('Азбука', 'FFFFFF') + assert collector.books_genre['Азбука'] == '' + + def test_get_book_genre(self): collector = BooksCollector() + collector.add_new_book('Азбука') + collector.set_book_genre('Азбука', 'Ужасы') + assert collector.get_book_genre('Азбука') == 'Ужасы' - # добавляем две книги - collector.add_new_book('Гордость и предубеждение и зомби') - collector.add_new_book('Что делать, если ваш кот хочет вас убить') + def test_get_books_with_specific_genre(self): + collector = BooksCollector() + books = ['Азбука', 'Алгебра', 'Маленький принц'] + for book in books: + collector.add_new_book(book) + collector.set_book_genre(book, 'Ужасы') + + collector.add_new_book('Ну погоди') + collector.set_book_genre('Ну погоди', 'Мультфильмы') + + assert collector.get_books_with_specific_genre('Ужасы') == books + + def test_get_books_genre(self): + collector = BooksCollector() + collector.add_new_book('Азбука') + assert collector.get_books_genre() == {'Азбука': ''} + + def test_get_books_for_children(self): + collector = BooksCollector() + collector.add_new_book('Детская') + collector.add_new_book('Взрослая') + collector.set_book_genre('Детская', 'Фантастика') + collector.set_book_genre('Взрослая', 'Ужасы') - # проверяем, что добавилось именно две - # словарь books_rating, который нам возвращает метод get_books_rating, имеет длину 2 - assert len(collector.get_books_rating()) == 2 + assert collector.get_books_for_children() == ['Детская'] - # напиши свои тесты ниже - # чтобы тесты были независимыми в каждом из них создавай отдельный экземпляр класса BooksCollector() \ No newline at end of file + def test_add_book_in_favorites(self): + collector = BooksCollector() + collector.add_new_book('Азбука') + collector.add_book_in_favorites('Азбука') + assert collector.get_list_of_favorites_books() == ['Азбука'] + + def test_delete_book_from_favorites(self): + collector = BooksCollector() + collector.add_new_book('Азбука') + collector.add_book_in_favorites('Азбука') + collector.delete_book_from_favorites('Азбука') + assert collector.get_list_of_favorites_books() == [] + + def test_get_list_of_favorites_books(self): + collector = BooksCollector() + collector.add_new_book('Азбука') + collector.add_new_book('Алгебра') + collector.add_book_in_favorites('Азбука') + collector.add_book_in_favorites('Алгебра') + assert collector.get_list_of_favorites_books() == ['Азбука', 'Алгебра'] \ No newline at end of file From 6383f693dcfd706afb13b8af2578aa7a25116905 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= Date: Fri, 24 Jul 2026 20:35:29 +0500 Subject: [PATCH 2/3] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests.py | 68 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 22 deletions(-) diff --git a/tests.py b/tests.py index 5484ccc..85c9b00 100644 --- a/tests.py +++ b/tests.py @@ -4,44 +4,63 @@ class TestBooksCollector: - def test_initial_state(self): + # Проверка начального состояния словаря книг + def test_initial_state_books_genre_empty(self): collector = BooksCollector() - assert collector.get_books_genre() == {} and collector.get_list_of_favorites_books() == [] + assert collector.get_books_genre() == {} - def test_add_new_book_correct_add_book_successful_add(self): + # Проверка начального состояния списка избранного + def test_initial_state_favorites_empty(self): + collector = BooksCollector() + assert collector.get_list_of_favorites_books() == [] + + # Проверка добавления книги — она появляется в словаре с пустым жанром + def test_add_new_book_added_book_has_empty_genre(self): collector = BooksCollector() collector.add_new_book('Азбука') assert collector.get_book_genre('Азбука') == '' - @pytest.mark.parametrize("name, expected_count", [ - ('Азбука', 1), - ('', 0), - ('Азбука' * 10, 0) - ]) - def test_add_new_book_incorrect_add_book_unsuccessful_add(self, name, expected_count): + # Проверка, что книга с корректным названием добавляется + def test_add_new_book_valid_name_added(self): + collector = BooksCollector() + collector.add_new_book('Азбука') + assert len(collector.get_books_genre()) == 1 + + # Проверка, что книга с пустым названием не добавляется + def test_add_new_book_empty_name_not_added(self): + collector = BooksCollector() + collector.add_new_book('') + assert len(collector.get_books_genre()) == 0 + + # Проверка, что книга с названием длиннее 40 символов не добавляется + def test_add_new_book_too_long_name_not_added(self): collector = BooksCollector() - collector.add_new_book(name) - assert len(collector.get_books_genre()) == expected_count + collector.add_new_book('Азбука' * 10) + assert len(collector.get_books_genre()) == 0 - def test_set_book_genre_correct_genre_success(self): + # Установка жанра из допустимого списка + def test_set_book_genre_valid_genre_set(self): collector = BooksCollector() collector.add_new_book('Азбука') collector.set_book_genre('Азбука', 'Ужасы') - assert collector.books_genre['Азбука'] == 'Ужасы' + assert collector.get_book_genre('Азбука') == 'Ужасы' - def test_set_book_genre_incorrect_genre_unsuccess(self): + # Установка жанра не из списка — жанр остаётся пустым + def test_set_book_genre_invalid_genre_not_set(self): collector = BooksCollector() collector.add_new_book('Азбука') collector.set_book_genre('Азбука', 'FFFFFF') - assert collector.books_genre['Азбука'] == '' + assert collector.get_book_genre('Азбука') == '' - def test_get_book_genre(self): + # Получение жанра книги + def test_get_book_genre_returns_correct_genre(self): collector = BooksCollector() collector.add_new_book('Азбука') collector.set_book_genre('Азбука', 'Ужасы') assert collector.get_book_genre('Азбука') == 'Ужасы' - def test_get_books_with_specific_genre(self): + # Получение книг с определённым жанром + def test_get_books_with_specific_genre_returns_correct_books(self): collector = BooksCollector() books = ['Азбука', 'Алгебра', 'Маленький принц'] for book in books: @@ -53,12 +72,14 @@ def test_get_books_with_specific_genre(self): assert collector.get_books_with_specific_genre('Ужасы') == books - def test_get_books_genre(self): + # Получение словаря books_genre + def test_get_books_genre_returns_dict_with_added_book(self): collector = BooksCollector() collector.add_new_book('Азбука') assert collector.get_books_genre() == {'Азбука': ''} - def test_get_books_for_children(self): + # Книги для детей — только без возрастного рейтинга + def test_get_books_for_children_excludes_age_rated_genres(self): collector = BooksCollector() collector.add_new_book('Детская') collector.add_new_book('Взрослая') @@ -67,20 +88,23 @@ def test_get_books_for_children(self): assert collector.get_books_for_children() == ['Детская'] - def test_add_book_in_favorites(self): + # Добавление книги в избранное + def test_add_book_in_favorites_adds_to_list(self): collector = BooksCollector() collector.add_new_book('Азбука') collector.add_book_in_favorites('Азбука') assert collector.get_list_of_favorites_books() == ['Азбука'] - def test_delete_book_from_favorites(self): + # Удаление книги из избранного + def test_delete_book_from_favorites_removes_from_list(self): collector = BooksCollector() collector.add_new_book('Азбука') collector.add_book_in_favorites('Азбука') collector.delete_book_from_favorites('Азбука') assert collector.get_list_of_favorites_books() == [] - def test_get_list_of_favorites_books(self): + # Получение списка избранных книг + def test_get_list_of_favorites_books_returns_all_favorites(self): collector = BooksCollector() collector.add_new_book('Азбука') collector.add_new_book('Алгебра') From 62754673aa552941ef62aaae7021166291961e74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= Date: Fri, 24 Jul 2026 20:48:57 +0500 Subject: [PATCH 3/3] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D0=BE=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests.py | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/tests.py b/tests.py index 85c9b00..6a7c012 100644 --- a/tests.py +++ b/tests.py @@ -4,62 +4,52 @@ class TestBooksCollector: - # Проверка начального состояния словаря книг def test_initial_state_books_genre_empty(self): collector = BooksCollector() assert collector.get_books_genre() == {} - # Проверка начального состояния списка избранного def test_initial_state_favorites_empty(self): collector = BooksCollector() assert collector.get_list_of_favorites_books() == [] - # Проверка добавления книги — она появляется в словаре с пустым жанром def test_add_new_book_added_book_has_empty_genre(self): collector = BooksCollector() collector.add_new_book('Азбука') assert collector.get_book_genre('Азбука') == '' - # Проверка, что книга с корректным названием добавляется def test_add_new_book_valid_name_added(self): collector = BooksCollector() collector.add_new_book('Азбука') assert len(collector.get_books_genre()) == 1 - # Проверка, что книга с пустым названием не добавляется def test_add_new_book_empty_name_not_added(self): collector = BooksCollector() collector.add_new_book('') assert len(collector.get_books_genre()) == 0 - # Проверка, что книга с названием длиннее 40 символов не добавляется def test_add_new_book_too_long_name_not_added(self): collector = BooksCollector() collector.add_new_book('Азбука' * 10) assert len(collector.get_books_genre()) == 0 - # Установка жанра из допустимого списка def test_set_book_genre_valid_genre_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 = BooksCollector() collector.add_new_book('Азбука') collector.set_book_genre('Азбука', 'FFFFFF') assert collector.get_book_genre('Азбука') == '' - # Получение жанра книги def test_get_book_genre_returns_correct_genre(self): collector = BooksCollector() collector.add_new_book('Азбука') collector.set_book_genre('Азбука', 'Ужасы') assert collector.get_book_genre('Азбука') == 'Ужасы' - # Получение книг с определённым жанром def test_get_books_with_specific_genre_returns_correct_books(self): collector = BooksCollector() books = ['Азбука', 'Алгебра', 'Маленький принц'] @@ -72,13 +62,11 @@ def test_get_books_with_specific_genre_returns_correct_books(self): assert collector.get_books_with_specific_genre('Ужасы') == books - # Получение словаря books_genre def test_get_books_genre_returns_dict_with_added_book(self): collector = BooksCollector() collector.add_new_book('Азбука') assert collector.get_books_genre() == {'Азбука': ''} - # Книги для детей — только без возрастного рейтинга def test_get_books_for_children_excludes_age_rated_genres(self): collector = BooksCollector() collector.add_new_book('Детская') @@ -88,14 +76,12 @@ def test_get_books_for_children_excludes_age_rated_genres(self): assert collector.get_books_for_children() == ['Детская'] - # Добавление книги в избранное def test_add_book_in_favorites_adds_to_list(self): collector = BooksCollector() collector.add_new_book('Азбука') collector.add_book_in_favorites('Азбука') assert collector.get_list_of_favorites_books() == ['Азбука'] - # Удаление книги из избранного def test_delete_book_from_favorites_removes_from_list(self): collector = BooksCollector() collector.add_new_book('Азбука') @@ -103,7 +89,6 @@ def test_delete_book_from_favorites_removes_from_list(self): collector.delete_book_from_favorites('Азбука') assert collector.get_list_of_favorites_books() == [] - # Получение списка избранных книг def test_get_list_of_favorites_books_returns_all_favorites(self): collector = BooksCollector() collector.add_new_book('Азбука')