dogrunjp
1/9/2017 - 9:20 AM

Pythonのbottleで書いているAPIをテストするために、webTestを使ったテストツールを試してみました。unittestの基本的な構成のみですが、自分用メモ&公開しておきます。

Pythonのbottleで書いているAPIをテストするために、webTestを使ったテストツールを試してみました。unittestの基本的な構成のみですが、自分用メモ&公開しておきます。

PythonのbottleアプリでwebTestを使ったAPIのテストを行ってみる

## アプリケーションとテストの諸条件

  • 最小構成に近いテストスクリプトです。
  • アプリケーションはapp.pyで保存しています。
  • 同じディレクトリにテストアプリケーションのモジュールを置いて実行しています。
  • 実運用の環境ではmod_wsgiを利用しますが、テストはPycharmのプロジェクト内で実行しています。
  • WSGIProxy2が無いと怒られたので、virtualenv環境にpip install WSGIProxy2 しました。

少し戸惑ったのは、テストするアプリケーションを指定する方法ですが、

import apiモジュール名

で TestApp()の引数にモジュールを渡せば良いようです。

参考

ほぼ参考先のままです、、、

PythonのWebアプリをUnitTestするコードを書く

import unittest
import app
import os
from webtest import TestApp

os.environ['WEBTEST_TARGET_URL'] = 'http://localhost:8080'
app = TestApp(app)


class ApiTest(unittest.TestCase):
    def test_api_root(self):
        res = app.get('/sra')
        self.assertEqual(res.status, '200 OK')
        self.assertEqual(res.content_type, 'application/json')

if __name__ == '__main__':
    unittest.main()