def test_parse_offer_dom_ria_flat_emptiness( dom_ria_flat_parser: DomRiaFlatParser): assert None is dom_ria_flat_parser.parse_offer( { 'url': 'https://dom.ria.com/uk/realty-prodaja-kvartira-' 'zaporoje-dneprovskiy-leninskiy-12440307.html', 'markup': read('fixtures/test_parse_offer/dom_ria_flat8.html'), 'avatar': None, 'area': 169, 'living_area': None, 'kitchen_area': None }) assert None is dom_ria_flat_parser.parse_offer( { 'url': 'https://dom.ria.com/uk/realty-perevireno-prodaja-kvartira' '-lvov-lyichakovskiy-begovaya-ulitsa-15431656.html', 'markup': read('fixtures/test_parse_offer/dom_ria_flat5.html'), 'avatar': None, 'area': 57.2, 'living_area': 39.2, 'kitchen_area': 10.8 }) assert None is dom_ria_flat_parser.parse_offer( { 'url': 'https://dom.ria.com/uk/novostroyka-km-vyshnevyi-khutir-4972/', 'markup': read('fixtures/test_parse_offer/dom_ria_flat1.html'), 'avatar': None, 'area': 26, 'living_area': 14.6, 'kitchen_area': 8.3 })
def test_parse_offer_dom_ria_flat_invalid( dom_ria_flat_parser: DomRiaFlatParser): assert None is dom_ria_flat_parser.parse_offer(None) # noqa assert None is dom_ria_flat_parser.parse_offer({'url': 'xxx'})
def test_parse_offer_dom_ria_flat(dom_ria_flat_parser: DomRiaFlatParser): assert dom_ria_flat_parser.parse_offer({ 'url': 'https://dom.ria.com/uk/realty-perevireno-prodaja-kvartira-' 'odessa-primorskiy-italyanskiy-bulvar-15546830.html', 'markup': read('fixtures/test_parse_offer/dom_ria_flat0.html'), 'avatar': 'https://cdn.riastatic.com/photosnew/dom/photo/perevireno-prodaja' '-kvartira-odessa-primorskiy-italyanskiy-bulvar__97597766fl.jpg', 'area': 47.7, 'living_area': 22.0, 'kitchen_area': 15.0 }) == Flat( url='https://dom.ria.com/uk/realty-perevireno-prodaja-kvartira' '-odessa-primorskiy-italyanskiy-bulvar-15546830.html', avatar='https://cdn.riastatic.com/photosnew/dom/photo/perevireno-' 'prodaja-kvartira-odessa-primorskiy-italyanskiy-bulvar' '__97597766fl.jpg', published=date(2019, 4, 15), geolocation={'point': (30.75220862914432, 46.46768691411673)}, price=Decimal('78000.000'), area=47.7, living_area=22.0, kitchen_area=15.0, rooms=1, floor=13, total_floor=14, details=[ 'Цегла', 'Індивідуальне опалення', 'Роздільне планування', 'Авторський проект', 'Зовнішнє й внутрішнє утеплення', 'Газ відсутній', 'Броньовані двері', 'Суміжний санвузол', '1 пасажирський ліфт', 'Вторинне житло' ]) assert dom_ria_flat_parser.parse_offer({ 'url': 'https://dom.ria.com/uk/realty-perevireno-prodaja-kvartira-' 'vinnitsa-staryiy-gorod-pokryishkina-ulitsa-15223903.html', 'markup': read('fixtures/test_parse_offer/dom_ria_flat2.html'), 'avatar': 'https://cdn.riastatic.com/photosnew/dom/photo/perevireno-' 'prodaja-kvartira-vinnitsa-staryiy-gorod-pokryishkina-ulit' 'sa__94899036fl.jpg', 'area': 52, 'living_area': 32, 'kitchen_area': 14 }) == Flat( url='https://dom.ria.com/uk/realty-perevireno-prodaja-kvartira' '-vinnitsa-staryiy-gorod-pokryishkina-ulitsa-15223903.html', avatar='https://cdn.riastatic.com/photosnew/dom/photo/perevireno' '-prodaja-kvartira-vinnitsa-staryiy-gorod-pokryishkina-' 'ulitsa__94899036fl.jpg', published=date(2019, 4, 10), geolocation={'address': 'Вінниця, Старе місто, Покришкіна вулиця'}, price=Decimal('19900.000'), area=52, living_area=32, kitchen_area=14, rooms=2, floor=4, total_floor=12, ceiling_height=2.71, details=[ 'Цегла', 'Опалення відсутнє', 'Роздільне планування', 'Потребує ремонту', 'Внутрішнє утеплення', 'Газ є', 'Металопластикові вікна', 'Суміжний санвузол', '1 пасажирський ліфт', 'Вторинне житло' ]) assert dom_ria_flat_parser.parse_offer({ 'url': 'https://dom.ria.com/uk/realty-perevireno-prodaja-kvartira-' 'odessa-primorskiy-italyanskiy-bulvar-15591101.html', 'markup': read('fixtures/test_parse_offer/dom_ria_flat3.html'), 'avatar': 'https://cdn.riastatic.com/photosnew/dom/photo/' 'perevireno-prodaja-kvartira-odessa-primorskiy-italyanskiy' '-bulvar__97910469fl.jpg', 'area': 65, 'living_area': None, 'kitchen_area': None }) == Flat( url='https://dom.ria.com/uk/realty-perevireno-prodaja-' 'kvartira-odessa-primorskiy-italyanskiy-bulvar-15591101.html', avatar= 'https://cdn.riastatic.com/photosnew/dom/photo/perevireno-prodaja-' 'kvartira-odessa-primorskiy-italyanskiy-bulvar__97910469fl.jpg', published=date(2019, 4, 25), geolocation={'point': (30.752294459832797, 46.467716472633796)}, price=Decimal('96000.000'), area=65, rooms=2, floor=12, total_floor=15, details=[ 'Цегла', 'Індивідуальне опалення', 'Роздільне планування', 'Потребує ремонту', 'Газ відсутній', 'Броньовані двері', 'Металопластикові вікна', 'Роздільний санвузол', '1 пасажирський ліфт', 'Вторинне житло' ]) assert dom_ria_flat_parser.parse_offer({ 'url': 'https://dom.ria.com/uk/realty-perevireno-prodaja-kvartira-' 'kiev-dneprovskiy-prajskaya-ulitsa-15581555.html', 'markup': read('fixtures/test_parse_offer/dom_ria_flat4.html'), 'avatar': 'https://cdn.riastatic.com/photosnew/dom/photo/perevireno' '-prodaja-kvartira-kiev-dneprovskiy-prajskaya-ulitsa' '__97897725fl.jpg', 'area': 44.9, 'living_area': 29.5, 'kitchen_area': 7.8 }) == Flat( url='https://dom.ria.com/uk/realty-perevireno-prodaja-' 'kvartira-kiev-dneprovskiy-prajskaya-ulitsa-15581555.html', avatar='https://cdn.riastatic.com/photosnew/dom/photo/perevireno-' 'prodaja-kvartira-kiev-dneprovskiy-prajskaya-ulitsa' '__97897725fl.jpg', published=date(2019, 4, 22), geolocation={'point': (30.643568070947254, 50.43808004773596)}, price=Decimal('45000.000'), area=44.9, living_area=29.5, kitchen_area=7.8, rooms=2, floor=1, total_floor=5, details=[ 'Панель', 'Централізоване опалення', 'Суміжно-роздільне планування', 'Євроремонт', 'Зовнішнє утеплення', 'Газ є', 'Металеві двері', 'Металопластикові вікна', 'Суміжний санвузол', 'Вторинне житло' ]) assert dom_ria_flat_parser.parse_offer({ 'url': 'https://dom.ria.com/uk/realty-prodaja-kvartira-' 'ochakov-ochakov-pervomayskaya-13179860.html', 'markup': read('fixtures/test_parse_offer/dom_ria_flat6.html'), 'avatar': 'https://cdn.riastatic.com/photosnew/dom/photo/prodaja-' 'kvartira-ochakov-ochakov-pervomayskaya__74444903fl.jpg', 'area': 35, 'living_area': 19, 'kitchen_area': 8 }) == Flat(url='https://dom.ria.com/uk/realty-prodaja-kvartira-ochakov' '-ochakov-pervomayskaya-13179860.html', avatar='https://cdn.riastatic.com/photosnew/dom/photo/prodaja' '-kvartira-ochakov-ochakov-pervomayskaya__74444903fl.jpg', published=date(2019, 5, 23), geolocation={'point': (31.52812112850194, 46.62593951428682)}, price=Decimal('11500.000'), area=35, living_area=19, kitchen_area=8, rooms=1, floor=8, total_floor=9, ceiling_height=2.7, details=[ 'Цегла', 'Побудовано у 1990-2000', 'Централізоване опалення', 'Роздільне планування', 'Хороший стан', 'Газ є', 'Металопластикові вікна', 'Суміжний санвузол', 'Без пасажирських ліфтів', 'Вторинне житло' ]) assert dom_ria_flat_parser.parse_offer({ 'url': 'https://dom.ria.com/uk/realty-perevireno-prodaja-kvarti' 'ra-vinnitsa-blijnee-zamoste-vyacheslava-chernovola-' 'ulitsa-14797413.html', 'markup': read('fixtures/test_parse_offer/dom_ria_flat7.html'), 'avatar': 'https://cdn.riastatic.com/photosnewr/dom/photo/' 'realty__98129585-300x200x80.webp', 'area': 73.5, 'living_area': None, 'kitchen_area': 25 }) == Flat(url='https://dom.ria.com/uk/realty-perevireno-prodaja-kvart' 'ira-vinnitsa-blijnee-zamoste-vyacheslava-chernovola-uli' 'tsa-14797413.html', avatar='https://cdn.riastatic.com/photosnewr/dom/photo' '/realty__98129585-300x200x80.webp', published=date(2019, 5, 6), geolocation={'point': (28.477062352423104, 49.24405425158156)}, price=Decimal('47000.000'), area=73.5, kitchen_area=25, rooms=2, floor=6, total_floor=12, ceiling_height=2.8, details=[ 'Цегла', 'Здача у 2019', 'Індивідуальне опалення', 'Роздільне планування', 'Чорнові роботи', 'Зовнішнє утеплення', 'Газ є', 'Металеві двері', 'Металопластикові вікна', 'Суміжний санвузол', '1 пасажирський ліфт', 'Первинне житло' ])