2009-04-22 11 views
2

リモートのサードパーティのCGIベースのWebサービスとやりとりする複雑なWebアプリケーションをテストする必要があります。 Iamは、ダミーのWebサーバーにサードパーティサービスの一部を実装する予定です。テストケースについて完全なコントロールが可能です。 サードパーティのインターフェイスをエミュレートする単純なpython httpウェブサーバーまたはフレームワークを探しています。シンプルなWebサーバーまたはWebテストフレームワーク

答えて

4

使用cherrypy、Hello Worldのを見てみましょうかなり簡単ですね?

0

私はDjangoを調べます。

2

WSGIサービスで最も幸せなのは、CGIに最も似ているからです。

werkzeugをご覧ください。

2

標準モジュールwsgirefを見てみましょう:

https://docs.python.org/2.6/library/wsgiref.html

をそのページの最後には、小さな例です。このようなものは、すでにあなたのニーズに十分である可能性があります。

import cherrypy 

class HelloWorld(object): 
    def index(self): 
     return "Hello World!" 
    index.exposed = True 

cherrypy.quickstart(HelloWorld()) 

実行このコードを、あなたはlocalhostポート8080の準備ができて非常に高速なHello Worldのサーバーを持っている!!:

+0

+1:私はwsgirefサーバが彼の必要性のためにおそらく十分であることに同意します。 – nosklo

0

urllib、またはリモートWebサービスと通信するために使用しているモジュールは何かを模倣する(またはその用語が何であれ)ことがより簡単になるでしょうか?

はしても、単にurllib.urlopenは十分かもしれませんオーバーライド:

import urllib 
from StringIO import StringIO 

class mock_response(StringIO): 
    def info(self): 
     raise NotImplementedError("mocked urllib response has no info method") 
    def getinfo(): 
     raise NotImplementedError("mocked urllib response has no getinfo method") 

def urlopen(url): 
    if url == "http://example.com/api/something": 
     resp = mock_response("<xml></xml>") 
     return resp 
    else: 
     urllib.urlopen(url) 


is_unittest = True 

if is_unittest: 
    urllib.urlopen = urlopen 

print urllib.urlopen("http://example.com/api/something").read() 

私はAPIキーを持って前に私は、シンプルなAPIをエミュレートするために、here非常によく似たものを使用しました。

関連する問題