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

May 15, 2020 • 30min
113: Technical Debt - James Smith
Technical debt has to be dealt with on a regular basis to have a healthy product and development team.
The impacts of technical debt include emotional drain on engineers and slowing down development and can adversely affect your hiring ability and retention.
But really, what is technical debt? Can we measure it? How do we reduce it, and when?
James Smith, the CEO of Bugsnag, joins the show to talk about technical debt and all of these questions.Special Guest: James Smith.Sponsored By:AcePythonInterviews.com: Get all the confidence you need to ace your next interview.ConfigCat.com: Release features faster with less risk with ConfigCat feature flags. Promo Code: TESTANDCODE
★ Support this podcast on Patreon ★

May 8, 2020 • 45min
112: Six Principles of Readable Tests - David Seddon
"Code is read much more often than it is written." - Guido van Rossum
This is true for both production code and test code.
When you are trying to understand why a test is failing, you'll be very grateful to the test author if they've taken the care to make it readable.
David Seddon came up with 6 principles to help us write more readable tests.
We discuss these, as well as more benefits of readable tests.
David's 6 Principles of Readable Tests:
Profit from the work of others
Put naming to work
Show only what matters
Don’t repeat yourself
Arrange, act, assert
Aim high
Special Guest: David Seddon.Sponsored By:PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code: TESTANDCODE22Links:How to write readable tests (presentation) · David SeddonHow to write readable tests (slides)pytestWebTest factory_boydjango-webtest
★ Support this podcast on Patreon ★

May 2, 2020 • 49min
111: Subtests in Python with unittest and pytest - Paul Ganssle
In both unittest and pytest, when a test function hits a failing assert, the test stops and is marked as a failed test.
What if you want to keep going, and check more things?
There are a few ways. One of them is subtests.
Python's unittest introduced subtests in Python 3.4.
pytest introduced support for subtests with changes in pytest 4.4 and a plugin, called pytest-subtests.
Subtests are still not really used that much.
But really, what are they? When could you use them?
And more importantly, what should you watch out for if you decide to use them?
That's what Paul Ganssle and I will be talking about today.Special Guest: Paul Ganssle.Sponsored By:ConfigCat.com: Release features faster with less risk with ConfigCat feature flags. Promo Code: TESTANDCODEWeeklyPythonExercise.com: Become a more fluent Python developer.Links:Subtests in Python — Paul's article on subtestssubtests in unittest - Python docs pytest-subtests: plugin to support subtests in pytestpytest-check: A pytest plugin that allows multiple failures per test.
★ Support this podcast on Patreon ★

Apr 25, 2020 • 25min
110: Testing Django - from unittest to pytest - Adam Parkin
Django supports testing out of the box with some cool extensions to unittest. However, many people are using pytest for their Django testing, mostly using the pytest-django plugin.
Adam Parkin, who is known online as CodependentCodr, joins us to talk about migrating an existing Django project from unittest to pytest. Adam tells us just how easy this is.Special Guest: Adam Parkin.Sponsored By:PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code: TESTANDCODE22Links:Django Tutorial, on testingThe Django docs on testing & the test databaseThe Django docs on the TestCase classpytest-django docs
★ Support this podcast on Patreon ★

Apr 14, 2020 • 30min
109: Testing in Financial Services - Eric Bergemann
Financial services have their own unique testing development challenges. But they also have lots of the same challenges as many other software projects.
Eric Bergemann joins Brian Okken to discuss:
Specific testing challenges in the financial services domain
CI/CD : Continuous Integration, Continuous Deployment
TDD : Test Driven Development
Confidence from testable applications
Testing strategies to add coverage to legacy systems
Testing the data and test cases themselves
DevOps
Continuous testing
Manual testing procedures
BDD & Gherkin
Hiring in vs training industry knowledge
Special Guest: Eric Bergemann.Sponsored By:ConfigCat.com: Release features faster with less risk with ConfigCat feature flags. Promo Code: TESTANDCODELinks:ParagonThe Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win
★ Support this podcast on Patreon ★

Apr 9, 2020 • 32min
108: PySpark - Jonathan Rioux
Apache Spark is a unified analytics engine for large-scale data processing.
PySpark blends the powerful Spark big data processing engine with the Python programming language to provide a data analysis platform that can scale up for nearly any task.
Johnathan Rioux, author of "PySpark in Action", joins the show and gives us a great introduction of Spark and PySpark to help us decide how to get started and decide whether or not to decide if Spark and PySpark are right you.Special Guest: Jonathan Rioux.Sponsored By:PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code: TESTANDCODE22Links:PySpark in ActionSparkPySpark documentationJoel Grus, livecoding
★ Support this podcast on Patreon ★

Mar 27, 2020 • 36min
107: Property Based Testing in Python with Hypothesis - Alexander Hultnér
Hypothesis is the Python tool used for property based testing.
Hypothesis claims to combine "human understanding of your problem domain with machine intelligence to improve the quality of your testing process while spending less time writing tests."
In this episode Alexander Hultnér introduces us to property based testing in Python with Hypothesis.
Some topics covered:
What is property based testing
Thinking differently for property based testing
Using hypothesis / property based testing in conjunction with normal testing
Failures saved and re-run
What parts of development/testing is best suited for hypothesis / property based testing
Comparing function implementations
Testing against REST APIs that use Open API / Swagger with schemathesis
Changing the number of tests in different test environments
System, integration, end to end, and unit tests
Special Guest: Alexander Hultnér.Sponsored By:PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code: TESTANDCODE22Links:Hypothesis homeHypothesis docsTest Fast, Fix More - Property based testing with Hypothesis by Alexander Hultnér - YouTubeQuickcheck, Grandfather of property based testingBeyond Unit Tests, Hillel Wayne, PyCon 2018Better Testing With Less Code, Matt Bachmann, PyCon 2016Choosing properties for property-based testing (F#)schemathesis: Hypothesis + Open API / Swagger for testing web applications
★ Support this podcast on Patreon ★

Mar 20, 2020 • 50min
106: Visual Testing : How IDEs can make software testing easier - Paul Everitt
IDEs can help people with automated testing.
In this episode, Paul Everitt and Brian discuss ways IDEs can encourage testing and make it easier for everyone, including beginners. We discuss features that exist and are great, as well as what is missing.
The conversation also includes topics around being welcoming to new contributors for both open source and professional projects.
We talk about a lot of topics, and it's a lot of fun. But it's also important. Because IDEs can make testing
Some topics discussed:
Making testing more accessible
Test First vs teaching testing last
TDD workflow
Autorun
Rerunning last failures
Different ways to run different levels of tests
Command line flags and how to access them in IDEs
pytest.ini
zooming in and out of test levels
running parametrizations
running tests with coverage and profiling
parametrize vs parameterize
parametrization identifiers
pytest fixture support
global configurations / configuration templates
coverage and testing and being inviting to new contributors
confidence in changes and confidence in contributions
navigating code, tests, fixtures
grouping tests in modules, classes, directories
BDD, behavior driven development, cucumber, pytest-bdd
web development testing
parallel testing with xdist and IDE support
refactor rename
Special Guest: Paul Everitt.Links:Python Testing with pytest — The pytest bookPyCharmPyCharm proepisode 54: Python 1994 - Paul Everittpytest-xdist
★ Support this podcast on Patreon ★

15 snips
Mar 11, 2020 • 30min
105: TAP: Test Anything Protocol - Matt Layman
The Test Anything Protocol, or TAP, is a way to record test results in a language agnostic way, predates XML by about 10 years, and is still alive and kicking.
Matt Layman has contributed to Python in many ways, including his educational newsletter, and his Django podcast, Django Riffs.
Matt is also the maintainer of tap.py and pytest-tap, two tools that bring the Test Anything Protocol to Python.
In this episode, Matt and I discuss TAP, it's history, his involvement, and some cool use cases for it.Special Guest: Matt Layman.Sponsored By:PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code: TESTANDCODE22Links:mattlayman.comDjango Riffs, a podcast for learning Django · Matt LaymanTest Anything Protocolpytest-tap: Test Anything Protocol (TAP) reporting plugin for pytesttappy - TAP tools for Python
★ Support this podcast on Patreon ★

Mar 4, 2020 • 47min
104: Top 28 pytest plugins - Anthony Sottile
pytest is awesome by itself. pytest + plugins is even better.
In this episode, Anthony Sottile and Brian Okken discuss the top 28 pytest plugins.
Some of the plugins discussed (we also mention a few plugins related to some on this list):
pytest-cov
pytest-timeout
pytest-xdist
pytest-mock
pytest-runner
pytest-instafail
pytest-django
pytest-html
pytest-metadata
pytest-asyncio
pytest-split-tests
pytest-sugar
pytest-rerunfailures
pytest-env
pytest-cache
pytest-flask
pytest-benchmark
pytest-ordering
pytest-watch
pytest-pythonpath
pytest-flake8
pytest-pep8
pytest-repeat
pytest-pylint
pytest-randomly
pytest-selenium
pytest-mypy
pytest-freezegun
Honorable mention:
pytest-black
pytest-emoji
pytest-poo
Special Guest: Anthony Sottile.Sponsored By:Oxylabs: Visit oxylabs.io/testandcode to find out more about their services and to apply for a free trial of their Next-Generation Residential Proxies.Springboard: Check out Springboards machine learning engineering career track. Promo Code: AISPRINGBOARDLinks:PyPI Download StatsTop PyPI Packages: A monthly dump of the 4,000 most-downloaded packages from PyPITest & Code 25: Selenium, pytest, Mozilla – Dave Huntpre-commit
★ Support this podcast on Patreon ★