Skip to main content

Short talks from the morning

I went to three talks in the morning session, which were loosely centered around the theme of testing and extreme programming:

Extreme Programming with Python in the Classroom
Michael Weigend

Michael's students in Germany used Python to create an English text editor for grade school students and a chat room program. They used XP concepts like user stories, big visible charts, test-driven development, and small iterations. One interesting bit of teaching methodology: Michael taught his students simple GUI programming techniques by just giving them pieces of working source code and letting them explore. I thought this was great, because it mirrors the way most kids learn to use computers in general (start using this thing, and see what happens). GUI code is especially well-suited to this, due to the visual feedback, and Python sweetens the deal, since the visual feedback is so immediate.

py.test and the py lib
Holger Krekel

PyTest was started because the unittest module was "unpleasant" to extend. It's currently used in the PyPy project, among others. Holger made a couple of main points about PyTest:
  • PyTest itself is external to your code. The metaphor is that it is running against your code. So unlike unittest, you're not responsible for invoking the test code within your test.
  • There are some neat features like test generators, which are generator functions that generate more tests. PyTest then runs all of these generated tests.
  • He emphasized the user-friendly stack traces in PyTest, which did look nice.
  • Finally, he spoke a bit about other parts of py.lib, including py.execnet, which allows you to send snippets of Python code elsewhere via SSH, popen, etc. to execute remotely.
The talk on PyTest was pretty good, but since I'm already a bit familiar with the unittest module, I would have liked it if Holger had taken a bit more time to distinguish PyTest from unittest.

Agile Testing with Python Test Frameworks
Grig Gheorghiu

This was a grab-bag talk that gave us a quick look at a lot of Python testing frameworks, most of which looked pretty neat, and many of which I'd never heard of before. I'll try to come back and turn these into hyperlinks. For now, here are there names, and short descriptions of the cooler ones he demoed:
  • PyLint
  • coverage
  • buildbot
  • PyUnitPerf, which adds time and load constraints to unit testing.
  • FitNesse, which allows the user to specify test inputs and expected outputs via simple HTML tables (even generated via a wiki, as they were in his example).
  • Selenium, which is a Javascript-based tool that uses your real web browser to execute scripted tests on the web. (Seemed kind of like Greasemonkey, but for testing). You can watch your browser zip through the test, step quickly or slowly, etc. It was very impressive to see.
  • Mentioned that Jython is enjoying a lot of popularity for testing Java code (all the advantages of Python for testing, but the main body of your code stays in Java).
  • Recommended avoiding an "automation cathedral." You should have exactly the amount of daily test automation that your current needs dictate.
  • Finally, pointed us to his blog on agile testing.


Popular posts from this blog

PyCon 2018 Call for Proposals is Open!

It’s here! PyCon 2018’s Call for Proposals has officially opened for talks, tutorials, posters, and education summit presentations. PyCon is made by you, so we need you to share what you’re working on, how you’re working on it, what you’ve learned, what you’re learning, and so much more.

Before we dive in, the deadlines:
Tutorial proposals are due November 24, 2017.Talk, Poster, and Education Summit proposals are due January 3, 2018.Who should write a proposal? Everyone!

If you’re reading this post, you should write a proposal. PyCon is about uniting and building the Python community, and we won’t advance as an open community if we’re not open with each other about what we’ve learned throughout our time in it. It isn’t about being the smartest one in the room, so we don’t just pick all of the expert talks. It’s about helping everyone move together. “A rising tide lifts all boats,” if you will.

We need beginner, intermediate, and advanced proposals on all sorts of topics. We also need b…

PyCon 2018 Launches New Site, Sponsorship Search

After two great years in Portland, PyCon is shipping off to Cleveland for the 2018 and 2019 renditions of the Python community's largest gathering. PyCon 2018 will take place May 9 through 17 with two days of tutorials, three days of talks, and four days of development sprints.

For more information, check out our newly refreshed website at and follow us here on the blog and at @pycon on Twitter.

New Website

The new site features a design centered on the historic landmark Terminal Tower, a 52 story skyscraper that overlooks downtown Cleveland. When it opened in 1930, the tower was the fourth tallest building in the world and the tallest building outside of New York City. Though its height no longer tops the charts, the tower and surrounding Tower City area remain highly important to the city. What once was a beacon to guide ship captains to Cleveland's port and airplane pilots to its airport, the tower now includes 508 LEDs that light up for the holida…

How to get ready for the PyCon development sprints

[A guest post by Kushal Das, one of the 2016 Sprint Coordinators]So — you have already decided to join in the PyCon development sprints! The sprints run for four days, from Thursday to Sunday after the conference. You do not have to be registered for the conference to attend the sprints! Some teams plan to write code over all four days, while some projects plan a shorter sprint if the organizers cannot stay for all four days.Can you start getting prepared for the sprint ahead of time? Yes!There are several things you can do ahead of time, that can save effort once you arrive at the sprints — and some preparations can even be made at home, before you arrive at PyCon:Have your operating system updated and patched — whether Mac, Windows, or Linux. This eliminates one possible source of problems with getting software up and running.Go ahead and install the version control system that will be used by the projects you are interested in. If you install both git and Mercurial on your computer…