def post(self): if util.is_dev_server(self.request): logging.info('*** Generating test data for providers') from data import test_data test_data.create_test_providers() test_data.create_test_prospects() self.render_data(success_message="Generated provider data successfully") else: logging.info('*** Someone tried to Generating test data for providers on a production server. WTF!?') self.render_data(error_message="Production server, cannot generate test provider data")
def test_find_providers_perfect_and_imperfect(self): providers = create_test_providers() logging.info("providers: %s" % providers) self.assertEqual(len(providers), Provider.query().count()) # create booking request next_monday_at_9 = testutil.create_datetime_from_weekday_and_hour( testutil.MONDAY, 15) booking_request = Booking(request_category='physiotherapy', request_location='mtl-downtown', request_datetime=next_monday_at_9) booking_responses = db_search.provider_search(booking_request) logging.info('Booking Respones:') for br in booking_responses: logging.info('providers %s on %s at %s' % (br.provider.email, br.timeslot.start.date(), br.timeslot.start.time())) # 2 responses self.assertEqual(2, len(booking_responses)) # first provider is perfet match br1 = booking_responses[0] self.assertTrue(br1.is_perfect_match(booking_request)) # second provider is not perfect match br2 = booking_responses[1] self.assertFalse(br2.is_perfect_match(booking_request)) # assert top provider is p2 self.assertEqual(providers[2][0], booking_responses[0].provider.key)
def test_find_providers_no_matches_wrong_category(self): providers = create_test_providers() # create booking request - Saturday at 10 PM sat_at_10 = testutil.create_datetime_from_weekday_and_hour(5, 22) booking_request = Booking(request_category='osteopath', request_location='mtl-downtown', request_datetime=sat_at_10) booking_responses = db_search.provider_search(booking_request) logging.info('Booking Respones:') # assert top provider is p2 self.assertEqual(0, len(booking_responses))
def test_find_providers_all_imperfect_matches(self): providers = create_test_providers() # create booking request - Saturday at 10 PM sat_at_10 = testutil.create_datetime_from_weekday_and_hour(testutil.MONDAY, 22) booking_request = Booking(request_category='physiotherapy', request_location='mtl-downtown', request_datetime=sat_at_10) booking_responses = db_search.provider_search(booking_request) logging.info('Booking Respones:') for br in booking_responses: logging.info('providers %s on %s at %s' % (br.provider.email, br.timeslot.start.date(), br.timeslot.start.time())) for br in booking_responses: self.assertFalse(br.is_perfect_match(booking_request)) # assert top provider is p2 self.assertEqual(providers[1][0], booking_responses[0].provider.key)
def test_find_providers_all_imperfect_matches(self): providers = create_test_providers() # create booking request - Saturday at 10 PM sat_at_10 = testutil.create_datetime_from_weekday_and_hour( testutil.MONDAY, 22) booking_request = Booking(request_category='physiotherapy', request_location='mtl-downtown', request_datetime=sat_at_10) booking_responses = db_search.provider_search(booking_request) logging.info('Booking Respones:') for br in booking_responses: logging.info('providers %s on %s at %s' % (br.provider.email, br.timeslot.start.date(), br.timeslot.start.time())) for br in booking_responses: self.assertFalse(br.is_perfect_match(booking_request)) # assert top provider is p2 self.assertEqual(providers[1][0], booking_responses[0].provider.key)
def test_find_providers_perfect_and_imperfect(self): providers = create_test_providers() logging.info("providers: %s" % providers) self.assertEqual(len(providers), Provider.query().count()) # create booking request next_monday_at_9 = testutil.create_datetime_from_weekday_and_hour(testutil.MONDAY, 15) booking_request = Booking(request_category='physiotherapy', request_location='mtl-downtown', request_datetime=next_monday_at_9) booking_responses = db_search.provider_search(booking_request) logging.info('Booking Respones:') for br in booking_responses: logging.info('providers %s on %s at %s' % (br.provider.email, br.timeslot.start.date(), br.timeslot.start.time())) # 2 responses self.assertEqual(2, len(booking_responses)) # first provider is perfet match br1 = booking_responses[0] self.assertTrue(br1.is_perfect_match(booking_request)) # second provider is not perfect match br2 = booking_responses[1] self.assertFalse(br2.is_perfect_match(booking_request)) # assert top provider is p2 self.assertEqual(providers[2][0], booking_responses[0].provider.key)