Supporting All Versions of Python All The Time With Tox
This talk explains modern techniques that any developer can use to support
multiple versions of Python. You probably already have a massive test suite
using a tool like nosetests, py.test, hand rolled unittest, etc. This talk
will focus on using the tox command
line tool to build and run your tests in all versions of Python, from 2.4 to
Jython and, most importantly, Python 3.
tox lets you set up isolated virtual environments to test
your module's deployment and compatibility with all major versions of Python.
It's easy to install and is flexible enough that it probably already supports
your existing test suite. With one simple command you can execute your test
suite in each version of Python, you can build its documentation with Sphinx, and get a nice printout of the
results. It has also been designed from the ground up to integrate into
continuous integration (CI) tools like Jenkins.
Using practical examples, this talk will show you how to toxify your existing
test suite and trick it out with the tox.ini config file. You'll also see how
to leverage a Jenkins matrix build so that each code checkin will run tests in
all versions of Python and report detailed failures.
Your app supports Python 3, right? No? Tox is the best way to develop in
parallel with 2 and 3. We'll go over how to set up tox for that.
Strategies For Testing Ajax
As a Python web developer you are probably familiar with the paradigms of
testing simple web applications. Your test case makes a GET / POST request,
your program responds with an HTML page, and your test verifies the HTML
elements. Unfortunately, today's typical web application is not so simple!
HTML response might deliver program code to run on the client's web browser.
The browser's runtime environment would then interact with your server-side
Python program and you now have a big problem: How does your test suite cover
both server-side functionality and client-side functionality?
This talk will use a real Python / Ajax web application as an example then
offer practical strategies for creating a fast, scalable test suite to help
ensure that each release of such an app works as intended. It goes beyond just
the tools and technologies; it examines architectural strategies — how
and when to use stubs, how to design a testable UI, etc — so that as
your application grows in size, your tests remain fast and effective.
Unicode In Python, Completely Demystified
This talks aims to help every single last person in the audience understand
exactly how to write Unicode-aware applications in Python 2. If necessary, we
will move to a Birds of Feather gathering, to the bar, to your hotel room,
I'll start hanging around your cube at work—whatever it
takes—until you completely get it. But it's really simple so bring an
open mind, a notepad, and get ready to create bullet proof Python software
that can read and write text in Arabic, Russian, Chinese, Klingon, et cetera.
As a citizen of the Python community you have the responsibility of creating