本文整理汇总了Python中vumi.message.TransportUserMessage.reply方法的典型用法代码示例。如果您正苦于以下问题:Python TransportUserMessage.reply方法的具体用法?Python TransportUserMessage.reply怎么用?Python TransportUserMessage.reply使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vumi.message.TransportUserMessage
的用法示例。
在下文中一共展示了TransportUserMessage.reply方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: make_request
# 需要导入模块: from vumi.message import TransportUserMessage [as 别名]
# 或者: from vumi.message.TransportUserMessage import reply [as 别名]
def make_request(self, session_type, session_id, reply=None,
continue_session=True, expect_msg=True,
defer_response=False, **kw):
url_suffix = "session/%s/%s" % (session_id, session_type)
method = self.SESSION_HTTP_METHOD.get(session_type, "POST")
request_data = self.DEFAULT_SESSION_DATA[session_type].copy()
request_data.update(kw)
deferred_req = http_request(self.worker_url + url_suffix,
json.dumps(request_data), method=method)
if not expect_msg:
msg = None
else:
[msg] = yield self.broker.wait_messages("vumi",
"test_infobip.inbound",
1)
self.broker.clear_messages("vumi", "test_infobip.inbound")
msg = TransportUserMessage(**msg.payload)
if reply is not None:
reply_msg = msg.reply(reply, continue_session=continue_session)
self.broker.publish_message("vumi", "test_infobip.outbound",
reply_msg)
if defer_response:
response = deferred_req
else:
response = yield deferred_req
returnValue((msg, response))
示例2: test_send_reply_message
# 需要导入模块: from vumi.message import TransportUserMessage [as 别名]
# 或者: from vumi.message.TransportUserMessage import reply [as 别名]
def test_send_reply_message(self):
'''send_reply_message should place the correct reply message on the
correct queue'''
yield self.create_channel(
self.service, self.redis, TelnetServerTransport, id='channel-id')
in_msg = TransportUserMessage(
from_addr='+2789',
to_addr='+1234',
transport_name='channel-id',
transport_type='_',
transport_metadata={'foo': 'bar'})
yield self.api.inbounds.store_vumi_message('channel-id', in_msg)
msg = yield Channel.send_reply_message(
'channel-id', self.message_sender, self.outbounds, self.inbounds, {
'reply_to': in_msg['message_id'],
'content': 'testcontent',
})
expected = in_msg.reply(content='testcontent')
expected = conjoin(api_from_message(expected), {
'timestamp': msg['timestamp'],
'message_id': msg['message_id']
})
self.assertEqual(msg, expected)
[dispatched] = self.get_dispatched_messages('channel-id.outbound')
self.assertEqual(msg['message_id'], dispatched['message_id'])
self.assertEqual(api_from_message(dispatched), expected)
示例3: test_inbound_resume_continue
# 需要导入模块: from vumi.message import TransportUserMessage [as 别名]
# 或者: from vumi.message.TransportUserMessage import reply [as 别名]
def test_inbound_resume_continue(self):
url = "%s%s?%s" % (
self.transport_url,
self.config['web_path'],
urlencode({
'ussdSessionId': 123,
'msisdn': 555,
'provider': 'web',
'request': 1,
})
)
d = http_request(url, '', method='GET')
msg, = yield self.wait_for_dispatched_messages(1)
payload = msg.payload
self.assertEqual(payload['transport_name'], self.transport_name)
self.assertEqual(payload['transport_type'], "ussd")
self.assertEqual(payload['transport_metadata'],
{"session_id": "123"})
self.assertEqual(payload['session_event'],
TransportUserMessage.SESSION_RESUME)
self.assertEqual(payload['from_addr'], '555')
self.assertEqual(payload['to_addr'], '')
self.assertEqual(payload['content'], '1')
tum = TransportUserMessage(**payload)
rep = tum.reply("OK")
self.dispatch(rep)
response = yield d
correct_response = '<request>\n\t<headertext>OK</headertext>\n\t' \
'<options>\n\t\t<option command="1" order="1" ' \
'callback="http://localhost/foo" display="False" >' \
'</option>\n\t</options>\n</request>'
self.assertEqual(response, correct_response)
示例4: test_inbound_resume_close
# 需要导入模块: from vumi.message import TransportUserMessage [as 别名]
# 或者: from vumi.message.TransportUserMessage import reply [as 别名]
def test_inbound_resume_close(self):
args = "/?ussdSessionId=123&msisdn=555&provider=web&request=1"
url = "%s%s?%s" % (
self.transport_url,
self.config['web_path'],
urlencode({
'ussdSessionId': 123,
'msisdn': 555,
'provider': 'web',
'request': 1,
})
)
d = http_request(url, '', method='GET')
msg, = yield self.wait_for_dispatched_messages(1)
payload = msg.payload
self.assertEqual(payload['transport_name'], self.transport_name)
self.assertEqual(payload['transport_type'], "ussd")
self.assertEqual(payload['transport_metadata'],
{"session_id": "123"})
self.assertEqual(payload['session_event'],
TransportUserMessage.SESSION_RESUME)
self.assertEqual(payload['from_addr'], '555')
self.assertEqual(payload['to_addr'], '')
self.assertEqual(payload['content'], '1')
tum = TransportUserMessage(**payload)
rep = tum.reply("OK", False)
self.dispatch(rep)
response = yield d
correct_response = '<request>\n\t<headertext>OK' + \
'</headertext>\n</request>'
self.assertEqual(response, correct_response)
示例5: test_inbound
# 需要导入模块: from vumi.message import TransportUserMessage [as 别名]
# 或者: from vumi.message.TransportUserMessage import reply [as 别名]
def test_inbound(self):
d = http_request(self.worker_url + "foo", '', method='GET')
msg, = yield self.broker.wait_messages("vumi",
"test_ok_transport.inbound", 1)
payload = msg.payload
tum = TransportUserMessage(**payload)
rep = tum.reply("OK")
self.broker.publish_message("vumi", "test_ok_transport.outbound",
rep)
response = yield d
self.assertEqual(response, 'OK')
示例6: test_transport_user_message_reply_no_group
# 需要导入模块: from vumi.message import TransportUserMessage [as 别名]
# 或者: from vumi.message.TransportUserMessage import reply [as 别名]
def test_transport_user_message_reply_no_group(self):
msg = TransportUserMessage(
to_addr='123',
from_addr='456',
transport_name='sphex',
transport_type='sms',
transport_metadata={'foo': 'bar'},
helper_metadata={'otherfoo': 'otherbar'},
)
reply = msg.reply(content='Hi!')
self.assertEqual(reply['from_addr'], '123')
self.assertEqual(reply['to_addr'], '456')
self.assertEqual(reply['group'], None)
self.assertEqual(reply['session_event'], reply.SESSION_NONE)
self.assertEqual(reply['in_reply_to'], msg['message_id'])
self.assertEqual(reply['transport_name'], msg['transport_name'])
self.assertEqual(reply['transport_type'], msg['transport_type'])
self.assertEqual(reply['transport_metadata'],
msg['transport_metadata'])
self.assertEqual(reply['helper_metadata'], msg['helper_metadata'])
示例7: test_send_message_reply
# 需要导入模块: from vumi.message import TransportUserMessage [as 别名]
# 或者: from vumi.message.TransportUserMessage import reply [as 别名]
def test_send_message_reply(self):
'''Sending a reply message should fetch the relevant inbound message,
use it to construct a reply message, and place the reply message on the
queue for the channel'''
channel = Channel(
redis_manager=(yield self.get_redis()),
config=(yield self.create_channel_config()),
properties=self.create_channel_properties(),
id='test-channel')
yield channel.save()
yield channel.start(self.service)
in_msg = TransportUserMessage(
from_addr='+2789',
to_addr='+1234',
transport_name='test-channel',
transport_type='_',
transport_metadata={'foo': 'bar'})
yield self.api.inbounds.store_vumi_message('test-channel', in_msg)
expected = in_msg.reply(content='testcontent')
expected = api_from_message(expected)
resp = yield self.post('/channels/test-channel/messages/', {
'reply_to': in_msg['message_id'],
'content': 'testcontent',
})
yield self.assert_response(
resp, http.OK,
'message sent',
omit(expected, 'timestamp', 'message_id'),
ignore=['timestamp', 'message_id'])
[message] = self.get_dispatched_messages('test-channel.outbound')
message_id = (yield resp.json())['result']['message_id']
self.assertEqual(message['message_id'], message_id)