
Test & Code
The Python Test Podcast hosted by Brian Okken
Latest episodes

Feb 25, 2016 • 58min
14: Continuous Integration with Travis CI – Josh Kalderimis
Interview with Josh Kalderimis from Travis CI.
Josh is a co-founder and Chief Post-It Officer at Travis CI.
Topics
What is Continuous Integration, CI
What is Travis CI
Some history of the company
travis-ci.org vs travis-ci.com and merging the two
Enterprise and the importance of security
Feature questions
Travis vs Jenkins
Travis notification through Slack
Reporting history of Travis results
Dealing with pytest results status other than pass/fail
Capturing std out and stderr logging from tests
Build artifacts
Tox and Travis
Using Selenium
What does a Chief Post-It Officer do
Differentiation between Travis and other CI options
Using Slack to keep remote teams communicating well
Travis team
Funding open source projects
Travis Foundation
Rails Girls Summer of Code
Open source grants
Mustaches and beards
Shite shirts
New Zealand
What does Team Periwinkle do
Links
Jeff Knupp's Open Sourcing a Python Project the Right Way
Sven's blog post when Travis started
Sven's mustache and Josh's beard
Travis CI for open source
Travis CI for private repositories and enterprise
Slack
Travis Foundation
Rails Girls Summer of Code
Talk Python to Me Podcast
★ Support this podcast on Patreon ★

Feb 17, 2016 • 21min
13: Ian Cordasco – Betamax
Testing apps that use requests without using mock.
Interview with Ian Cordasco (@sigmavirus24)
Topics:
Betamax - python library for replaying requests interactions for use in testing.
requests
github3.py
Pycon 2015 talk: Ian Cordasco - Cutting Off the Internet: Testing Applications that Use Requests - PyCon 2015
Pytest and using Betamax with pytest fixtures
The utility (or uselessness) of teaching programming with Java (My own rant mainly)
Rackspace and Ian’s role at Rackspace and OpenStack
Python Code Quality Authority: flake8, pep8, mccabe, pylint, astroid, …
Static code analysis and what to use which tool when.
Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015
Links:
Testing Python-Requests with Betamax
Cutting Off the Internet: Testing Applications that Use Requests - PyCon 2015
github3.py
requests
Rackspace
Openstack
Python Code Quality Authority and documentation
GitLab
Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015
Other Betamax resources:
Betamaxing Boto3
Using Betamax with pytest fixtures
Isolated @memoize
★ Support this podcast on Patreon ★

Feb 10, 2016 • 41min
12: Coverage.py with Ned Batchelder
In this episode I interview Ned Batchelder.
I know that coverage.py is very important to a lot of people to understand how much of their code is being covered by their test suites.
Since I'm far from an expert on coverage, I asked Ned to discuss it on the show.
I'm also quite a fan of Ned's 2014 PyCon talk "Getting Started Testing", so I definitely asked him about that.
We also discuss edX, Python user groups, PyCon talks, and more.
Some of what's covered (pun intended) in this episode:
coverage.py
types of coverage
Line coverage
branch coverage
Behavior coverage
Data coverage
How Ned became the owner of coverage.py
Running tests from coverage.py vs running coverage from test runner.
edX
what is it
what Ned's role is
Ned's blog
Ned's PyCon 2014 talk "Getting Started Testing"
Teaching testing and the difficulty of the classes being part of unittest
fixtures package
some of the difficulties of teaching unittest because of it's class based system.
the history of classes in unittest coming from java's jUnit implementation
Boston's Python Group
PyCon in Portland
Ned to do a talk here "Machete mode debugging".
Practicing PyCon talks at local group meetings.
At the very least, practice it in front of a live audience.
Links:
Ned Batchelder
Coverage
Coverage documentation
django-nose
pytest-django
edX
open edX
Boston Python User Group
Portland Python User Group - I need to go to these
PyCon 2016 - Planning on attending, it's in Portland. Yay!
Getting Started Testing - Ned's 2014 Pycon talk
Special Guest: Ned Batchelder.
★ Support this podcast on Patreon ★

Feb 4, 2016 • 14min
11: pytest assert magic
How pytest, unittest, and nose deal with assertions.
The job of the test framework to tell developers how and why their tests failed is a difficult job.
In this episode I talk about assert helper functions and the 3 methods pytest uses to get around having users need to use assert helper functions.
★ Support this podcast on Patreon ★

Jan 31, 2016 • 20min
10: Test Case Design using Given-When-Then from BDD
Given-When-Then is borrowed from BDD and is my favorite structure for test case design.
It doesn’t matter if you are using pytest, unittest, nose, or something completely different, this episode will help you write better tests.
The Given-When-Then structure for test method/function development.
How and why to utilize fixtures for your given or precondition code.
Similarities with other structure discriptions.
Setup-Test-Teardown
Setup-Excercise-Verify-Teardown.
Arrange-Act-Assert
Preconditions-Trigger-Postconditions.
Benefits
Communicate the purpose of your test more clearly
Focus your thinking while writing the test
Make test writing faster
Make it easier to re-use parts of your test
Highlight the assumptions you are making about the test preconditions
Highlight what outcomes you are expecting and testing against.
Links discussed in the show:
Mechanics of pytest, unittest, nose
unittest fixture reference
nose fixture reference
pytest fixtures (series of posts starting here)
pytest style fixtures
pytest parameterized fixtures
★ Support this podcast on Patreon ★

Jan 19, 2016 • 45min
9: Harry Percival : Testing Web Apps with Python, Selenium, Django
Intro to Harry Percival, his background and story of how he got into TDD and ended up writing a bookComparing using unittest and pytest with applicability to testing django projects. Functional end to end testing with selenium.The django test client for middle level tests.test isolationdjango and isolated unit testsunit tests vs integration testsTesting done by the development team without an external QADouble loop TDD: Functional test first, then unit testsSpikes: investigations without testsHarry's experience with having a freely available web version of a book that is also intended to be sold.Update: Comment from Harry Percival on 19-Jan-2014 I might have been a bit down on unit tests vs functional tests in that "unit tests never fail comment". Not true at all, particularly as we've just been thru upgrading django on our core system, and the unit tests really saved our bacon on that one...LinksTest-Driven Development with PythonObey the Testing Goat - Harry's site dedicated to the book and related posts.Python Testing with unittest, nose, pytestGary Bernhardt's talk, Boundaries talk including a discussion of "Functional Core, Imperative Shell".Video of Boundaries talk on youtube
★ Support this podcast on Patreon ★

Dec 15, 2015 • 9min
8: Agile vs Agility : Agile Is Dead (Long Live Agility)
In today's podcast, I dodge the question of "What do you think of Agile?" by reading an essay from Dave Thomas
★ Support this podcast on Patreon ★

Oct 21, 2015 • 30min
7: The Waterfall Model and “Managing the Development of Large Software Systems”
The waterfall model has been used and modified and changed and rebelled against since before I started programming. Waterfall such an important character in the story of software development that we should get to know it a better.
★ Support this podcast on Patreon ★

Oct 20, 2015 • 7min
6: Writing software is like nothing else
My experience with writing software comes from my experience: where I grew up, what eras I lived through, what my economical and geographical experiences have been, when I learned to code, and what projects I've worked on.Sponsored By:Patreon Supporters: Help support the show with as little as $1 per month and be the first to know when new episodes come out.
★ Support this podcast on Patreon ★

Sep 23, 2015 • 8min
5: Test Classes: No OO experience required
Setup and Teardown
Benefits of Test Fixtures
code reuse
cleanup of resources
errors vs failures
focusing your thinking on what you are testing and what you are not
scoping for efficiency
Brief look at pytest named fixtures
References
pytest fixtures series
pytest fixtures nuts & bolts
pytest session scoped fixtures
unittest fixtures
nose fixtures mentioned in introduction
nose fixture reference post
how to run a single class
★ Support this podcast on Patreon ★