Python expert Christopher Trudeau discusses adding unit tests to Python code using the unittest framework, covering organizing tests, assert methods, fixtures, and debugging. They also explore Python data visualizations from the Python Graph Gallery, showcasing tutorials for different chart types. Other topics include Python 3.13 features, pytest speed improvements, software friction, Raspberry Pi document scanner, and time per iteration loop control project.
42:43
forum Ask episode
web_stories AI Snips
view_agenda Chapters
auto_awesome Transcript
info_circle Episode notes
volunteer_activism ADVICE
Start With unittest Before Adding Tools
Use Python's built-in unittest for comprehensive testing before adding external frameworks.
Organize tests with TestCase, fixtures, and assert methods to cover edge cases and debug failures.
volunteer_activism ADVICE
Skip Tests Strategically
Skip flaky or platform-specific tests using unittest.skip and skipIf decorators.
Use these decorators to keep test runs meaningful across environments and Python versions.
insights INSIGHT
Assert Variety Enables Precise Tests
unittest exposes many assert methods beyond assertEqual, including identity, membership, and exception checks.
These varied asserts let you express precise expectations without extra libraries.
Get the Snipd Podcast app to discover more snips from this episode
How do you start adding unit tests to your Python code? Can the built-in unittest framework cover most or all of your needs? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
We dig into a recent tutorial by Leodanis Pozo Ramos about writing unit tests using Python’s unittest. The tutorial covers organizing your tests, exploring assert methods, creating test fixtures, and debugging failing tests.
We explore a collection of Python data visualizations and tutorials from the Python Graph Gallery. The website features hundreds of charts and graphs built using popular plotting libraries. Each chart type features a foundational tutorial that introduces the structure and application.
We also share several other articles and projects from the Python community, including a news roundup, the new REPL coming in Python 3.13, a pytest daemon to 10X test iteration speed, a discussion about software friction, a Raspberry Pi document scanner, and a project for controlling time per iteration loop.
In this video course, you’ll learn the basics of GUI programming with Tkinter, the de facto Python GUI framework. Master GUI programming concepts such as widgets, geometry managers, and event handlers. Then, put it all together by building two applications: a temperature converter and a text editor.
Topics:
00:00:00 - Introduction
00:02:08 - Python Software Foundation Board Election Dates for 2024
00:02:35 - 2023 PSF Annual Impact Report
00:03:03 - Python’s unittest: Writing Unit Tests for Your Code
00:09:41 - What’s New in Python 3.13
00:10:38 - The New REPL in Python 3.13
00:13:39 - Best Python Chart Examples
00:15:27 - Animation with text that highlights important events
00:16:39 - Sankey Diagram with Python and Plotly
00:18:55 - Video Course Spotlight
00:20:25 - Pytest Daemon: 10X Local Test Iteration Speed
00:23:58 - Software Friction
00:35:41 - A Raspberry Pi Document Scanner
00:39:00 - pacemaker: For Controlling Time Per Iteration Loop in Python
Python’s unittest: Writing Unit Tests for Your Code – In this tutorial, you’ll learn how to use the unittest framework to create unit tests for your Python code. Along the way, you’ll also learn how to create test cases, fixtures, test suites, and more.
What’s New in Python 3.13 – Python 3.13 has gone into beta, which means the feature freeze is now in place. This is the official listing of the new features in 3.13. This release includes changes to the REPL, new typing features, experimental support for disabling the GIL, dead battery removal, and more.
The New REPL in Python 3.13 – Python 3.13 just hit feature freeze with the first beta release, and it includes a host of improvements to the REPL. Automatic indenting, block-level editing, and more make the built-in REPL more powerful and easier to use.
Pytest Daemon: 10X Local Test Iteration Speed – Discord has a large Python monolith with lots of imports, which now takes 13 seconds to start up. On the server that’s not a problem but to run a test it is. Ruby’s solution is to have a daemon that hot loads a test on a process that already has the imports completed.
Discussion:
Software Friction – Friction is everywhere in software development. Two setbacks are more than twice as bad as one setback. This article discusses the sources of software friction and what you can do about it.