Esempio n. 1
0
    def test_create_order_failure(self, mock):
        """Test wechat pay create order."""
        mock_data = {
            'prepay_id': 'prepay_id',
            'return_code': 'SUCCESS',
            'return_msg': 'OK',
            'appid': self.appid,
            'mch_id': self.mch_id,
            'sign': '7921E432F65EB8ED0CE9755F0E86D72F',
            'result_code': 'SUCCESS',
            'trade_type': 'JSAPI'
        }
        mock.return_value = mock_data

        dataset = {
            'title': 'title',
            'order_uid': 'order_uid',
            'total': Decimal('10.10'),
            'ip': '127.0.0.1',
            'trade_type': 'JSAPI',
            'notify_url': 'title'
        }
        with self.assertRaises(WechatKitException) as error:
            WechatAPI.create_order(self.appid, self.mch_id, self.key,
                                   openid=None, **dataset)

        self.assertEqual(error.exception.error_info, '参数 openid 不能为空!')

        dataset.pop('title')
        with self.assertRaises(WechatKitException) as error:
            WechatAPI.create_order(self.appid, self.mch_id, self.key,
                                   openid='openid', **dataset)

        self.assertEqual(error.exception.error_info, "参数'title'错误!")
Esempio n. 2
0
    def test_get_token_raise_exception(self, mock_data):
        """Test get web access token failure."""
        mock_data.return_value = {
            "errcode": 40029,
            "errmsg": "invalid code",
            "requrl": 'requrl'
        }

        with self.assertRaises(WechatKitException) as error:
            WechatAPI.get_web_access_token(self.appid, self.appsecret, 'code',
                                           raise_exception=True)

        self.assertEqual(error.exception.error_info, '不合法的oauth_code')
Esempio n. 3
0
    def test_get_user_list_failure(self):
        """Test get user list failure"""

        access_token = 'access_token'
        result = WechatAPI.get_user_list(access_token)
        self.assertIn('errmsg', result)
        self.assertIn('requrl', result)
Esempio n. 4
0
    def test_get_web_user_info(self, mock_data):
        """Test get user info failure"""
        access_token, openid = 'access_token', 'openid'

        payload = {
            'openid': openid,
            'nickname': '昵称',
            'sex': '1',
            'province': 'PROVINCE',
            'city': 'CITY',
            'country':'COUNTRY',
            'headimgurl': 'http://wx.qlogo.cn/mmopen/asf/46',
            'privilege':[
                'PRIVILEGE1'
                'PRIVILEGE2'
            ],
            'unionid': 'o6_bmasdasdsad6_2sgVt7hMZOPfL'
        }

        mock_data.return_value = payload

        result = WechatAPI.get_web_user_info(access_token, openid)

        self.assertEqual(result['openid'], openid)
        self.assertEqual(result['nickname'], payload['nickname'])
        self.assertEqual(result['sex'], payload['sex'])
        self.assertEqual(result['province'], payload['province'])
        self.assertEqual(result['city'], payload['city'])
        self.assertEqual(result['nickname'], payload['nickname'])
        self.assertEqual(result['country'], payload['country'])
        self.assertEqual(result['headimgurl'], payload['headimgurl'])
        self.assertEqual(result['headimgurl'], payload['headimgurl'])
        self.assertEqual(result['privilege'], payload['privilege'])
        self.assertEqual(result['unionid'], payload['unionid'])
Esempio n. 5
0
    def test_get_web_user_info_failure(self):
        """Test get user info failure"""

        access_token, openid = 'access_token', 'openid'
        result = WechatAPI.get_web_user_info(access_token, openid)
        self.assertIn('errmsg', result)
        self.assertIn('requrl', result)
Esempio n. 6
0
    def test_get_user_list_next_openid(self, mock_data):
        """Test get user list with next openid."""
        access_token = 'access_token'
        openid = 'openid'
        mock_data.return_value = {
            'user_info_list': [
                {
                    'subscribe': 1,
                    'openid': 'otvxTs4dckWG7imySrJd6jSi0CWE',
                    'nickname': 'iWithery',
                    'sex': 1,
                    'language': 'zh_CN',
                    'city': 'Jieyang',
                    'province': 'Guangdong',
                    'country': 'China',
                    'headimgurl': ('http://wx.qlogo.cn/mmopen/xbIQx1GRqdvyqkMM'
                                   'hEaGOX802l1CyqMJNgUzKP8MeAeHFicRDSnZH7FY4X'
                                   'B7p8XHXIf6uJA2SCunTPic'
                                   'GKezDC4saKISzRj3nz/0'),
                    'subscribe_time': 1434093047,
                    'unionid': 'oR5GjjgEhCMJFyzaVZdrxZ2zRRF4',
                    'remark': '',
                    'groupid': 0
                },
                {
                    'subscribe': 0,
                    'openid': 'otvxTs_JZ6SEiP0imdhpi50fuSZg',
                    'unionid': 'oR5GjjjrbqBZbrnPwwmSxFukE41U'
                }
            ]
        }
        resp = WechatAPI.get_user_list(access_token, next_openid=openid)

        self.assertEqual(len(resp['user_info_list']), 2)
Esempio n. 7
0
    def test_get_access_token_success(self, mock_data):
        """Test get access token."""
        mock_data.return_value = {
            'access_token': 'access_token',
            'expires_in': 7200
        }
        resp = WechatAPI.get_access_token(self.appid, self.appsecret)

        self.assertEqual(resp.get('access_token'), 'access_token')
Esempio n. 8
0
    def test_signature(self, mock):
        """Test signature."""
        return_value = 'signature data'
        mock.return_value = return_value

        data, key = 'data', 'key'
        result = WechatAPI.signature(data, key=key)

        self.assertEqual(result, return_value)
Esempio n. 9
0
    def test_sha1_encrypt(self):
        """Test sha1 encrypt."""
        token = 'test_token'
        timestamp = '1461142505'
        nonce = 'sdfklklasdwqieor'

        result = WechatAPI.sha1_encrypt(token, timestamp, nonce)

        self.assertEqual(result, '30eda1491ff3ec8b20489ac38af76dd64ad2a122')
Esempio n. 10
0
    def test_get_callbackip(self, mock_data):
        """Test get callback ip."""
        access_token = 'access_token'
        mock_data.return_value = {
            'ip_list': ['127.0.0.1', '127.0.0.1']
        }
        resp = WechatAPI.get_callbackip(access_token)

        self.assertEqual(len(resp['ip_list']), 2)
Esempio n. 11
0
    def test_create_order(self, mock):
        """Test wechat pay create order."""
        mock_data = {
            'prepay_id': 'prepay_id',
            'return_code': 'SUCCESS',
            'return_msg': 'OK',
            'appid': self.appid,
            'mch_id': self.mch_id,
            'sign': '7921E432F65EB8ED0CE9755F0E86D72F',
            'result_code': 'SUCCESS',
            'trade_type': 'JSAPI'
        }
        mock.return_value = mock_data

        openid = 'openid'
        dataset = {
            'title': 'title',
            'order_uid': 'order_uid',
            'total': Decimal('10.10'),
            'ip': '127.0.0.1',
            'trade_type': 'JSAPI',
            'notify_url': 'title'
        }
        retdata = WechatAPI.create_order(self.appid, self.mch_id, self.key,
                                         openid=openid, **dataset)

        def assert_func(retdata, mock_data):
            """assert func."""
            self.assertEqual(retdata['prepay_id'], mock_data['prepay_id'])
            self.assertEqual(retdata['return_code'], mock_data['return_code'])
            self.assertEqual(retdata['return_msg'], mock_data['return_msg'])
            self.assertEqual(retdata['appid'], mock_data['appid'])
            self.assertEqual(retdata['mch_id'], mock_data['mch_id'])
            self.assertEqual(retdata['sign'], mock_data['sign'])
            self.assertEqual(retdata['result_code'], mock_data['result_code'])
            self.assertEqual(retdata['trade_type'], mock_data['trade_type'])

        assert_func(retdata, mock_data)

        dataset['detail'] = 'detail'
        retdata = WechatAPI.create_order(self.appid, self.mch_id, self.key,
                                         openid=openid, **dataset)
        assert_func(retdata, mock_data)
Esempio n. 12
0
 def test_get_token_failure(self, mock_data):
     """Test get web access token failure."""
     mock_data.return_value = {
         "errcode": 40029,
         "errmsg": "invalid code",
         "requrl": 'requrl'
     }
     result = WechatAPI.get_web_access_token(self.appid, self.appsecret,
                                             'code')
     self.assertIn('errmsg', result)
     self.assertIn('requrl', result)
Esempio n. 13
0
    def test_get_web_token(self, mock_data):
        """Test get web access token success."""
        mock_data.return_value = {
            "access_token": "ACCESS_TOKEN",
            "expires_in": 7200,
            "refresh_token": "REFRESH_TOKEN",
            "openid": "OPENID",
            "scope": "SCOPE"
        }
        result = WechatAPI.get_web_access_token(
            self.appid, self.appsecret, 'code')

        self.assertEqual(result.get('access_token'), 'ACCESS_TOKEN')
Esempio n. 14
0
 def test_close_order(self, mock):
     """Test close order."""
     mock_data = {
         'return_code': 'SUCCESS',
         'return_msg': 'OK',
         'appid': self.appid
     }
     mock.return_value = mock_data
     dataset = {
         'order_uid': '12312321321'
     }
     result = WechatAPI.close_order(self.appid, self.mch_id, self.key,
                                    **dataset)
     self.assertEqual(result, mock_data)
Esempio n. 15
0
    def test_get_jsapi_ticket(self, mock):
        """Test get jsapi ticket."""
        ticket = ('bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ'
                  '0m9E8NYzWKVZvdVtaUgWvsdshFKA')
        payload = {
            "errcode": 0,
            "errmsg": "ok",
            "ticket": ticket,
            "expires_in": 7200
        }
        mock.return_value = payload

        token = 'faketoken'
        retdata = WechatAPI.get_jsapi_ticket(token)
        self.assertEqual(retdata, payload)
Esempio n. 16
0
    def test_sha1(self):
        """Test sha1 encrypt."""

        data = {
            'jsapi_ticket': 'jsapi_ticket',
            'noncestr': 'CzrjYPlXpTiEsLqAtHINFbQUfmaWyGck',
            'timestamp': 1478590015,
            'url': urllib.parse.unquote('http://www.wechatkit.com/wechat/')
        }

        signature = '60692914f097850f47696261ea3073c62c94b861'

        result = WechatAPI.sha1(data)

        self.assertEqual(result, signature)
Esempio n. 17
0
    def test_get_user_info(self, mock_data):
        """Test get user basic info."""
        access_token = 'access_token'
        openid = 'o6_bmjrPTlm6_2sgVt7hMZOPfL2M'
        mock_data.return_value = {
            'subscribe': 1,
            'openid': openid,
            'nickname': 'Band',
            'sex': 1,
            'language': 'zh_CN',
            'city': '广州',
            'province': '广东',
            'country': '中国',
            'headimgurl': ('http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6ia'
                           'FqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbE'
                           'RQQ4eMsv84eavHiaiceqxibJxCfHe/0'),
            'subscribe_time': 1382694957,
            'unionid': 'o6_bmasdasdsad6_2sgVt7hMZOPfL',
            'remark': '',
            'groupid': 0
        }
        resp = WechatAPI.get_user_info(access_token, openid)

        self.assertEqual(resp.get('openid'), openid)
Esempio n. 18
0
 def test_get_callbackip_failure(self):
     """Test."""
     access_token = 'access_token'
     result = WechatAPI.get_callbackip(access_token)
     self.assertIn('errmsg', result)
     self.assertIn('requrl', result)
Esempio n. 19
0
 def test_get_access_token_failure(self):
     """Test."""
     result = WechatAPI.get_access_token(self.appid, self.appsecret)
     self.assertIn('errmsg', result)
     self.assertIn('requrl', result)