pytest_gae.

Pytest Plugin para aplicativos escritos com o Appengine do Google
Baixe Agora

pytest_gae. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • MIT/X Consortium Lic...
  • Nome do editor:
  • Petras Zdanavicius

pytest_gae. Tag


pytest_gae. Descrição

Pytest plugin para aplicativos escritos com appengine do Google pytest_gae é um plugin Pytest que ajuda você a testar aplicativos escritos com appengine.options do Google: * --with-gae: vira este plugin * --GAE-caminho: raiz do appengine (padrão Google_Appengine) * - GAE-Patch : A raiz do seu projeto (padrão ./), este projeto foi inspirado pelo plugin Nose-Grae para narizhttp: //code.google.com/p/nose-gae/usage: Deixe supor que temos um diretório que parece algo como Isso./ app.yaml index.yaml \ ict.py - # Testes 'dir teste_handlers.py Test_Models.pymain.py:#!/Usr/bin/env pythonfrom google.appengine.ext import importar webappfrom google.appengine.ext.webapp Import UsilFrom Google.appengine.ext. webapp.util Import Login_RequiredFrom Google.appengine.api Importar usuários da Google.appengine.ext Import DBClass MyModel (db.model): my_field = db.stringproperty (obrigatório = false) Classe IndexHandler (webapp.requesthandler): def obter (auto): self.response.out.write ('Index') CLA SS UsersHandler (webapp.requesthandler): @login_required def get (self): se users.is_current_user_admin (): self.response.out.write ('admin') else: self.response.out.write ('user') def make_application (): retorna webapp.wsgiapplication (, Debug = true) def ma main (): aplicativo = make_application () util.run_wsgi_app (aplicativo) se __Name__ == '__main__': main () Testing Modelstest_Models.py:From Google.appengine.ext Import DBIMPORT PYTESTFROM Importação MyModelDef test_basic (): m = mymodel (my_field = 'foo') afirmar 'foo' == m.my_fielddef test_new_model (): m = mymodel (my_field = 'foo') pytest.raises (db.notsavedError, lambda: m.key ()) def test_saved_model (): m = mymodel (my_field = 'foo') m.put () ASSERT M.KEY () Usando com o WebTESTWE poderia testar nossos manipuladores com a ajuda da WebTest Library.We criaram três funções de funchargs que nos permitem testar o aplicativo: * da perspectiva do usuário anônimo * da perspectiva do usuário autorizada * da perspectiva do administrador Devo fazer isso por alterando os.enviromenttest_handlers.py:Import OSFrom WebTest Importar TestAppFrom principal Importação Make_ApplicationDef pytest_funcarg__anon_app (solicitação): os.environ.update ({'user_eleil': '', 'User_id': '', 'auth_domain': ' Google ',' user_is_admin ':' 0 '}) Return TestApp (make_application ()) def pytest_funcarg__user_app (solicitação): os.environ.update ({' user_mail ':' user_id ':' 1 ',' Auth_domain ':' google ',' user_is_admin ':' 0 '}) retorna test app (make_application ()) def pytest_funcarg__admin_app (solicitação): os.environ.update ({' user_email ':' admin@google.com ' 'User_id': '2', 'auth_domain': 'google', 'user_is_admin': '1'}) retorna testepp (make_application ()) def test_index (anon_app): assert "index" in anon_app.get ('/ Índice ') Def test_user_with_user (user_app): assert "User" in user_app.get (' / Users ') def test_user_with_anon (anon_app): ASSERT' 302 movido temporariamente '== anon_app.get (' / Users '). statusDef test_user_with_admin ('. admin_app): assert "admin" em admin_app.get ('/ Users') Runni Ngpy.Test Tests --With-Gae - Grae-Path = GAE - Gray-Project-Path =. / SRC /: Plataforma Linux2 - Python 2.5.5 - Pytest-2.0.0Collected 7 Itemstests / Test_Handlers.py .... Testes / Test_Models.py ... ============ 7 Passado em 0,64 segundos ============ Requisitos: · Pitão · Py.test. Limitações: O plugin não impede que você use código / módulos que o ambiente do Appengine se recuse a ser executado. Então, você pode facilmente fazer algo assim: · Tomada de importação · Importar numpy. · E testes apenas passam. Mas você não pode executar este código no ambiente AppEngine, por causa do sandbox. Veja: Appengine Docs · Este plugin usa o código do Appengine interno e não há garantia de que o Google não vai mudar.


pytest_gae. Software Relacionado