def test_getHomes_IndexError(self): test_case = self.success_test_params with mock.patch("requests.request") as barMock: barMock.side_effect = IndexError inp = test_case[KEY_INPUT] result = apifunctions.get_homes(inp[CITY], inp[STATE_CODE], inp[MIN_PRICE], inp[MAX_PRICE])
def test_gethomes_success_no_thumbnail(self): ''' Homes that have no picture ''' test_case = self.success_test_params_no_thumbnail with mock.patch( "requests.request", self.mock_success_requests_properties_no_thumbnail ): with mock.patch("apifunctions.nearby_homes", self.mock_nearby_homes): with mock.patch( "walkscore_api.get_walkscore_info", self.mock_walkscore_info ): with mock.patch( "google_maps_api.generate_iframe_url", self.mock_generate_iframe_url, ): with mock.patch( "google_maps_api.get_place_id", self.mock_get_place_id ): with mock.patch( "googlemaps.Client.directions", self.mock_directions ): inp = test_case[KEY_INPUT] results = apifunctions.get_homes( inp[CITY], inp[STATE_CODE], inp[MIN_PRICE], inp[MAX_PRICE], inp[ABSOLUTE_ADDRESS], ) for i in range(len(results)): self.assertDictEqual( results[i], test_case[KEY_EXPECTED][i] )
def test_getHomes_success_no_properties(self): ''' sucessful but no properties ''' test_case = self.success_test_params_no_properties with mock.patch("requests.request", self.mock_success_requests_properties_none): with mock.patch("apifunctions.nearby_homes", self.mock_nearby_homes): with mock.patch( "walkscore_api.get_walkscore_info", self.mock_walkscore_info ): with mock.patch( "google_maps_api.generate_iframe_url", self.mock_generate_iframe_url, ): with mock.patch( "google_maps_api.get_place_id", self.mock_get_place_id ): with mock.patch( "googlemaps.Client.directions", self.mock_directions ): inp = test_case[KEY_INPUT] results = apifunctions.get_homes( inp[CITY], inp[STATE_CODE], inp[MIN_PRICE], inp[MAX_PRICE], inp[ABSOLUTE_ADDRESS], ) self.assertEquals(results, test_case[KEY_EXPECTED])
def parsing_search_parameters(data): """ Main Function """ print("bodyfadfyadfya") print(data) street_address = data["address"] city = data["city"] state = data["state"] min_price = data["min_price"] max_price = data["max_price"] absolute_address = street_address + ", " + city + ", " + state purchase_type = data["purchase_type"] print(data) invalid_input_errors = [] if min_price < 0: invalid_input_errors.append( "The min price cannot be a negative number") if max_price < 0: invalid_input_errors.append( "The max price cannot be a negative number") if min_price > max_price: invalid_input_errors.append( "Min price cannot be bigger than max price") if len(invalid_input_errors) == 0: send_to_database( EMAIL_CLASS.value_of(), absolute_address, min_price, max_price, city, state, purchase_type, ) listings = "" if purchase_type == "sale": listings = apifunctions.get_homes(city, state, min_price, max_price, absolute_address) if purchase_type == "rent": listings = rental_listings_api.get_rental_listings( city, state, str(min_price), str(max_price), absolute_address) print("Final listings outputted: " + str(listings)) tuple_checking = (-1, None) if listings in tuple_checking: SOCKETIO.emit("sending listing", []) else: SOCKETIO.emit("sending listing", listings) if len(invalid_input_errors) > 0: SOCKETIO.emit("Invalid search input", invalid_input_errors) print("Errors sent") print(invalid_input_errors) invalid_input_errors = []
def test_getHomes_success_no_properties(self): test_case = self.success_test_params_no_properties with mock.patch("requests.request", self.mock_success_requests_properties_none): with mock.patch("apifunctions.nearby_homes", self.mock_nearbyHomes): inp = test_case[KEY_INPUT] results = apifunctions.get_homes(inp[CITY], inp[STATE_CODE], inp[MIN_PRICE], inp[MAX_PRICE]) self.assertEquals(results, test_case[KEY_EXPECTED])
def test_getHomes_success_no_thumbnail(self): test_case = self.success_test_params_no_thumbnail with mock.patch("requests.request", self.mock_success_requests_properties_no_thumbnail): with mock.patch("apifunctions.nearby_homes", self.mock_nearbyHomes): inp = test_case[KEY_INPUT] results = apifunctions.get_homes(inp[CITY], inp[STATE_CODE], inp[MIN_PRICE], inp[MAX_PRICE]) for i in range(len(results)): self.assertDictEqual(results[i], test_case[KEY_EXPECTED][i])
def test_gethomes_index_err(self): ''' Check index error handling ''' test_case = self.success_test_params with mock.patch("requests.request") as bar_mock: bar_mock.side_effect = IndexError input_case = test_case[KEY_INPUT] result = apifunctions.get_homes( input_case[CITY], input_case[STATE_CODE], input_case[MIN_PRICE], input_case[MAX_PRICE], input_case[ABSOLUTE_ADDRESS], )
def test_gethomes_request_exception(self): ''' Checks a genenic bad request handling ''' test_case = self.success_test_params with mock.patch("requests.request") as bar_mock: bar_mock.side_effect = requests.exceptions.RequestException input_case = test_case[KEY_INPUT] result = apifunctions.get_homes( input_case[CITY], input_case[STATE_CODE], input_case[MIN_PRICE], input_case[MAX_PRICE], input_case[ABSOLUTE_ADDRESS], )
def parsing_search_parameters(data): ''' Main Function ''' street_address = data["address"] city = data["city"] state = data["state"] distance = data["max_commute"] min_price = data["min_price"] max_price = data["max_price"] absolute_address = street_address + ", " + city + ", " + state send_to_database(CURRENT_EMAIL, absolute_address, min_price, max_price, distance) listings = apifunctions.get_homes(city, state, min_price, max_price) print(listings) if listings == -1: SOCKETIO.emit('sending listing', []) else: SOCKETIO.emit("sending listing", listings)