2

braintree.ClientToken.generate()で Flask を実行している Google App Engine アプリから呼び出そうとすると、この問題が発生しましたdev_appserver.pydev_appserver.py現在、発信 SSL 接続を確立できません。上記のブレインツリー呼び出しを行うと、

ConnectionError: ('Connection aborted.', error(13, 'Permission denied'))

呼び出しは、実際の G​​AE 環境で機能します。私のビューの 1 つで使用されているため、失敗すると上記の 500 エラーで Web サイト全体のフローが中断されます。ローカル環境で開発を継続できるようにするには、どうすればこれを回避できますか?

4

2 に答える 2

1

で実行しているときに対応するアプリにグローバルな変数がある場合はdev_appserver.py、その変数を条件とする失敗したメソッドのモックを作成できます。

私の場合、その変数は と呼ばれenv_conf.FLASK_CONFます。次のコードを使用して、braintree 生成呼び出しをモックしました。

# Imports
import braintree
import env_conf
from flask import render_template

# Mock Braintree in DEV environment
if env_conf.FLASK_CONF == 'DEV':
    from functools import partial
    def mock_generate(self):
        return 'foobarbaz123'
    braintree.ClientToken.generate = partial(mock_generate, braintree.ClientToken())

# Add payment handler
def add_payment():
    token = braintree.ClientToken.generate()
    return render_template('add-payment.html',
                           braintree_client_token=token)

一般的な考え方は次のとおりです。

import problem_function
if DEV_ENVIRONMENT:
    def mock_problem_fcn():
        return 'expected response'
    problem_function = mock_problem_function

problem_function()
于 2015-08-31T19:52:24.340 に答える