Skip to content

Commit

Permalink
just log a URL event
Browse files Browse the repository at this point in the history
  • Loading branch information
smn committed Apr 16, 2014
1 parent bf2df7d commit 089129f
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 2 deletions.
25 changes: 24 additions & 1 deletion vumi/transports/wechat/tests/test_wechat.py
Expand Up @@ -8,7 +8,7 @@
from twisted.web.server import NOT_DONE_YET

from vumi.tests.helpers import VumiTestCase
from vumi.tests.utils import MockHttpServer
from vumi.tests.utils import MockHttpServer, LogCatcher
from vumi.transports.tests.helpers import TransportHelper
from vumi.transports.wechat import WeChatTransport
from vumi.transports.wechat.errors import WeChatApiException
Expand Down Expand Up @@ -199,6 +199,29 @@ def test_inbound_menu_event_click_message(self):

self.assertEqual(msg['to_addr'], 'toUser@EVENTKEY')

@inlineCallbacks
def test_inbound_menu_event_view_message(self):
transport = yield self.get_transport_with_access_token('foo')

with LogCatcher() as lc:
resp = yield request(
transport, 'POST', data="""
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[VIEW]]></Event>
<EventKey><![CDATA[http://www.gotvafrica.com/mobi/home.aspx]]></EventKey>
</xml>
""".strip())
self.assertEqual(resp.code, http.OK)
[] = self.tx_helper.get_dispatched_inbound()
msg = lc.messages()[0]
self.assertEqual(
msg,
'fromUser clicked on http://www.gotvafrica.com/mobi/home.aspx')

@inlineCallbacks
def test_unsupported_message_type(self):
transport = yield self.get_transport_with_access_token('foo')
Expand Down
9 changes: 8 additions & 1 deletion vumi/transports/wechat/wechat.py
Expand Up @@ -287,6 +287,12 @@ def handle_inbound_text_message(self, request, wc_msg):

@inlineCallbacks
def handle_inbound_event_message(self, request, wc_msg):
if wc_msg.event.lower() in ('view'):
log.msg("%s clicked on %s" % (
wc_msg.from_user_name, wc_msg.event_key))
request.finish()
return

if wc_msg.event_key:
mask = yield self.cache_addr_mask(
wc_msg.from_user_name, wc_msg.event_key)
Expand Down Expand Up @@ -331,7 +337,8 @@ def handle_finished_request(self, request):
self.request_dict.pop(message_id)

def queue_request(self, message, request):
self.request_dict[message['message_id']] = request
if message is not None:
self.request_dict[message['message_id']] = request

def get_request(self, message_id):
return self.request_dict.get(message_id, None)
Expand Down

0 comments on commit 089129f

Please sign in to comment.