TDD com App Engine e
Python
um jeito simples
Pesquisa
● Quem já usa App Engine com Python?
● Quem faz TDD com App Engine em Python?
● Quem escreve testes?
O que é o Google App Engine
O que é o Google App Engine
O que é o Google App Engine
O que é o Google App Engine
● Uma plataforma de PaaS
● APIs e bibliotecas "próprias"
o mas roda aplicações Django, Flask etc
● Você nunca se preocupa com o servidor
● O time da Google administra tudo pra você
● Ambiente de desenvolvimento local
● Deployment com o SDK (ou com git)
O que tem no Google App Engine
● Spin-up e spin-down automágico
● Pay-as-you-go
● Datastore (NoSQL) + Google Cloud SQL
● Filas - para processamento assíncrono
● NDB - Quem não espera não cansa
● Autenticação
● Um framework que incentiva boas práticas
o E castiga você pelas más
O que mais?
● Uma interface de gerenciamento
● É fácil trocar versões
o E fazer split entre versões
● Uma nova interface de gerenciamento nova
o Integrada com os outros serviços de cloud da
Google
O que já tínhamos
● GAEUnit
o Deploy do código de teste em produção
o Ainda funciona?
● Ferramental do SDK
o Batteries not included
● NoseGAE, pytest-gae
o Some batteries included
● ?
Por que fazer mais um
● Incluir pilhas no pacote
● Ter opinião pode ser uma boa idéia
o Convenção sobre configuração ajuda
● Algumas coisas fazem falta no ferramental
do SDK
o Faltam mais exemplos
o O jeito com que o Django lida com fixtures é duca
Por que fazer mais um (continuação)
● Virtualenvs são legais
o Quebrar o Python do sistema é sempre ruim
o O Python do sistema pode não ser uma opção
 Algumas pessoas usam Windows
● Quando é difícil testar, ninguém testa
o preguiça é a primeira virtude do programador
(embora, nesse caso, não seja uma)
● Um pouco de hand-holding ajuda
O que fizemos
● Um projeto-base (no GitHub)
● Monta um virtualenv
● Roda testes de sanidade
● Dados de teste em JSON
● Ambiente montado com um Makefile
● Testes independem do framework que você
está usando
● Dá pra usar ipdb (nos testes)!
Como se usa?
Demo
1. git clone
o git@github.com:rbanffy/testable_appengine.git
2. make venv
3. nosetests
O que falta fazer
● Importar hierarquias de objetos para testes
● Tornar mais fácil usar em projetos já em
andamento
o Sobretudo manter o maquinário atualizado
o Se bem que isso pode nem ser importante
● Precisamos de mais usuários
o Que dêem mais palpites
Dúvidas?
Contato
about.me/rbanffy
@rbanffy
https://github.com/rbanffy/testable_appengine

TDD com Python e App Engine

  • 1.
    TDD com AppEngine e Python um jeito simples
  • 2.
    Pesquisa ● Quem jáusa App Engine com Python? ● Quem faz TDD com App Engine em Python? ● Quem escreve testes?
  • 3.
    O que éo Google App Engine
  • 4.
    O que éo Google App Engine
  • 5.
    O que éo Google App Engine
  • 6.
    O que éo Google App Engine ● Uma plataforma de PaaS ● APIs e bibliotecas "próprias" o mas roda aplicações Django, Flask etc ● Você nunca se preocupa com o servidor ● O time da Google administra tudo pra você ● Ambiente de desenvolvimento local ● Deployment com o SDK (ou com git)
  • 7.
    O que temno Google App Engine ● Spin-up e spin-down automágico ● Pay-as-you-go ● Datastore (NoSQL) + Google Cloud SQL ● Filas - para processamento assíncrono ● NDB - Quem não espera não cansa ● Autenticação ● Um framework que incentiva boas práticas o E castiga você pelas más
  • 8.
    O que mais? ●Uma interface de gerenciamento ● É fácil trocar versões o E fazer split entre versões ● Uma nova interface de gerenciamento nova o Integrada com os outros serviços de cloud da Google
  • 9.
    O que játínhamos ● GAEUnit o Deploy do código de teste em produção o Ainda funciona? ● Ferramental do SDK o Batteries not included ● NoseGAE, pytest-gae o Some batteries included ● ?
  • 10.
    Por que fazermais um ● Incluir pilhas no pacote ● Ter opinião pode ser uma boa idéia o Convenção sobre configuração ajuda ● Algumas coisas fazem falta no ferramental do SDK o Faltam mais exemplos o O jeito com que o Django lida com fixtures é duca
  • 11.
    Por que fazermais um (continuação) ● Virtualenvs são legais o Quebrar o Python do sistema é sempre ruim o O Python do sistema pode não ser uma opção  Algumas pessoas usam Windows ● Quando é difícil testar, ninguém testa o preguiça é a primeira virtude do programador (embora, nesse caso, não seja uma) ● Um pouco de hand-holding ajuda
  • 12.
    O que fizemos ●Um projeto-base (no GitHub) ● Monta um virtualenv ● Roda testes de sanidade ● Dados de teste em JSON ● Ambiente montado com um Makefile ● Testes independem do framework que você está usando ● Dá pra usar ipdb (nos testes)!
  • 13.
    Como se usa? Demo 1.git clone o git@github.com:rbanffy/testable_appengine.git 2. make venv 3. nosetests
  • 14.
    O que faltafazer ● Importar hierarquias de objetos para testes ● Tornar mais fácil usar em projetos já em andamento o Sobretudo manter o maquinário atualizado o Se bem que isso pode nem ser importante ● Precisamos de mais usuários o Que dêem mais palpites
  • 15.
  • 16.

Notas do Editor

  • #6 So all its cousins should be perceived as a single family