| @@ 18-37 (lines=20) @@ | ||
| 15 | _FIXTURE_PATH = os.path.join(_TESTS_PATH, 'fixtures', 'enterprise') | |
| 16 | ||
| 17 | ||
| 18 | @urlmatch(netloc=r'(.*\.)?qyapi\.weixin\.qq\.com$') | |
| 19 | def wechat_api_mock(url, request): | |
| 20 |     path = url.path.replace('/cgi-bin/', '').replace('/', '_') | |
| 21 | res_file = os.path.join(_FIXTURE_PATH, '%s.json' % path) | |
| 22 |     content = { | |
| 23 | 'errcode': 99999, | |
| 24 | 'errmsg': 'can not find fixture %s' % res_file, | |
| 25 | } | |
| 26 |     headers = { | |
| 27 | 'Content-Type': 'application/json' | |
| 28 | } | |
| 29 | try: | |
| 30 | with open(res_file, 'rb') as f: | |
| 31 |             content = json.loads(f.read().decode('utf-8')) | |
| 32 | except (IOError, ValueError) as e: | |
| 33 |         content['errmsg'] = 'Loads fixture {0} failed, error: {1}'.format( | |
| 34 | res_file, | |
| 35 | e | |
| 36 | ) | |
| 37 | return response(200, content, headers, request=request) | |
| 38 | ||
| 39 | ||
| 40 | class WeChatClientTestCase(unittest.TestCase): | |
| @@ 14-33 (lines=20) @@ | ||
| 11 | _FIXTURE_PATH = os.path.join(_TESTS_PATH, 'fixtures', 'enterprise') | |
| 12 | ||
| 13 | ||
| 14 | @urlmatch(netloc=r'(.*\.)?qyapi\.weixin\.qq\.com$') | |
| 15 | def wechat_api_mock(url, request): | |
| 16 |     path = url.path.replace('/cgi-bin/', '').replace('/', '_') | |
| 17 | res_file = os.path.join(_FIXTURE_PATH, '%s.json' % path) | |
| 18 |     content = { | |
| 19 | 'errcode': 99999, | |
| 20 | 'errmsg': 'can not find fixture %s' % res_file, | |
| 21 | } | |
| 22 |     headers = { | |
| 23 | 'Content-Type': 'application/json' | |
| 24 | } | |
| 25 | try: | |
| 26 | with open(res_file, 'rb') as f: | |
| 27 |             content = json.loads(f.read().decode('utf-8')) | |
| 28 | except (IOError, ValueError) as e: | |
| 29 |         content['errmsg'] = 'Loads fixture {0} failed, error: {1}'.format( | |
| 30 | res_file, | |
| 31 | e | |
| 32 | ) | |
| 33 | return response(200, content, headers, request=request) | |
| 34 | ||
| 35 | ||
| 36 | class WeChatClientTestCase(unittest.TestCase): | |
| @@ 16-32 (lines=17) @@ | ||
| 13 | _FIXTURE_PATH = os.path.join(_TESTS_PATH, 'fixtures', 'component') | |
| 14 | ||
| 15 | ||
| 16 | @urlmatch(netloc=r'(.*\.)?api\.weixin\.qq\.com$') | |
| 17 | def wechat_api_mock(url, request): | |
| 18 |     path = url.path.replace('/cgi-bin/component/', '').replace('/', '_') | |
| 19 | res_file = os.path.join(_FIXTURE_PATH, '%s.json' % path) | |
| 20 |     content = { | |
| 21 | 'errcode': 99999, | |
| 22 | 'errmsg': 'can not find fixture %s' % res_file, | |
| 23 | } | |
| 24 |     headers = { | |
| 25 | 'Content-Type': 'application/json' | |
| 26 | } | |
| 27 | try: | |
| 28 | with open(res_file, 'rb') as f: | |
| 29 |             content = json.loads(f.read().decode('utf-8')) | |
| 30 | except (IOError, ValueError): | |
| 31 | pass | |
| 32 | return response(200, content, headers, request=request) | |
| 33 | ||
| 34 | ||
| 35 | class WeChatComponentTestCase(unittest.TestCase): | |