parent
0de06aaf97
commit
a95638a6d5
@ -0,0 +1 @@
|
|||||||
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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
|
||||||
|
|
Loading…
Reference in new issue