def test_async_response(self):
        """
        FakeHttpServer supports asynchronous responses.
        """
        requests = []
        fake_http = FakeHttpServer(
            lambda req: requests.append(req) or NOT_DONE_YET)
        response1_d = fake_http.get_agent().request(
            "GET", "http://example.com/hello/1")
        response2_d = fake_http.get_agent().request(
            "HEAD", "http://example.com/hello/2")

        # Wait for the requests to arrive.
        yield wait0()
        [request1, request2] = requests
        self.assertNoResult(response1_d)
        self.assertNoResult(response2_d)
        self.assertEqual(request1.method, "GET")
        self.assertEqual(request1.path, "http://example.com/hello/1")
        self.assertEqual(request2.method, "HEAD")
        self.assertEqual(request2.path, "http://example.com/hello/2")

        # Send a response to the second request.
        request2.finish()
        response2 = yield response2_d
        self.assertNoResult(response1_d)
        yield self.assert_response(response2, 200, "")

        # Send a response to the first request.
        request1.write("Thank you for waiting.")
        request1.finish()
        response1 = yield response1_d
        yield self.assert_response(response1, 200, "Thank you for waiting.")
Exemple #2
0
    def test_async_response(self):
        """
        FakeHttpServer supports asynchronous responses.
        """
        requests = []
        fake_http = FakeHttpServer(
            lambda req: requests.append(req) or NOT_DONE_YET)
        response1_d = fake_http.get_agent().request(
            "GET", "http://example.com/hello/1")
        response2_d = fake_http.get_agent().request(
            "HEAD", "http://example.com/hello/2")

        # Wait for the requests to arrive.
        yield wait0()
        [request1, request2] = requests
        self.assertNoResult(response1_d)
        self.assertNoResult(response2_d)
        self.assertEqual(request1.method, "GET")
        self.assertEqual(request1.path, "http://example.com/hello/1")
        self.assertEqual(request2.method, "HEAD")
        self.assertEqual(request2.path, "http://example.com/hello/2")

        # Send a response to the second request.
        request2.finish()
        response2 = yield response2_d
        self.assertNoResult(response1_d)
        yield self.assert_response(response2, 200, "")

        # Send a response to the first request.
        request1.write("Thank you for waiting.")
        request1.finish()
        response1 = yield response1_d
        yield self.assert_response(response1, 200, "Thank you for waiting.")
 def test_PUT_request(self):
     """
     FakeHttpServer can handle a PUT request.
     """
     requests = []
     fake_http = FakeHttpServer(lambda req: requests.append(req) or "hi")
     agent = fake_http.get_agent()
     self.assertTrue(IAgent.providedBy(agent))
     response = yield agent.request("PUT", "http://example.com/hello")
     # We got a valid request and returned a valid response.
     [request] = requests
     self.assertEqual(request.method, "PUT")
     self.assertEqual(request.path, "http://example.com/hello")
     yield self.assert_response(response, 200, "hi")
Exemple #4
0
 def test_PUT_request(self):
     """
     FakeHttpServer can handle a PUT request.
     """
     requests = []
     fake_http = FakeHttpServer(lambda req: requests.append(req) or "hi")
     agent = fake_http.get_agent()
     self.assertTrue(IAgent.providedBy(agent))
     response = yield agent.request("PUT", "http://example.com/hello")
     # We got a valid request and returned a valid response.
     [request] = requests
     self.assertEqual(request.method, "PUT")
     self.assertEqual(request.path, "http://example.com/hello")
     yield self.assert_response(response, 200, "hi")
Exemple #5
0
    def setUp(self):
        self.mediaedgegsm_calls = DeferredQueue()
        self.fake_http = FakeHttpServer(self.handle_request)
        self.base_url = "http://mediaedgegsm.example.com/"

        self.config = {
            'web_path': "foo",
            'web_port': 0,
            'username': '******',
            'password': '******',
            'outbound_url': self.base_url,
            'outbound_username': '******',
            'outbound_password': '******',
            'operator_mappings': {
                '417': {
                    '417912': 'VODA',
                    '417913': 'TIGO',
                    '417914': 'UNKNOWN',
                }
            }
        }
        self.tx_helper = self.add_helper(
            TransportHelper(MediaEdgeGSMTransport))
        self.transport = yield self.tx_helper.get_transport(self.config)
        self.transport.agent_factory = self.fake_http.get_agent
        self.transport_url = self.transport.get_transport_url()
        self.mediaedgegsm_response = ''
        self.mediaedgegsm_response_code = http.OK
Exemple #6
0
    def setUp(self):
        self.fake_http = FakeHttpServer(self.handle_inbound_request)
        self.outbound_requests = DeferredQueue()
        self.fake_http_response = ''
        self.fake_http_response_code = http.OK
        self.base_url = "http://apposit.example.com/"

        config = {
            'web_path': 'api/v1/apposit/sms',
            'web_port': 0,
            'credentials': {
                '8123': {
                    'username': '******',
                    'password': '******',
                    'service_id': 'service-id-1',
                },
                '8124': {
                    'username': '******',
                    'password': '******',
                    'service_id': 'service-id-2',
                }
            },
            'outbound_url': self.base_url,
        }
        self.tx_helper = self.add_helper(
            TransportHelper(AppositTransport,
                            transport_addr='8123',
                            mobile_addr='251911223344'))
        self.transport = yield self.tx_helper.get_transport(config)
        self.transport.agent_factory = self.fake_http.get_agent
        self.transport_url = self.transport.get_transport_url()
        self.web_path = config['web_path']
Exemple #7
0
 def setUp(self):
     self.tx_helper = self.add_helper(TransportHelper(self.transport_class))
     self.fake_http = FakeHttpServer(self.handle_inbound_request)
     self.clock = Clock()
     self._request_queue = DeferredQueue()
     self._pending_reqs = []
     self.add_cleanup(self.finish_requests)
Exemple #8
0
 def setup_resource_with_callback(self, callback):
     self.fake_http = FakeHttpServer(callback)
     self.app = yield self.app_helper.get_application({
         'url':
         'http://relay.example.com/path',
         'username':
         '******',
         'password':
         '******',
     })
     self.app.agent_factory = self.fake_http.get_agent
 def setUp(self):
     self.integrat_calls = DeferredQueue()
     self.fake_http = FakeHttpServer(self.handle_request)
     self.base_url = "http://integrat.example.com/"
     config = {
         'web_path': "foo",
         'web_port': "0",
         'url': self.base_url,
         'username': '******',
         'password': '******',
     }
     self.tx_helper = self.add_helper(TransportHelper(IntegratTransport))
     self.transport = yield self.tx_helper.get_transport(config)
     self.transport.agent_factory = self.fake_http.get_agent
     addr = self.transport.web_resource.getHost()
     self.transport_url = "http://%s:%s/" % (addr.host, addr.port)
     self.higate_response = '<Response status_code="0"/>'
Exemple #10
0
    def setUp(self):
        self.mediafone_calls = DeferredQueue()
        self.fake_http = FakeHttpServer(self.handle_request)
        self.base_url = "http://mediafone.example.com/"

        self.config = {
            'web_path': "foo",
            'web_port': 0,
            'username': '******',
            'password': '******',
            'outbound_url': self.base_url,
        }
        self.tx_helper = self.add_helper(TransportHelper(MediafoneTransport))
        self.transport = yield self.tx_helper.get_transport(self.config)
        self.transport.agent_factory = self.fake_http.get_agent
        self.transport_url = self.transport.get_transport_url()
        self.mediafonemc_response = ''
        self.mediafonemc_response_code = http.OK
Exemple #11
0
    def setUp(self):
        self.cellulant_sms_calls = DeferredQueue()
        self.fake_http = FakeHttpServer(self.handle_request)
        self.base_url = "http://mtech-keyna.example.com/"

        self.valid_creds = {
            'mt_username': '******',
            'mt_password': '******',
        }
        self.config = {
            'web_path': "foo",
            'web_port': 0,
            'outbound_url': self.base_url,
        }
        self.config.update(self.valid_creds)
        self.tx_helper = self.add_helper(
            TransportHelper(self.transport_class, mobile_addr='2371234567'))
        self.transport = yield self.tx_helper.get_transport(self.config)
        self.transport.agent_factory = self.fake_http.get_agent
        self.transport_url = self.transport.get_transport_url()
Exemple #12
0
    def setUp(self):
        self.fake_http = FakeHttpServer(self.handle_request)
        self.http_request_queue = DeferredQueue()

        config = {
            'web_port': 0,
            'web_path': '/api/v1/mxit/mobiportal/',
            'client_id': 'client_id',
            'client_secret': 'client_secret',
        }
        self.sample_loc_str = 'cc,cn,sc,sn,cc,c,noi,cfb,ci'
        self.sample_profile_str = 'lc,cc,dob,gender,tariff'
        self.sample_html_str = '&lt;&amp;&gt;'
        self.sample_req_headers = {
            'X-Device-User-Agent': 'ua',
            'X-Mxit-Contact': 'contact',
            'X-Mxit-USERID-R': 'user-id',
            'X-Mxit-Nick': 'nick',
            'X-Mxit-Location': self.sample_loc_str,
            'X-Mxit-Profile': self.sample_profile_str,
            'X-Mxit-User-Input': self.sample_html_str,
        }
        self.sample_menu_resp = "\n".join([
            "Hello!",
            "1. option 1",
            "2. option 2",
            "3. option 3",
        ])
        # same as above but the o's are replaced with
        # http://www.fileformat.info/info/unicode/char/f8/index.htm
        slashed_o = '\xc3\xb8'
        self.sample_unicode_menu_resp = unicode(
            self.sample_menu_resp.replace('o', slashed_o), 'utf-8')

        self.tx_helper = self.add_helper(TransportHelper(MxitTransport))
        self.transport = yield self.tx_helper.get_transport(config)
        self.transport.agent_factory = self.fake_http.get_agent
        # NOTE: priming redis with an access token
        self.transport.redis.set(self.transport.access_token_key, 'foo')
        self.url = self.transport.get_transport_url(config['web_path'])
Exemple #13
0
 def start_fake_http(self, msg_id, msg, code=http.OK, send_id=None):
     fake_http = FakeHttpServer(
         self._make_handler(msg_id, msg, code, send_id))
     self.transport.agent_factory = fake_http.get_agent
     return fake_http
Exemple #14
0
 def setUp(self):
     self.msgs = []
     resource = IntegratHttpResource("testgrat", "ussd", self._publish)
     self.fake_http = FakeHttpServer(lambda req: resource.render(req))
Exemple #15
0
 def setUp(self):
     self.fake_http = FakeHttpServer(lambda r: self._render_request(r))
     self.url = "http://example.com:9980/"
Exemple #16
0
 def setup_resource(self, callback=None, auth=None, config=None):
     if callback is None:
         callback = lambda r: self.fail("No RapidSMS requests expected.")
     self.fake_http = FakeHttpServer(callback)
     self.app = yield self.setup_app(auth=auth, config=config)
     self.app.agent_factory = self.fake_http.get_agent
Exemple #17
0
 def __init__(self):
     self.cellulant_sms_calls = DeferredQueue()
     self.fake_http = FakeHttpServer(self.handle_request)
     self.response = ''
     self.get_agent = self.fake_http.get_agent
     self.get = self.cellulant_sms_calls.get
Exemple #18
0
 def setUp(self):
     self.tx_helper = self.add_helper(TransportHelper(WeChatTransport))
     self.request_queue = DeferredQueue()
     self.fake_http = FakeHttpServer(self.handle_api_request)
     self.api_url = 'https://api.wechat.com/cgi-bin/'