Discover
Test & Code
![Test & Code Test & Code](https://is1-ssl.mzstatic.com/image/thumb/Podcasts221/v4/89/48/d5/8948d5a1-3d70-4743-ef17-66631c1a515d/mza_7101635843915374115.jpg/400x400bb.jpg)
226 Episodes
Reverse
This episode is a replay of a 2021 interview I did with Michael Foord.We lost Michael in January, and I'd like to revisit this interview as a tribute. Michael Foord was a pivotal figure in the Python community and the creator of the mock library that's now unittest.mock. But he did so much more as well. His contributions continue to resonate within the developer community. This interview is just a small peek at his influence. In this episodeIntroduction to Michael FoordThe Mock Library OriginsMocking and Testing PhilosophyCareer Path and ConsultingUnderstanding MockingThe Power of PatchTesting Strategies and DesignMocking External DependenciesTeaching Testing and Mockingpython.org has put up an "In memoriam" page for Michael Foord, and many people have shared stories and memories.Links:In memoriam: Michael Foord 1974-202530 best practices for software development and testing
pytest-mock is currently the #3 pytest plugin. pytest-mock is a wrapper around unittest.mock.In this episode:Why the pytest-mock plugin is awesomeWhat is mocking, patching, and monkey patchingWhat, if any, is the difference between mock, fake, spy, stub. Why we might need these in testingSome history of mock in Python and how mock became unittest.mockFrom unittest.mockpatch.objectpatch.object with autospecusing these as context managerspytest-mock:The mocker fixture Cleanup in teardownUsing mocker.patch, mocker.spy, and mocker.stubWhy it's awesome and why you might want to use it over straight unittest.mockLinks:top pytest plugins listpytest-mock documentationunittest.mockPodcast episode discussing unittest.mock with Michael Foordmonkeypatch
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
pytest-cov is a pytest plugin that helps produce coverage reports using Coverage.py.In this episode, we'll discuss:what Coverage.py iswhy you should measure code coverage on both your source and test codewhat pytest-cov isextra features pytest-cov gives you over and above coverage.pyand generally why using both is awesomeLinks:coverage.pypytest-covhow to set up context reportsTop pytest PluginsErrata:I mentioned that Coverage has the ability to show context (which line is covered by which test) for the past year or so.However, that feature was released in Oct 2018. coverage 5.0 alpha That's over 6 years. Oops. Sorry Ned.
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
This episode kicks off a season of pytest plugins.In this episode:Introduction to pytest pluginsThe pytest.org pytest plugin listFinding pytest related packages on PyPIThe Top pytest plugins list on pythontest.comExploring popular pluginsLearning from plugin examplesLinks:Top pytest plugins listpytest.org plugin listTop PyPI PackagesAnd links to plugins mentioned in the show can be found at pythontest.com/top-pytest-plugins
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
Taking notes well can help to listen better, remember things, show respect, be more accountable, free up mind space to solve problems.This episode discussesthe benefits of writing things downpreparing for a meetingtaking notes in meetingsreviewing notes for action items, todo items, things to follow up on, etc.taking notes to allow for better focuswriting well structured emailswriting blog posts and books
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
In this episode we're talking about importing part of a package into another part of the same package.We'll look at: `from . import module` and `from .module import something`and also: `import package` to access the external API from with the package.Why would we use `import package` if `from . import api` would work fine?
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
We've got some code we want to test, and some tests.The tests need to be able to import the code under test, or at least the API to it, in order to run tests against it.How do we do that? How do we set things up so that our tests can import our code?In this episode, we discuss two options:Installing the code under test as a pip installable package with `pip install -e /path/to/local/package`.Using the pythonpath pytest setting.
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
PyCon US is just around the corner. I've asked Rob Ludwick to come on the show to discuss how to get the most out of your PyCon experience. There's a lot to do. A lot of activities to juggle, including actual juggling, which is where we start the conversation.Even if you never get a chance to go to PyCon, I hope this interview helps you get a feel for the welcoming aspect of the Python community.I recorded this interview as an episode for one of my other podcasts, Python People. But I think it's got some great pre-conference advice, so I'm sharing it here on Python Test as well.We talk about: - Juggling at PyCon- How to get the most out of PyCon - Watching talks - Hallway track - Open spaces - Lightening talks - Expo hall / vendor space - Poster sessions - Job fair - A welcoming community - Tutorials - Sprints - But mostly about the people of Python and PyCon."Python enables smart people to work faster" - Rob Ludwick
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
I'm starting a SaaS project using Django, and there are tons of decisions right out of the gate. To help me navigate these decisions, I've brought on Cory Zue. Cory is the creator of SaaS Pegasus, and has tons of experience with Django.Some of the topics discussed:Building Django applicationsSaaS Pegasusplacecard.meWhat boilerplate projects areDjango cookiecutterCookiecutterWhich database to use, probably PostgreSQLAuthentication choises, probably AllauthDocker, Docker for development, Docker for deploymentDeployment targets / hosting services. Render, Heroku, Fly.io, for PaaS options.Front end frameworks. Bootstrap, Tailwind, DaisyUI, TailwindUIHTMX vs React vs straight Django templatesRocketsFont Awesomeand of course, SaaS Pegasus
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
Nicole is a software engineer and writer, and recently wrote about the trade-offs we make when deciding which tests to write and how much testing is enough.We talk about:Balancing schedule vs testingHow much testing is the right about of testingShould code coverage be measured and trackedGood refactoring can reduce code coverageIs it worth testing error conditions?Are rare error codes ok to just monitor?API drift and autospecMitigating riskDeciding what to test and what not to testFocus testing on key money-making features If there's a bug in this part of the code, how much business impact is there?Performance testing needs to approximately match real world workloadsCost of a service breaking vs the cost of creating, maintaining, and running testsKeeping test suites quick to minimize getting distractedLinks:Too much of a good thing: the trade-off we make with tests Load testing is hard, and the tools are... not great. But why?Yet Another Rust Resource (YARR!)Goodhart's law - "When a measure becomes a target, it ceases to be a good measure"
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
If you've ever thought about starting a podcast or a SaaS project, you'll want to listen to this episode. Justin is one of the people who motivated me to get started podcasting. He's also running a successful SaaS company, transistor.fm, which hosts this podcast.Topics:PodcastingBuilding new SaaS (software as a service) productsBalancing work, side hustle, and familyGreat places to snowboard in British ColumbiaBTW. This episode was recorded last summer before I switched to transistor.fm.I'm now on Transistor for most of a year now, and I love it.Links from the show:Transistor.fm - excellent podcast hosting, Justin is a co-founderHow to start a podcast in 2024Podcasts from JustinBuild your SaaS - currentBuild & Launch - an older one, but greatMegaMaker - from 2021 / 2022
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
Charlie Marsh and team are using Rust to make Python tooling faster.Ruff can take the place of Flake8, isort, and Black, and so much more.uv can take the place of pip, pip-tools, and virtualenvAstral is Charlie's venture backed company, and what they have with `ruff` and `uv` is just the start.Since uv is the newest tool, there's quite a bit of the discussion diving into uv.Links:ruffAstraluv
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
Software engineers that move into leadership roles have a struggle between learning leadership skills, maintaining technical skills, and learning new leadership and technical skills. Matt Makai went from individual contributor to developer relations to leadership in devrel. We discuss how to stay technical, as well as dive into some results of his studies in how companies use developer relationship channels.
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
If you haven't tried running automated tests, especially with pytest, in VS Code recently, you should take another look.The Python for VS Code interface for testing, especially for pytest, has changed recently. On this episode we discuss the change with the software engineer working on the pytest changes, Eleanor Boyd, and the product manager, Courtney Webster. Links from the episode:Blog post announcing the rewrite Code repo for questions, comments, issues etc
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
If a test fails in a test suite, I'm going to want to re-run the test. I may even want to re-run a test, or a subset of the suite, a bunch of times. There are a few pytest plugins that help with this:pytest-repeatpytest-rerunfailurespytest-flakefinderpytest-instafailWe talk about each of these in this episode.
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
In 2002, Kent Beck released a book called "Test Driven Development by Example".In December of 2023, Kent wrote an article called "Canon TDD".With Kent's permission, this episode contains the full content of the article.Brian's commentary is saved for a followup episode.Links:Canon TDDTest Driven Development by Example
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
We want to be able to run tests in a suite, and debug them in isolation, and have the behavior be the same. If the behavior is different in isolation vs in a suite, it's a nightmare to debug. In this episode, we'll talk about:Causes of dependenceTesting for dependencies using pluginsDebugging test dependenciesPlugins discussed:pytest-randomlypytest-reversepytest-random-order
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
Test Driven Development. Red, Green, Refactor. Do we have to do the refactor part? Does the refactor at the end include tests? Or can I refactor the tests at any time?Why is refactor at the end? This episode is to talk about this with a an example.
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
How do you test the argument parsing bit of an application that uses argparse?This episode covers:Design for Test: Structuring your app or script so it's easier to test.pytest & capsys for testing stdoutAdding debug and preview flags for debugging and testingAnd reverting to subprocess.run if you can't modify the code under testAlso, there's a full writeup and code samples available:Blog post: Testing argparse Applications Code Repo
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
Why on earth would you want to write a test with no assert statements?After all, aren't assert statements how you decide wether a test passes or fails?In this episode, we walk through a handful of useful examples of test code without asserts.We also talk about how these types of tests are a great way to dip your toe into testing.
Learn pytestpytest is the number one test framework for Python.Learn the basics super fast with Hello, pytest!Then later you can become a pytest expert with The Complete pytest CourseBoth courses are at courses.pythontest.com
Top Podcasts
The Best New Comedy Podcast Right Now – June 2024The Best News Podcast Right Now – June 2024The Best New Business Podcast Right Now – June 2024The Best New Sports Podcast Right Now – June 2024The Best New True Crime Podcast Right Now – June 2024The Best New Joe Rogan Experience Podcast Right Now – June 20The Best New Dan Bongino Show Podcast Right Now – June 20The Best New Mark Levin Podcast – June 2024
a bit hard to listen 😅
I would be interested to invite you as keynote for PyCon Singapore in June and I would love to know more on your PyTest online courses when it releases.
Such a great episode! I've even listened to it twice
I enjoyed this episode. Hope more episodes on this subject.
react tables
another great episode
Thanks for sharing these good tips