Exemplo n.º 1
0
def test_process_text_msg():
    to_user_name = 'to_user_name'
    from_user_name = 'from_user_name'
    content = 'content'

    text_msg = f"""
        <xml>
            <ToUserName><![CDATA[{to_user_name}]]></ToUserName>
            <FromUserName><![CDATA[{from_user_name}]]></FromUserName>
            <CreateTime>1594522500</CreateTime>
            <MsgType><![CDATA[text]]></MsgType>
            <MsgId><![CDATA[1594522500]]></MsgId>
            <Content><![CDATA[{content}]]></Content>
        </xml>
    """

    msg_obj = mrc.parse_xml(text_msg)
    assert msg_obj.ToUserName == to_user_name
    assert msg_obj.FromUserName == from_user_name
    assert msg_obj.Content == content
Exemplo n.º 2
0
def test_auth_verify():
    to_user_name = 'to_user_name'
    from_user_name = 'from_user_name'
    content = 'content'

    text_msg = f"""
        <xml>
            <ToUserName><![CDATA[{to_user_name}]]></ToUserName>
            <FromUserName><![CDATA[{from_user_name}]]></FromUserName>
            <CreateTime>1594522500</CreateTime>
            <MsgType><![CDATA[text]]></MsgType>
            <MsgId><![CDATA[1594522500]]></MsgId>
            <Content><![CDATA[{content}]]></Content>
        </xml>
    """

    msg_obj = mrc.parse_xml(text_msg)
    result = mt_auth.auth_verify(msg_obj)
    assert result.open_id == from_user_name
    assert result.groups[0] == mt_auth.Role.FANS
Exemplo n.º 3
0
def test_process_image_msg():
    to_user_name = 'to_user_name'
    from_user_name = 'from_user_name'
    pic_url = 'pic_url'
    media_id = 'media_id'

    text_msg = f"""
        <xml>
            <ToUserName><![CDATA[{to_user_name}]]></ToUserName>
            <FromUserName><![CDATA[{from_user_name}]]></FromUserName>
            <CreateTime>1594522500</CreateTime>
            <MsgType><![CDATA[text]]></MsgType>
            <MsgId><![CDATA[1594522500]]></MsgId>
            <PicUrl><![CDATA[{pic_url}]]></PicUrl>
            <MediaId><![CDATA[{media_id}]]></MediaId>
        </xml>
    """

    msg_obj = mrc.parse_xml(text_msg)
    assert msg_obj.ToUserName == to_user_name
    assert msg_obj.FromUserName == from_user_name
    assert msg_obj.PicUrl == pic_url
    assert msg_obj.MediaId == media_id
Exemplo n.º 4
0
    def POST(self):
        try:
            data = web.data()
            print(f"handle/POST 接受参数 {data}")

            # 消息处理
            rec_msg = mrc.parse_xml(data)
            if not rec_msg:
                return 'success'
            if isinstance(rec_msg, mrc.ErrMsg):
                return mrp.TextMsg(to_user_name=rec_msg.FromUserName,
                                   from_user_name=rec_msg.ToUserName,
                                   content=rec_msg.err).send()

            # 根据用户信息获取用户身份
            identity = mt_auth.auth_verify(rec_msg)
            # 根据消息获得用户行为
            purpose = mt_choice.get_purpose_by_msg(identity, rec_msg)
            # 根据用户身份和行为执行相应动作
            return purpose(rec_msg)
        except Exception as err:
            print(f"handle/POST {type(err)} 异常, msg => {err}")
            return err
Exemplo n.º 5
0
def test_process_voice_msg():
    to_user_name = 'to_user_name'
    from_user_name = 'from_user_name'
    media_id = 'media_id'
    recognition = 'recognition'

    text_msg = f"""
        <xml>
            <ToUserName><![CDATA[{to_user_name}]]></ToUserName>
            <FromUserName><![CDATA[{from_user_name}]]></FromUserName>
            <CreateTime>1594522500</CreateTime>
            <MsgType><![CDATA[voice]]></MsgType>
            <MsgId>6848421990236160000</MsgId>
            <MediaId><![CDATA[{media_id}]]></MediaId>
            <Format><![CDATA[amr]]></Format>
            <Recognition><![CDATA[{recognition}]]></Recognition>
        </xml>>
    """

    msg_obj = mrc.parse_xml(text_msg)
    assert msg_obj.ToUserName == to_user_name
    assert msg_obj.FromUserName == from_user_name
    assert msg_obj.MediaId == media_id
    assert msg_obj.Recognition == recognition