Beispiel #1
0
 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
Beispiel #2
0
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))
Beispiel #3
0
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 прошел успешно!")
Beispiel #4
0
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 "
              "прошел успешно!")
Beispiel #5
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
Beispiel #7
0
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 в случае, если атрибуты являются "
          "ключевыми словами прошел успешно!")
Beispiel #8
0
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, проверяющий обращение к атрибуту "
          "через точку прошел успешно!")
Beispiel #9
0
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 "
              "прошел успешно!")
Beispiel #10
0
def corgi_parsing(json_file):
    mapping = json.loads(json_file)
    corgi = Advert(mapping)
    return corgi
Beispiel #11
0
def test_nested_object():
    object_advert = Advert(corgi_advert)
    assert object_advert.location.address == "сельское поселение Ельдигинское, поселок санатория Тишково, 25"
Beispiel #12
0
def test_bad_price():
    with pytest.raises(ValueError):
        Advert("""{"title": "Вельш-корги", "price": -1000}""")
Beispiel #13
0
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)
Beispiel #14
0
def test_iphone_no_price():
    object_advert = Advert("""{"title": "Вельш-корги"}""")
    assert object_advert.price == 0
Beispiel #15
0
def iphone_parsing(json_file):
    mapping = json.loads(json_file)
    iphone_ad = Advert(mapping)
    return iphone_ad
Beispiel #16
0
def test_no_title():
    with pytest.raises(ValueError):
        Advert("""{"price": 1000, "class": "dogs"}""")
Beispiel #17
0
def test_keyword():
    object_advert = Advert(corgi_advert)
    assert object_advert.class_ == 'dogs'