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