def test_create_lookuppointofinterest_model_data_no_result(self): # no valid clinic Location_Sender.vumi_client = lambda x: LoggingSender('go_http.test') Metric_Sender.vumi_client = lambda x: LoggingSender('go_http.test') post_data = { "search": { "mmc": "true", "hiv": "false" }, "response": { "type": "SMS", "to_addr": "+27123", "template": "Your nearest x is: {{ results }}" }, "location": self.create_location(29.0000000, -33.0000000) } response = self.client.post('/clinicfinder/requestlookup/', json.dumps(post_data), content_type='application/json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) d = LookupPointOfInterest.objects.last() self.assertEqual(d.search["mmc"], "true") self.assertEqual(d.search["hiv"], "false") point = Point(29.0000000, -33.0000000) self.assertEqual(d.location.point, point) self.assertEqual(d.response["results"], "")
def test_create_lookuppointofinterest_model_data_2_result(self): # 4 valid clinics, shows two Location_Sender.vumi_client = lambda x: LoggingSender('go_http.test') Metric_Sender.vumi_client = lambda x: LoggingSender('go_http.test') post_data = { "search": { "hct": "true" }, "response": { "type": "SMS", "to_addr": "+27123", "template": "Your nearest x is: {{ results }}" }, "location": self.create_location(18.71208, -33.85105) } response = self.client.post('/clinicfinder/requestlookup/', json.dumps(post_data), content_type='application/json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) d = LookupPointOfInterest.objects.last() self.assertEqual( d.response["results"], "Harmonie Clinic (0219806185/6205) " "AND Hazendal Satellite Clinic (216969920)")
def test_create_lbsrequest_model_data_no_result(self): Location_Sender.vumi_client = lambda x: LoggingSender('go_http.test') Metric_Sender.vumi_client = lambda x: LoggingSender('go_http.test') LBS_Lookup.add_allowed_msisdn = self.stub_add_allowed_msisdn LBS_Lookup.get_location = self.stub_get_location_no_result post_data = { "search": { "msisdn": "27123" }, "pointofinterest": self.create_poi_lookup('requestlookup', {"mmc": "true"}) } response = self.client.post('/clinicfinder/lbsrequest/', json.dumps(post_data), content_type='application/json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) lbs = LBSRequest.objects.last() # Search for MMC saved self.assertEqual(lbs.pointofinterest.search["mmc"], "true") self.assertEqual(lbs.search["msisdn"], "27123") # LBS Call denied self.assertEqual(lbs.response["lookup_code"], "201") # LBS Call Result did not create new point lpoi = LookupPointOfInterest.objects.last() self.assertEqual(lpoi.location, None)
def test_create_lbsrequest_model_data(self): Location_Sender.vumi_client = lambda x: LoggingSender('go_http.test') Metric_Sender.vumi_client = lambda x: LoggingSender('go_http.test') LBS_Lookup.add_allowed_msisdn = self.stub_add_allowed_msisdn LBS_Lookup.get_location = self.stub_get_location_get_result post_data = { "search": { "msisdn": "27123" }, "pointofinterest": self.create_poi_lookup('requestlookup', {"mmc": "true"}) } response = self.client.post('/clinicfinder/lbsrequest/', json.dumps(post_data), content_type='application/json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) lbs = LBSRequest.objects.last() # Search for MMC saved self.assertEqual(lbs.pointofinterest.search["mmc"], "true") self.assertEqual(lbs.search["msisdn"], "27123") # LBS Call worked self.assertEqual(lbs.response["lookup_code"], "101") # LBS Call Result created new point lpoi = LookupPointOfInterest.objects.last() point = Point(17.9145812988280005, -32.7461242675779979) self.assertEqual(lpoi.location.point, point) self.assertEqual(lpoi.response["results"], "Seapoint Clinic (Seapoint)")
def test_fire_metric(self): Metric_Sender.vumi_client = lambda x: LoggingSender('go_http.test') result = metric_sender.delay(metric="sms.noresults", value=1, agg="sum") self.assertTrue(result.successful()) self.assertEquals(result.get()["reason"], "Metrics published")
class TestLoggingSender(TestCase): def setUp(self): self.sender = LoggingSender('go_http.test') self.handler = RecordingHandler() logger = logging.getLogger('go_http.test') logger.setLevel(logging.INFO) logger.addHandler(self.handler) def check_logs(self, msg, levelno=logging.INFO): [log] = self.handler.logs self.assertEqual(log.msg, msg) self.assertEqual(log.levelno, levelno) def test_send_text(self): result = self.sender.send_text("to-addr-1", "Hello!") self.assertEqual(result, { "message_id": result["message_id"], "to_addr": "to-addr-1", "content": "Hello!", }) self.check_logs("Message: 'Hello!' sent to 'to-addr-1'") def test_fire_metric(self): result = self.sender.fire_metric("metric-1", 5.1, agg="max") self.assertEqual(result, { "success": True, "reason": "Metrics published", }) self.check_logs("Metric: 'metric-1' [max] -> 5.1") def test_fire_metric_default_agg(self): result = self.sender.fire_metric("metric-1", 5.2) self.assertEqual(result, { "success": True, "reason": "Metrics published", }) self.check_logs("Metric: 'metric-1' [last] -> 5.2")
def test_create_forward_result(self): # 4 valid clinics, shows two Location_Sender.vumi_client = lambda x: LoggingSender('go_http.test') post_data = { "search": { "hct": "true" }, "response": { "type": "SMS", "to_addr": "+27123", "template": "Your nearest x is: {{ results }}" }, "location": self.create_location(18.458404541015, -33.92578125) } response = self.client.post('/clinicfinder/requestlookup/', json.dumps(post_data), content_type='application/json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) d = LookupPointOfInterest.objects.last() self.assertEqual(d.response["results"], "Clinic One (Tel One) " "AND Clinic Two (Tel Two)")
def setUp(self): self.sender = LoggingSender('go_http.test') self.handler = RecordingHandler() logger = logging.getLogger('go_http.test') logger.setLevel(logging.INFO) logger.addHandler(self.handler)
class TestLoggingSender(TestCase): def setUp(self): self.sender = LoggingSender('go_http.test') self.handler = RecordingHandler() logger = logging.getLogger('go_http.test') logger.setLevel(logging.INFO) logger.addHandler(self.handler) def check_logs(self, msg, levelno=logging.INFO): [log] = self.handler.logs self.assertEqual(log.msg, msg) self.assertEqual(log.levelno, levelno) def test_send_text(self): result = self.sender.send_text("to-addr-1", "Hello!") self.assertEqual(result, { "message_id": result["message_id"], "to_addr": "to-addr-1", "content": "Hello!", }) self.check_logs("Message: 'Hello!' sent to 'to-addr-1'") def test_send_text_with_session_event(self): result = self.sender.send_text( "to-addr-1", "Hello!", session_event='close') self.assertEqual(result, { "message_id": result["message_id"], "to_addr": "to-addr-1", "content": "Hello!", "session_event": "close", }) self.check_logs( "Message: 'Hello!' sent to 'to-addr-1'" " [session_event: close]") def test_send_voice(self): result = self.sender.send_voice("to-addr-1", "Hello!") self.assertEqual(result, { "message_id": result["message_id"], "to_addr": "to-addr-1", "content": "Hello!", }) self.check_logs("Message: 'Hello!' sent to 'to-addr-1'") def test_send_voice_with_session_event(self): result = self.sender.send_voice( "to-addr-1", "Hello!", session_event='close') self.assertEqual(result, { "message_id": result["message_id"], "to_addr": "to-addr-1", "content": "Hello!", "session_event": "close", }) self.check_logs( "Message: 'Hello!' sent to 'to-addr-1'" " [session_event: close]") def test_send_voice_with_speech_url(self): result = self.sender.send_voice( "to-addr-1", "Hello!", speech_url='http://example.com/voice.ogg') self.assertEqual(result, { "message_id": result["message_id"], "to_addr": "to-addr-1", "content": "Hello!", "helper_metadata": { "voice": { "speech_url": "http://example.com/voice.ogg", }, } }) self.check_logs( "Message: 'Hello!' sent to 'to-addr-1'" " [voice: {'speech_url': 'http://example.com/voice.ogg'}]") def test_send_voice_with_wait_for(self): result = self.sender.send_voice( "to-addr-1", "Hello!", wait_for="#") self.assertEqual(result, { "message_id": result["message_id"], "to_addr": "to-addr-1", "content": "Hello!", "helper_metadata": { "voice": { "wait_for": "#", }, } }) self.check_logs( "Message: 'Hello!' sent to 'to-addr-1'" " [voice: {'wait_for': '#'}]") def test_fire_metric(self): result = self.sender.fire_metric("metric-1", 5.1, agg="max") self.assertEqual(result, { "success": True, "reason": "Metrics published", }) self.check_logs("Metric: 'metric-1' [max] -> 5.1") def test_fire_metric_default_agg(self): result = self.sender.fire_metric("metric-1", 5.2) self.assertEqual(result, { "success": True, "reason": "Metrics published", }) self.check_logs("Metric: 'metric-1' [last] -> 5.2")