def build_html(self, links): html = "" for link in links[:2]: ad = Advert(link) html += ad.to_html(link) + "<br/>" self.advert_json.append(ad.to_history()) return html
def test6(): """Тест на цветное отображение экземпляра класса Advert.""" lesson_str = '{"title": "python", "price": 100, "location": "Moscow"}' lesson = json.loads(lesson_str) lesson_ad = Advert(lesson) print("Тест6 на цветное отображение экземпляра класса Advert: {} прошел " "успешно!".format(lesson_ad))
def test4(): """Тест поведения класса Advert в случае обращения к отсутсвующему полю price.""" lesson_str = '{"title": "python"}' lesson = json.loads(lesson_str) lesson_ad = Advert(lesson) assert lesson_ad.price == 0 print("Тест4 поведения класса Advert в случае обращения к отсутсвующему " "полю price прошел успешно!")
def test3(): """Тест поведения класса Advert при попытке задания price < 0.""" lesson_str = '{"title": "python", "price": -1}' lesson = json.loads(lesson_str) try: lesson_ad = Advert(lesson) print(lesson_ad) except ValueError: print("Тест3 поведения класса Advert при попытке задания price < 0 " "прошел успешно!")
async def get_ads(self): links_with_ids = await self.get_next_link_group() links, advert_ids = list(zip(*links_with_ids)) pages = await get_page_contents(self.config.session, links) ads = [] for page, link in zip(pages, links): advert = Advert(self.config, link, page) ads.append(advert) return ads
def __next__(self): link = self.get_next_link() page = requests.get(link) advert = Advert(self.config, link, page.content) if self.days_treshold: days = (date.today() - advert.modified_date.date()).days if (days >= self.days_treshold): self.ads_over_treshold_counter += 1 if self.ads_over_treshold_counter > self.ads_over_treshold: raise StopIteration() return advert
def test5(): """Тест поведения класса Advert в случае, если атрибуты являются ключевыми словами языка Python.""" lesson_str = """{ "title": "Вельш-корги", "price": 1000, "class": "dogs", "location": { "address": "поселение Ельдигинское, поселок санатория Тишково, 25" } }""" lesson = json.loads(lesson_str) lesson_ad = Advert(lesson) assert lesson_ad.class_ == "dogs" print("Тест5 поведения класса Advert в случае, если атрибуты являются " "ключевыми словами прошел успешно!")
def test2(): """Тест поведения класса Advert, проверяющий обращение к атрибуту через точку.""" lesson_str = """{ "title": "python", "price": 0, "location": { "address": "город Москва, Лесная, 7", "metro_stations": ["Белорусская"] } }""" lesson = json.loads(lesson_str) lesson_ad = Advert(lesson) assert lesson_ad.location.address == "город Москва, Лесная, 7" print("Тест2 поведения класса Advert, проверяющий обращение к атрибуту " "через точку прошел успешно!")
def test1(): """Тест поведения класса Advert в случае отсутствия поля title.""" lesson_str = """{ "price": 100, "location": { "address": "город Москва, Лесная, 7", "metro_stations": ["Белорусская"] } }""" lesson = json.loads(lesson_str) try: lesson_ad = Advert(lesson) print(lesson_ad) except ValueError: print("Тест1 поведения класса Advert в случае отсутствия поля title " "прошел успешно!")
def corgi_parsing(json_file): mapping = json.loads(json_file) corgi = Advert(mapping) return corgi
def test_nested_object(): object_advert = Advert(corgi_advert) assert object_advert.location.address == "сельское поселение Ельдигинское, поселок санатория Тишково, 25"
def test_bad_price(): with pytest.raises(ValueError): Advert("""{"title": "Вельш-корги", "price": -1000}""")
import json from advert import Advert if __name__ == '__main__': # создаем экземпляр класса Advert из JSON lesson_str = """{ "title": "python", "price": 0, "location": { "address": "город Москва, Лесная, 7", "metro_stations": ["Белорусская"] } }""" lesson = json.loads(lesson_str) lesson_ad = Advert(lesson) # обращаемся к атрибуту location.address print(lesson_ad.location.address, flush=True) lesson_str = '{"title": "python"}' lesson = json.loads(lesson_str) lesson_ad = Advert(lesson) print(lesson_ad.price) print(lesson_ad)
def test_iphone_no_price(): object_advert = Advert("""{"title": "Вельш-корги"}""") assert object_advert.price == 0
def iphone_parsing(json_file): mapping = json.loads(json_file) iphone_ad = Advert(mapping) return iphone_ad
def test_no_title(): with pytest.raises(ValueError): Advert("""{"price": 1000, "class": "dogs"}""")
def test_keyword(): object_advert = Advert(corgi_advert) assert object_advert.class_ == 'dogs'