def test_present_search_with_a_bad_address_notifies_observer_of_success_but_no_results(self): identifier = None search = None self.apn_repository.create(county='sanfrancisco', block_number='001A', lot_number='001', address='1240 Jones St #132') self.apn_repository.create(county='sanfrancisco', block_number='001A', lot_number='002', address='1240 Jones St #133') def create_success(incoming_identifier, incoming_search): nonlocal identifier nonlocal search identifier = incoming_identifier search = incoming_search self.search_repository.create_search(county='sanfrancisco', address='1241 Jones St', success=create_success, failure=None) observer = FakeObserver() self.subject.execute(identifier=identifier, observer=observer) expected_search = Search(county='sanfrancisco', address='1241 Jones St') assert_searches_equal(observer.presented_search, expected_search, self) assert_apn_lists_equal(observer.presented_apn_results, [], self)
def test_create_search_with_valid_county_and_address(self): search_identifier = None search = None def create_success(incoming_search_identifier, incoming_search): nonlocal search_identifier nonlocal search search_identifier = incoming_search_identifier search = incoming_search failure_called = False def create_failure(x, y): nonlocal failure_called failure_called = True self.subject.create_search(county='sanfrancisco', address='125 Jones St', success=create_success, failure=create_failure) self.assertFalse(failure_called) self.assertIsNotNone(search_identifier) expected_search = Search(address='125 Jones St', county='sanfrancisco',) assert_searches_equal(search, expected_search, self) search = None def fetch_success(incoming_search): nonlocal search search = incoming_search exception = None context = None def fetch_failure(incoming_exception, incoming_context): nonlocal search exception = incoming_exception context = incoming_context self.subject.fetch_search(identifier=search_identifier, success=fetch_success, failure=fetch_failure) assert_searches_equal(search, expected_search, self) self.assertIsNone(exception) self.assertIsNone(context)
def test_create_search_with_valid_county_and_address_notifies_observer(self): observer = FakeCreateObserver() self.subject.execute(address="125 Jones St", county="sanfrancisco", observer=observer) search = None def fetch_success(incoming_search): nonlocal search search = incoming_search fetch_failure = lambda x, y: None self.repository.fetch_search( identifier=observer.created_identifier, success=fetch_success, failure=fetch_failure ) expected_fetched_search = Search(county="sanfrancisco", address="125 Jones St") assert_searches_equal(observer.created_search, expected_fetched_search, self)