From 420fafe168afcbc5ff3fdc961ddfaf7a575ac284 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Tue, 20 Jun 2023 13:41:06 +0300 Subject: [PATCH] Add formatter tests for Company, Category, Item models. --- tests/fmt/test_category_formatter.py | 78 ++++++++++++++++++++++++++++ tests/fmt/test_company_formatter.py | 30 +++++++++++ tests/fmt/test_item_formatter.py | 38 ++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 tests/fmt/test_category_formatter.py create mode 100644 tests/fmt/test_company_formatter.py create mode 100644 tests/fmt/test_item_formatter.py diff --git a/tests/fmt/test_category_formatter.py b/tests/fmt/test_category_formatter.py new file mode 100644 index 0000000..c857ab7 --- /dev/null +++ b/tests/fmt/test_category_formatter.py @@ -0,0 +1,78 @@ +import pytest +from src.fmt.category_formatter import CategoryFormatter + +def test_category_format(): + category = { + 'name': 'Напої' + } + + formatter = CategoryFormatter() + + category_fmt = formatter.format(category) + + assert '#### Напої\n' == category_fmt + +def test_format_categories_with_no_items(): + categories = {'data': [ + {'name': 'Піци'}, + {'name': 'Напої'}, + ]} + + expected_format = "".join([ + "# Категорії\n\n", + "#### Піци\n", + "#### Напої\n", + ]) + + formatter = CategoryFormatter() + + categories_fmt = formatter.format_all(categories) + + assert expected_format == categories_fmt + +def test_format_categories_with_items(): + categories = {'data': [ + { + 'name': 'Піци', + 'items': [ + { + 'name': 'Піца Поло', + 'price': 99.99, + }, + { + 'name': 'Піца Чотири Сири', + 'price': 89.99, + }, + ] + }, + { + 'name': 'Напої', + 'items': [ + { + 'name': 'Чай', + 'price': 39.99, + }, + { + 'name': 'Кава', + 'price': 49.99, + }, + ] + }, + ]} + + expected_format = "".join([ + "# Категорії\n\n", + "#### Піци\n", + "- Піца Поло - 99.99 ₴\n", + "- Піца Чотири Сири - 89.99 ₴\n", + "#### Напої\n", + "- Чай - 39.99 ₴\n", + "- Кава - 49.99 ₴\n", + ]) + + formatter = CategoryFormatter() + + categories_fmt = formatter.format_all(categories) + + assert expected_format == categories_fmt + diff --git a/tests/fmt/test_company_formatter.py b/tests/fmt/test_company_formatter.py new file mode 100644 index 0000000..e65f542 --- /dev/null +++ b/tests/fmt/test_company_formatter.py @@ -0,0 +1,30 @@ +import pytest +from src.fmt.company_formatter import CompanyFormatter + +def test_company_format(): + company = {'name': 'Pizza company'} + + formatter = CompanyFormatter() + + company_fmt = formatter.format(company) + + assert '- Pizza company\n' == company_fmt + +def test_format_companies(): + companies = {'data': [ + {'name': 'Pizza company'}, + {'name': 'Donuts company'} + ]} + + expected_format = "".join([ + "# Компанії\n\n", + "- Pizza company\n", + "- Donuts company\n", + ]) + + formatter = CompanyFormatter() + + companies_fmt = formatter.format_all(companies) + + assert expected_format == companies_fmt + diff --git a/tests/fmt/test_item_formatter.py b/tests/fmt/test_item_formatter.py new file mode 100644 index 0000000..ca65a2d --- /dev/null +++ b/tests/fmt/test_item_formatter.py @@ -0,0 +1,38 @@ +import pytest +from src.fmt.item_formatter import ItemFormatter + +def test_item_format(): + item = { + 'name': 'Піца', + 'price': 99.99, + } + + formatter = ItemFormatter() + + item_fmt = formatter.format(item) + + assert '- Піца - 99.99 ₴\n' == item_fmt + +def test_format_items(): + items = {'data': [ + { + 'name': 'Піца', + 'price': 99.99, + }, + { + 'name': 'Чай', + 'price': 9.99, + }, + ]} + + expected_format = "".join([ + '- Піца - 99.99 ₴\n', + '- Чай - 9.99 ₴\n', + ]) + + formatter = ItemFormatter() + + items_fmt = formatter.format_all(items) + + assert expected_format == items_fmt +