Exemplo n.º 1
0
 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])
Exemplo n.º 4
0
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 = []
Exemplo n.º 5
0
 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])
Exemplo n.º 6
0
 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],
         )
Exemplo n.º 9
0
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)