おっと、あなたはいくつかのステップを逃しています。
プログラムに何もするように指示しなかったため、プログラムは何もしません。クラスを定義しただけです。それでは、何かをするように伝えましょう。unittestパッケージを使用して、処理をもう少し自動化します。
import unittest
from webtest import TestApp
class MyTests(unittest.TestCase):
def test_admin_login(self):
resp = self.TestApp.get('/admin')
print (resp.request)
if __name__ == '__main__':
unittest.main()
それを実行すると、次のようになります。
E
======================================================================
ERROR: test_admin_login (__main__.MyTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_foo.py", line 6, in test_admin_login
resp = self.TestApp.get('/admin')
AttributeError: 'MyTests' object has no attribute 'TestApp'
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (errors=1)
では、テストするアプリが必要です。どこで入手できますか?main
通常、 viaで作成しているWSGIアプリが必要になりますconfig.make_wsgi_app()
。pserve development.ini
最も簡単な方法は、アプリを実行するときと同じように、ロードすることです。を介してこれを行うことができますpyramid.paster.get_app()
。
import unittest
from pyramid.paster import get_app
from webtest import TestApp
class MyTests(unittest.TestCase):
def test_admin_login(self):
app = get_app('testing.ini')
test_app = TestApp(app)
resp = test_app.get('/admin')
self.assertEqual(resp.status_code, 200)
if __name__ == '__main__':
unittest.main()
必要なのは、と同様のINIファイルですdevelopment.ini
が、テスト用です。development.ini
テストのためだけに設定を行う必要があるまで、コピーすることができます。
unittest
うまくいけば、それはあなたにパッケージについてもっと学ぶための出発点を与えるでしょう。