You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
1.8 KiB
79 lines
1.8 KiB
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
|
|
|