SlideShare a Scribd company logo
TDD with App Engine and
Python
the easy way
Show of hands
● Who already uses App Engine with Python?
● Who does TDD with App Engine and
Python?
● Who writes tests?
O que é o Google App Engine
O que é o Google App Engine
O que é o Google App Engine
What is Google App Engine
● A PaaS - platform as a service
● Specific APIs and libraries
o but can run Django, Flask etc adapted apps
● You don't worry about the server
● Google's team manages them for you
● A local development environment
● Deployment using the SDK (or git - for Java)
What else is in Google App Engine
● Automagic spin-up and spin-down of servers
● Pay-as-you-go
● Datastore (NoSQL) + Google Cloud SQL
● Queues - for asynchronous tasks
● NDB - asynchronous data access (and
more)
● Authentication
● A framework that encourages good practices
More?
● A management interface
● You can keep multiple versions deployed
o And split traffic between them
● A brand-new management interface
o Integrated with the other cloud products family
What we had before?
● GAEUnit
o Deploys testing code to production
o Does it still work?
● SDK testbed
o Batteries not included
● NoseGAE, pytest-gae
o Some batteries included
● ?
Why build another one?
● Include more batteries
● Being opinionated can be good
o Conventions over configuration helps newcomers
● Some things are missing from the vanilla
SDK
o Examples
o The way Django uses its fixtures is amazing
Why build another one? (continued)
● Virtualenvs are cool
o To break the system Python is always painful
o Built-in Python may not be an option
● If it's hard to test, people won't
o Laziness is one of the virtues of a programmer (even
if, in this case, it may not be)
● A little bit of support goes a long way
What was done?
● A skeleton project (on GitHub)
● Creates a virtualenv
● Runs sanity tests
● Loads data from a JSON file
● Assemble everything with a Makefile
● Tests do not rely on the development server
● You can run ipdb (in your tests)!
How do you use it?
Demo
1. git clone
o git@github.com:rbanffy/testable_appengine.git
2. make venv
3. nosetests (or py.test)
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
Questions?
Contact
about.me/rbanffy
@rbanffy
https://github.com/rbanffy/testable_appengine

More Related Content

What's hot (20)

PDF
Why You Should Start Using Docker
Alexandru Bolboaca
 
PDF
User story workflow (eng)
Anatoliy Okhotnikov
 
PDF
Its easy! contributing to open source - Devnexus 2020
César Hernández
 
PDF
Es fácil contribuir al open source - Bolivia JUG 2020
César Hernández
 
PPT
icebreakerwithdevops-150218112943-conversion-gate02
Manohar Kumar
 
PDF
Civilized Git Process
Tu Hoang
 
PPTX
Creating a reasonable project boilerplate
Stanislav Petrov
 
PDF
QA 4 python
BeDjango
 
PDF
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
DevClub_lv
 
PPTX
How do we test nodejs apps?
Michal Juhas
 
PDF
Szczepan.faber.gradle
magda3695
 
PPTX
TDD in Go with Ginkgo and Gomega
Eddy Reyes
 
PDF
It is easy contributing to open source - JCON 2020
César Hernández
 
PDF
Introduction to Spock: A Unit Testing Framework
Knoldus Inc.
 
PDF
Bgoug 2019.11 test your pl sql - not your patience
Jacek Gebal
 
PPTX
Typescript kata The TDD style 2 edition
Ronnie Hegelund
 
PDF
Creando microservicios con Java y Microprofile - Nicaragua JUG
César Hernández
 
PDF
Funcargs & other fun with pytest
Brianna Laugher
 
PDF
100 tests per second - 40 releases per week
Lars Thorup
 
PDF
Sub conf 2010
Manuel Blechschmidt
 
Why You Should Start Using Docker
Alexandru Bolboaca
 
User story workflow (eng)
Anatoliy Okhotnikov
 
Its easy! contributing to open source - Devnexus 2020
César Hernández
 
Es fácil contribuir al open source - Bolivia JUG 2020
César Hernández
 
icebreakerwithdevops-150218112943-conversion-gate02
Manohar Kumar
 
Civilized Git Process
Tu Hoang
 
Creating a reasonable project boilerplate
Stanislav Petrov
 
QA 4 python
BeDjango
 
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
DevClub_lv
 
How do we test nodejs apps?
Michal Juhas
 
Szczepan.faber.gradle
magda3695
 
TDD in Go with Ginkgo and Gomega
Eddy Reyes
 
It is easy contributing to open source - JCON 2020
César Hernández
 
Introduction to Spock: A Unit Testing Framework
Knoldus Inc.
 
Bgoug 2019.11 test your pl sql - not your patience
Jacek Gebal
 
Typescript kata The TDD style 2 edition
Ronnie Hegelund
 
Creando microservicios con Java y Microprofile - Nicaragua JUG
César Hernández
 
Funcargs & other fun with pytest
Brianna Laugher
 
100 tests per second - 40 releases per week
Lars Thorup
 
Sub conf 2010
Manuel Blechschmidt
 

Similar to TDD with Python and App Engine (20)

PPTX
Testing Django APIs
tyomo4ka
 
PPTX
Deploy Your Website with GCP Workshop slides of GDG on Campus UNSTPB
AmaraCostachiu
 
PDF
Scala and Play with Gradle
Wei Chen
 
PDF
High Performance Software Engineering Teams
Lars Thorup
 
PDF
DevOps for TYPO3 Teams and Projects
Fedir RYKHTIK
 
PDF
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Sinan KOZAK
 
PPTX
The Professional Programmer
Dave Cross
 
PDF
Selenium Online Training.pdf
SpiritsoftsTraining
 
PDF
Selenium Online Training.pdf
SpiritsoftsTraining
 
PDF
Selenium Online Training.pdf
SpiritsoftsTraining
 
PDF
Selenium Online Training.pdf
SpiritsoftsTraining
 
PDF
Adding Modularity Afterward with Embedded OSGi
Bob Paulin
 
PDF
Passing the Joel Test in the PHP World (phpbnl10)
Lorna Mitchell
 
PPTX
Cloud Native CI/CD with Spring Cloud Pipelines
Lars Rosenquist
 
PPTX
Cloud Native CI/CD with Spring Cloud Pipelines
Lars Rosenquist
 
PDF
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
Adam Doyle
 
PDF
Instant LAMP Stack with Vagrant and Puppet
Patrick Lee
 
PPTX
Continuous testing
Oleksandr Metelytsia
 
PDF
Software Testing Basic Concepts
wesovi
 
PDF
Selenium Online Training.pdf
SpiritsoftsTraining
 
Testing Django APIs
tyomo4ka
 
Deploy Your Website with GCP Workshop slides of GDG on Campus UNSTPB
AmaraCostachiu
 
Scala and Play with Gradle
Wei Chen
 
High Performance Software Engineering Teams
Lars Thorup
 
DevOps for TYPO3 Teams and Projects
Fedir RYKHTIK
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Sinan KOZAK
 
The Professional Programmer
Dave Cross
 
Selenium Online Training.pdf
SpiritsoftsTraining
 
Selenium Online Training.pdf
SpiritsoftsTraining
 
Selenium Online Training.pdf
SpiritsoftsTraining
 
Selenium Online Training.pdf
SpiritsoftsTraining
 
Adding Modularity Afterward with Embedded OSGi
Bob Paulin
 
Passing the Joel Test in the PHP World (phpbnl10)
Lorna Mitchell
 
Cloud Native CI/CD with Spring Cloud Pipelines
Lars Rosenquist
 
Cloud Native CI/CD with Spring Cloud Pipelines
Lars Rosenquist
 
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
Adam Doyle
 
Instant LAMP Stack with Vagrant and Puppet
Patrick Lee
 
Continuous testing
Oleksandr Metelytsia
 
Software Testing Basic Concepts
wesovi
 
Selenium Online Training.pdf
SpiritsoftsTraining
 
Ad

More from Ricardo Bánffy (15)

PDF
Continuous testing of a terminal font
Ricardo Bánffy
 
PDF
Monitoring and automation
Ricardo Bánffy
 
PDF
Measure everything you can
Ricardo Bánffy
 
PDF
Lessons learned after 190M lessons served
Ricardo Bánffy
 
PDF
Anti-patterns
Ricardo Bánffy
 
PPTX
TDD com Python e App Engine
Ricardo Bánffy
 
PDF
Da persistência de idéias ruins
Ricardo Bánffy
 
PDF
Boredom comes to_those_who_wait
Ricardo Bánffy
 
PDF
Quem espera sempre cansa
Ricardo Bánffy
 
ODP
Extreme Programming
Ricardo Bánffy
 
ODP
Django para infográficos
Ricardo Bánffy
 
PPT
Faça seu próprio servidor pirata com OpenVZ
Ricardo Bánffy
 
ODP
Ganhando dinheiro com software livre
Ricardo Bánffy
 
Continuous testing of a terminal font
Ricardo Bánffy
 
Monitoring and automation
Ricardo Bánffy
 
Measure everything you can
Ricardo Bánffy
 
Lessons learned after 190M lessons served
Ricardo Bánffy
 
Anti-patterns
Ricardo Bánffy
 
TDD com Python e App Engine
Ricardo Bánffy
 
Da persistência de idéias ruins
Ricardo Bánffy
 
Boredom comes to_those_who_wait
Ricardo Bánffy
 
Quem espera sempre cansa
Ricardo Bánffy
 
Extreme Programming
Ricardo Bánffy
 
Django para infográficos
Ricardo Bánffy
 
Faça seu próprio servidor pirata com OpenVZ
Ricardo Bánffy
 
Ganhando dinheiro com software livre
Ricardo Bánffy
 
Ad

Recently uploaded (20)

PPT
Computer Securityyyyyyyy - Chapter 1.ppt
SolomonSB
 
PPTX
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
PDF
Azure_DevOps introduction for CI/CD and Agile
henrymails
 
PPTX
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
PPTX
ONLINE BIRTH CERTIFICATE APPLICATION SYSYTEM PPT.pptx
ShyamasreeDutta
 
PPT
Computer Securityyyyyyyy - Chapter 2.ppt
SolomonSB
 
PPTX
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
PPTX
西班牙武康大学毕业证书{UCAMOfferUCAM成绩单水印}原版制作
Taqyea
 
PPTX
PE introd.pptxfrgfgfdgfdgfgrtretrt44t444
nepmithibai2024
 
PDF
Build Fast, Scale Faster: Milvus vs. Zilliz Cloud for Production-Ready AI
Zilliz
 
PPTX
Orchestrating things in Angular application
Peter Abraham
 
PDF
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
PDF
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
PPTX
PM200.pptxghjgfhjghjghjghjghjghjghjghjghjghj
breadpaan921
 
PPTX
L1A Season 1 Guide made by A hegy Eng Grammar fixed
toszolder91
 
PPT
introduction to networking with basics coverage
RamananMuthukrishnan
 
PPTX
原版西班牙莱昂大学毕业证(León毕业证书)如何办理
Taqyea
 
PPTX
Optimization_Techniques_ML_Presentation.pptx
farispalayi
 
DOCX
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
PPTX
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 
Computer Securityyyyyyyy - Chapter 1.ppt
SolomonSB
 
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
Azure_DevOps introduction for CI/CD and Agile
henrymails
 
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
ONLINE BIRTH CERTIFICATE APPLICATION SYSYTEM PPT.pptx
ShyamasreeDutta
 
Computer Securityyyyyyyy - Chapter 2.ppt
SolomonSB
 
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
西班牙武康大学毕业证书{UCAMOfferUCAM成绩单水印}原版制作
Taqyea
 
PE introd.pptxfrgfgfdgfdgfgrtretrt44t444
nepmithibai2024
 
Build Fast, Scale Faster: Milvus vs. Zilliz Cloud for Production-Ready AI
Zilliz
 
Orchestrating things in Angular application
Peter Abraham
 
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
PM200.pptxghjgfhjghjghjghjghjghjghjghjghjghj
breadpaan921
 
L1A Season 1 Guide made by A hegy Eng Grammar fixed
toszolder91
 
introduction to networking with basics coverage
RamananMuthukrishnan
 
原版西班牙莱昂大学毕业证(León毕业证书)如何办理
Taqyea
 
Optimization_Techniques_ML_Presentation.pptx
farispalayi
 
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 

TDD with Python and App Engine

  • 1. TDD with App Engine and Python the easy way
  • 2. Show of hands ● Who already uses App Engine with Python? ● Who does TDD with App Engine and Python? ● Who writes tests?
  • 3. O que é o Google App Engine
  • 4. O que é o Google App Engine
  • 5. O que é o Google App Engine
  • 6. What is Google App Engine ● A PaaS - platform as a service ● Specific APIs and libraries o but can run Django, Flask etc adapted apps ● You don't worry about the server ● Google's team manages them for you ● A local development environment ● Deployment using the SDK (or git - for Java)
  • 7. What else is in Google App Engine ● Automagic spin-up and spin-down of servers ● Pay-as-you-go ● Datastore (NoSQL) + Google Cloud SQL ● Queues - for asynchronous tasks ● NDB - asynchronous data access (and more) ● Authentication ● A framework that encourages good practices
  • 8. More? ● A management interface ● You can keep multiple versions deployed o And split traffic between them ● A brand-new management interface o Integrated with the other cloud products family
  • 9. What we had before? ● GAEUnit o Deploys testing code to production o Does it still work? ● SDK testbed o Batteries not included ● NoseGAE, pytest-gae o Some batteries included ● ?
  • 10. Why build another one? ● Include more batteries ● Being opinionated can be good o Conventions over configuration helps newcomers ● Some things are missing from the vanilla SDK o Examples o The way Django uses its fixtures is amazing
  • 11. Why build another one? (continued) ● Virtualenvs are cool o To break the system Python is always painful o Built-in Python may not be an option ● If it's hard to test, people won't o Laziness is one of the virtues of a programmer (even if, in this case, it may not be) ● A little bit of support goes a long way
  • 12. What was done? ● A skeleton project (on GitHub) ● Creates a virtualenv ● Runs sanity tests ● Loads data from a JSON file ● Assemble everything with a Makefile ● Tests do not rely on the development server ● You can run ipdb (in your tests)!
  • 13. How do you use it? Demo 1. git clone o [email protected]:rbanffy/testable_appengine.git 2. make venv 3. nosetests (or py.test)
  • 14. 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

Editor's Notes

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