def test_parse_response(self): response_xml = load_data('question_responses.xml') parsed = subscriber_responses_as_list_of_dicts(response_xml) r1, r2, r3 = parsed self.assertIn('question_id', r1) self.assertEqual(r1['question_id'], 'MTAwNDk=')
def test_listed_topic_xml_as_dict(self): response_xml = load_data('list_all_topics.xml') parsed = listed_topic_xml_as_dict(response_xml) self.assertEqual( parsed, {'XYZ_999': 'Test Topic'} )
def test_subscriber_topics_as_list(self): response_xml = load_data('list_subscriber_topics.xml') parsed = subscriber_topics_as_list(response_xml) self.assertEqual( parsed, ['XYZ_999'] )
def test_call_api_no_parser_returns_unparsed(self): path = self.gd.translate_path('/api/account/$account_code/topics.xml') mockResponseBody = load_data('list_all_topics.xml') responses.add( responses.GET, get_full_url_to_call(path), body=mockResponseBody, status=200 ) response = self.gd.call_api(path, 'get') self.assertIsInstance(response, Response)
def test_get_visible_topics(self): path = self.gd.translate_path('/api/account/$account_code/topics.xml') mockResponseBody = load_data('list_all_topics.xml') responses.add( responses.GET, get_full_url_to_call(path), body=mockResponseBody, status=200 ) response = self.gd.get_visible_topics() self.assertEqual(response, {'XYZ_999': 'Test Topic'})
def test_load_data(self): self.assertEqual( load_data('list_subscriber_topics.xml'), """<?xml version="1.0" encoding="UTF-8"?> <topics type="array"> <topic> <to-param>XYZ_999</to-param> <link rel="self" href="/api/account/XYZ/topics/XYZ_999"/> <topic-uri>/api/account/XYZ/topics/XYZ_999.xml</topic-uri> </topic> </topics> """)
def test_get_subscriber_topics(self): email = '*****@*****.**' subscriber_id = base64.b64encode(email.encode('utf-8')) path = self.gd.translate_path( '/api/account/$account_code/subscribers/$subscriber_id/topics.xml', subscriber_id=subscriber_id ) mockResponseBody = load_data('list_subscriber_topics.xml') responses.add( responses.GET, get_full_url_to_call(path), body=mockResponseBody, status=200 ) response = self.gd.get_subscriber_topics('*****@*****.**') self.assertIn('XYZ_999', response)
def test_call_api_with_parser_returns_parsed(self): path = self.gd.translate_path('/api/account/$account_code/topics.xml') mockResponseBody = load_data('list_all_topics.xml') responses.add( responses.GET, get_full_url_to_call(path), body=mockResponseBody, status=200 ) parsed_response = self.gd.call_api( path, 'get', response_parser=topic_xml_as_dict ) self.assertEqual( parsed_response, {'XYZ_998': 'Test Unlisted Topic', 'XYZ_999': 'Test Topic'} )