2012-03-23 5 views
1

sdkのソースを読み取ってこれが可能かどうかをすぐに判断できませんでした。app.yamlからwsgiアプリケーションとしてロード

しかし、dev_appserverがapp.yamlからロードするアプリケーションのwsgiバージョンを取得する方法はありますか?

私はこれは私が実際に手動でもうがらくたをしなければならないブロブストアロジックのための自動テストを書くことができませんでしたし、存在していた場合

def app_from_yaml(path_to_yaml): 
    ... 

のような機能があるだろう期待していました。何か案は?

+0

私は先に進み、このために機能要求を出しました。プレミアサポートチャンネルを通じて同様の回答を得た後。 http://code.google.com/p/googleappengine/issues/detail?id=7266 –

+0

webtestでweb2py GAEアプリケーションをテストしたいと思います。これには、あなたの質問に記載されているメカニズムが必要です。私がネット上で見つけることができる唯一の他の有用な関連情報はWSGIProxyです:http://www.alexconrad.org/2011/10/proxying-tests.html –

+0

ええ私はwsgiproxyでもやったことがあります、問題はあなたですHTTPのオーバーヘッドが発生し、実際には遅くなる可能性があります。私の日の仕事でアプリのためにテストスイートを実行するために3分と45分の違いがあります。 –

答えて

1

私はあなたが何をしているのか分からない。 dev_appserverは、さまざまなyamlファイルの解析、ルーティングの設定、API(App EngineとPythonの両方)のスタブ、アプリケーションサーバーをエミュレートする環境の制限など、アプリケーションをロードするときにdev_appserverが多くのことをしていることを強く疑うに。関数app_from_yaml(path_to_yaml)は、dev_appserver.pyの機能を実行する必要があります。 dev_appserver.pyは既にそれを実行しているので、誰も別の実装を追加するのに気にしませんでした。

私はあなたの問題を解決する2つの方法を参照してください。

  1. が、それは物事がリスクれ、現在行われている方法をリファクタリングする必要になるので、前者はかなり困難であること

に対するdev_appserver、実行テストを使用してアプリを起動ブロブストアAPIは、より多くのテスト可能微妙な回帰の導入。後者は、このような大きなテスト(実際には統合テスト)のためにたくさんのことをするものです。私たちはそれにガドリバを使用します。

具体的な例では、テスト中にアプリケーションを開始し、特定のURLを使用してblobをアップロードしてから別のURLにヒットして、ブロブが正しく処理されたかどうかを確認します。テストベッドを使用するのと同じくらいうまくはありませんが、機能はかなり単純で、かなり高速です。

+0

schuppe、考えてくれてありがとう、私はdev_appserverがリクエストハンドラをたくさん集めるだけではないということに同意します。それはまだHTTPヘッダー gaedriverが存在しているとは思えませんでしたが、私は戻って同様のことを書いていましたので、これをチェックしなければなりません。 ありがとう –

1

あなたが求めていることは100%確信していませんが、回答はgoogle.appengine.ext.webapp.util.run_wsgi_appにある可能性があります。

ブロブストアそのものに関しては、すでにgoogle.appengine.api.blobstore.blobstore_stubがあります(実際にあなたのコンテキストで「手作業」が意味するものは本当に理解できませんが、役に立たないかもしれません)。

+0

run_wsgi_appは私が求めているものの逆です。 blobstore_stubは方程式の一部ですが、私が知っている限り、アップロードのURLとその生成方法を制御することはできません。つまり、http:// testbedというURLを取得すると、それが立つようになります。example.com/_ah/ ........ "これはwebtestの下でwsgiとしてあなたのアプリケーションを実行しているときはどこにも行きません。私がアプリエンジンの魔法のURLを利用できるようにする唯一の方法は、devappserverまたはapp.yamlからwsgiアプリを入手してください。 –

関連する問題