Episode 237: Testing Your Python Code Base: Unit vs. Integration
The Real Python Podcast
Jan 31, 2025 54m
What goes into creating automated tests for your Python code? Should you focus on testing the individual code sections or on how the entire system runs? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Episode Sponsor:
We discuss a recent article from Semaphore about unit testing vs. integration testing. Christopher shares his experiences setting up automated tests for his own smaller projects. He also answers questions about building tests in an existing codebase and integrating tests across systems.
We also share several other articles and projects from the Python community, including a news roundup, improving default line charts to journal-quality infographics, why hash(-1) == hash(-2)
in Python, data cleaning in data science, ways to work with large files in Python, a lightweight CLI viewer for log files, and a tool for mocking the datetime
module for testing.
This episode is sponsored by Postman.
Course Spotlight: Testing Your Code With pytest
In this video course, you’ll learn how to take your testing to the next level with pytest. You’ll cover intermediate and advanced pytest features such as fixtures, marks, parameters, and plugins. With pytest, you can make your test suites fast, effective, and less painful to maintain.
Topics:
- 00:00:00 – Introduction
- 00:02:28 – Python news and releases
- 00:04:02 – From Default Line Charts to Journal-Quality Infographics
- 00:07:25 – PyViz: Python Tools for Data Visualization
- 00:09:25 – Why Is hash(-1) == hash(-2) in Python?
- 00:12:40 – Sponsor: Postman
- 00:13:32 – Data Cleaning in Data Science
- 00:19:29 – 10 Ways to Work With Large Files in Python
- 00:23:40 – Unit Testing vs. Integration Testing
- 00:29:17 – Does university curriculum cover this?
- 00:31:22 – Building tests into smaller projects
- 00:36:04 – Video Course Spotlight
- 00:37:30 – How does the approach differ with clients or larger-scale projects?
- 00:40:45 – How do tests act as documentation?
- 00:42:02 – Difficulties in building integration tests
- 00:45:24 – How do you limit the results of tests?
- 00:47:52 – klp: Lightweight CLI Viewer for Log Files
- 00:50:54 – freezegun: Mocks the datetime Module for Testing
- 00:53:11 – Thanks and goodbye
News:
- Python 3.14.0 Alpha 4 Released
- Django 5.2 Alpha 1 Released
- Django Security Releases Issued: 5.1.5, 5.0.11, and 4.2.18
- SciPy 1.15.0 Released
- Pygments 2.19 Released
- PyConf Hyderabad Feb 22-23
Topics:
- From Default Line Charts to Journal-Quality Infographics – “Everyone who has used Matplotlib knows how ugly the default charts look like.” In this series of posts, Vladimir shares some tricks to make your visualizations stand out and reflect your individual style.
- PyViz: Python Tools for Data Visualization – This site contains an overview of all the different visualization libraries in the Python ecosystem. If you’re trying to pick a tool, this is a great place to better understand the pros and cons of each.
- Why Is
hash(-1) == hash(-2)
in Python? – Somewhat surprisingly,hash(-1) == hash(-2)
in CPython. This post examines how and discovers why this is the case. - Data Cleaning in Data Science – “Real-world data needs cleaning before it can give us useful insights. Learn how you can perform data cleaning in data science on your dataset.”
- 10 Ways to Work With Large Files in Python – “Handling large text files in Python can feel overwhelming. When files grow into gigabytes, attempting to load them into memory all at once can crash your program.” This article covers different ways of dealing with this challenge.
Discussion:
- Unit Testing vs. Integration Testing – Discover the key differences between unit testing vs. integration testing and learn how to automate both with Python.
Project:
Additional Links:
- Matplotlib style sheets - Python Charts
- The Magic of Matplotlib Stylesheets
- Where To Get Data for Your Data Science Projects - The PyCharm Blog
- Data Exploration With pandas - The PyCharm Blog
- Python mmap: Improved File I/O With Memory Mapping - Tutorial
- Python mmap: Doing File I/O With Memory Mapping – Video Course
- pandera documentation