16
TDD com App Engine e Python um jeito simples

TDD com Python e App Engine

Embed Size (px)

DESCRIPTION

O caminho das pedras de fazer TDD com Python no App Engine

Citation preview

Page 1: TDD com Python e App Engine

TDD com App Engine e Python

um jeito simples

Page 2: TDD com Python e App Engine

Pesquisa

● Quem já usa App Engine com Python?● Quem faz TDD com App Engine em Python?● Quem escreve testes?

Page 3: TDD com Python e App Engine

O que é o Google App Engine

Page 4: TDD com Python e App Engine

O que é o Google App Engine

Page 5: TDD com Python e App Engine

O que é o Google App Engine

Page 6: TDD com Python e 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)

Page 7: TDD com Python e App Engine

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

Page 8: TDD com Python e App Engine

O que mais?

● Uma interface de gerenciamento● É fácil trocar versões

o E fazer split entre versões

● Uma nova interface de gerenciamento novao Integrada com os outros serviços de cloud da

Google

Page 9: TDD com Python e App Engine

O que já tínhamos

● GAEUnito Deploy do código de teste em produçãoo Ainda funciona?

● Ferramental do SDKo Batteries not included

● NoseGAE, pytest-gaeo Some batteries included

● ?

Page 10: TDD com Python e App Engine

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 SDKo Faltam mais exemploso O jeito com que o Django lida com fixtures é duca

Page 11: TDD com Python e App Engine

Por que fazer mais um (continuação)

● Virtualenvs são legaiso Quebrar o Python do sistema é sempre ruimo 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

Page 12: TDD com Python e App Engine

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)!

Page 13: TDD com Python e App Engine

Como se usa?

Demo1. git clone

o [email protected]:rbanffy/testable_appengine.git

2. make venv3. nosetests

Page 14: TDD com Python e App Engine

O que falta fazer

● Importar hierarquias de objetos para testes● Tornar mais fácil usar em projetos já em

andamentoo Sobretudo manter o maquinário atualizadoo Se bem que isso pode nem ser importante

● Precisamos de mais usuárioso Que dêem mais palpites

Page 15: TDD com Python e App Engine

Dúvidas?

Page 16: TDD com Python e App Engine

Contato

about.me/rbanffy@rbanffyhttps://github.com/rbanffy/testable_appengine