10

これは、Flask-RESTful での単体テストの一部です。

self.app = application.app.test_client()
rv = self.app.get('api/v1.0/{0}'.format(ios_sync_timestamp))
eq_(rv.status_code,200)

コマンド ライン内で curl を使用して、username:password をサービスに送信できます。

curl -d username:password http://localhost:5000/api/v1.0/1234567

単体テストの get() 内で同じことを達成するにはどうすればよいですか?

get/put/post には認証が必要なので、そうしないとテストが失敗します。

4

3 に答える 3

2

代替ソリューション - すべての功績は Doug Black に帰属します

def request(self, method, url, auth=None, **kwargs):
    headers = kwargs.get('headers', {})
    if auth:
        headers['Authorization'] = 'Basic ' + base64.b64encode(auth[0] + ':' + auth[1])

    kwargs['headers'] = headers

    return self.app.open(url, method=method, **kwargs)

次に、テストでこのメソッドを使用します。

resp = self.request('GET', 'api/v1.0/{0}'.format(ios_sync_timestamp), auth=(username, password))
于 2013-10-23T09:14:34.027 に答える