2023-09-15 20:58:54 -07:00
|
|
|
from homeharvest import scrape_property
|
2023-09-18 20:59:49 -07:00
|
|
|
from homeharvest.exceptions import (
|
|
|
|
InvalidSite,
|
|
|
|
InvalidListingType,
|
|
|
|
NoResultsFound,
|
|
|
|
GeoCoordsNotFound,
|
|
|
|
)
|
2023-09-15 20:58:54 -07:00
|
|
|
|
|
|
|
|
2023-10-02 13:58:47 -07:00
|
|
|
def test_realtor_comps():
|
|
|
|
result = scrape_property(
|
2023-10-04 08:11:53 -07:00
|
|
|
location="2530 Al Lipscomb Way",
|
|
|
|
radius=0.5,
|
|
|
|
sold_last_x_days=180,
|
|
|
|
listing_type="sold",
|
2023-10-02 13:58:47 -07:00
|
|
|
)
|
|
|
|
|
2023-10-03 15:05:17 -07:00
|
|
|
assert result is not None and len(result) > 0
|
|
|
|
|
|
|
|
|
|
|
|
def test_realtor_last_x_days_sold():
|
|
|
|
days_result_30 = scrape_property(
|
2023-10-03 22:21:16 -07:00
|
|
|
location="Dallas, TX", listing_type="sold", sold_last_x_days=30
|
2023-10-03 15:05:17 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
days_result_10 = scrape_property(
|
2023-10-03 22:21:16 -07:00
|
|
|
location="Dallas, TX", listing_type="sold", sold_last_x_days=10
|
2023-10-03 15:05:17 -07:00
|
|
|
)
|
|
|
|
|
2023-10-04 08:11:53 -07:00
|
|
|
assert all(
|
|
|
|
[result is not None for result in [days_result_30, days_result_10]]
|
|
|
|
) and len(days_result_30) != len(days_result_10)
|
2023-10-02 13:58:47 -07:00
|
|
|
|
|
|
|
|
2023-10-03 23:33:53 -07:00
|
|
|
def test_realtor_single_property():
|
|
|
|
results = [
|
|
|
|
scrape_property(
|
|
|
|
location="15509 N 172nd Dr, Surprise, AZ 85388",
|
|
|
|
listing_type="for_sale",
|
|
|
|
),
|
|
|
|
scrape_property(
|
|
|
|
location="2530 Al Lipscomb Way",
|
|
|
|
listing_type="for_sale",
|
2023-10-04 08:11:53 -07:00
|
|
|
),
|
2023-10-03 23:33:53 -07:00
|
|
|
]
|
|
|
|
|
|
|
|
assert all([result is not None for result in results])
|
|
|
|
|
|
|
|
|
2023-09-15 20:58:54 -07:00
|
|
|
def test_realtor():
|
2023-09-16 13:39:03 -07:00
|
|
|
results = [
|
2023-09-18 13:43:44 -07:00
|
|
|
scrape_property(
|
|
|
|
location="2530 Al Lipscomb Way",
|
|
|
|
listing_type="for_sale",
|
|
|
|
),
|
|
|
|
scrape_property(
|
2023-10-03 22:21:16 -07:00
|
|
|
location="Phoenix, AZ", listing_type="for_rent"
|
2023-09-18 13:43:44 -07:00
|
|
|
), #: does not support "city, state, USA" format
|
|
|
|
scrape_property(
|
2023-10-03 22:21:16 -07:00
|
|
|
location="Dallas, TX", listing_type="sold"
|
2023-09-18 13:43:44 -07:00
|
|
|
), #: does not support "city, state, USA" format
|
2023-10-03 22:21:16 -07:00
|
|
|
scrape_property(location="85281"),
|
2023-09-16 13:39:03 -07:00
|
|
|
]
|
2023-09-15 20:58:54 -07:00
|
|
|
|
2023-09-16 13:39:03 -07:00
|
|
|
assert all([result is not None for result in results])
|
2023-09-18 20:28:03 -07:00
|
|
|
|
|
|
|
bad_results = []
|
|
|
|
try:
|
|
|
|
bad_results += [
|
|
|
|
scrape_property(
|
|
|
|
location="abceefg ju098ot498hh9",
|
|
|
|
listing_type="for_sale",
|
|
|
|
)
|
|
|
|
]
|
|
|
|
except (InvalidSite, InvalidListingType, NoResultsFound, GeoCoordsNotFound):
|
|
|
|
assert True
|
|
|
|
|
|
|
|
assert all([result is None for result in bad_results])
|