diff --git a/src/fmt/__init__.py b/src/fmt/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/fmt/__init__.py @@ -0,0 +1 @@ + diff --git a/src/fmt/abstract_formatter.py b/src/fmt/abstract_formatter.py new file mode 100644 index 0000000..48a8c66 --- /dev/null +++ b/src/fmt/abstract_formatter.py @@ -0,0 +1,11 @@ +from abc import ABC, abstractmethod + +class AbstractFormatter(ABC): + @abstractmethod + def format(self, obj) -> str: + pass + + @abstractmethod + def format_all(self, objs) -> str: + pass + diff --git a/src/fmt/city_formatter.py b/src/fmt/city_formatter.py new file mode 100644 index 0000000..9ed0437 --- /dev/null +++ b/src/fmt/city_formatter.py @@ -0,0 +1,16 @@ +from src.fmt.abstract_formatter import AbstractFormatter + +class CityFormatter(AbstractFormatter): + def format(self, city) -> str: + name = city['name'] + return f"- {name}\n" + + def format_all(self, cities: dict) -> str: + formated_message = "Cities:\n\n" + + for city in cities['data']: + formated_item = self.format(city) + formated_message += formated_item + + return formated_message + diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/fmt/__init__.py b/tests/fmt/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/fmt/test_city_formatter.py b/tests/fmt/test_city_formatter.py new file mode 100644 index 0000000..3d955b2 --- /dev/null +++ b/tests/fmt/test_city_formatter.py @@ -0,0 +1,12 @@ +import pytest +from src.fmt.city_formatter import CityFormatter + +def test_city_format(): + city = {'name': 'Chernihiv'} + + formatter = CityFormatter() + + city_fmt = formatter.format(city) + + assert '- Chernihiv\n' == city_fmt +