Python One-Hour Crash Course: Syntax, Lists and Files
by Sofia Navarro
Write the tests that catch real bugs and delete the ones that only slow you down.
TE Created by Tom Eriksen
Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.
5 modules · 31 lessons · 4h 8m of material
6 lessons running 48m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
6 lessons running 46m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
6 lessons running 50m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
6 lessons running 48m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
7 lessons running 56m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.
Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.
5 modules · 31 lessons
4h 8m total length
Short list, and deliberately so. If you meet these you can start today.
Test suites fail in two directions. Some are too thin to catch anything, and some are so coupled to implementation detail that every refactor breaks a hundred of them. This course is about the middle: tests that fail when behaviour changes and stay silent when it does not.
It starts with what to assert. You learn to test behaviour at a stable boundary rather than internal calls, to name tests so a failure report reads like a bug description, and to avoid the mocking patterns that encode implementation into assertions. Test doubles are covered precisely, since stub, fake, spy and mock are treated as synonyms far too often and the distinction determines how brittle your suite becomes.
From there the course covers integration tests against real dependencies using Testcontainers, contract tests that keep a service and its consumers aligned, property-based testing for finding the input you would never have written, snapshot testing and its failure modes, and end-to-end tests kept few and stable. The final modules cover speed, since a slow suite stops being run: parallelism, sensible fixture scope, deterministic time and randomness, and diagnosing flaky tests instead of retrying them.
Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.
Reviews are written by people who bought this course. We publish the critical ones too.
5.0
Rated 5.0 out of 5Course rating · 2 reviews
Miriam Steiner
QA lead
The chapter on tests that only cost you time gave me the argument I needed to remove four hundred assertions that did nothing but restate the implementation back to itself. Suite runtime halved and our confidence did not move an inch.
Vikram Nair
Software engineer
I had filed it under academic and moved on. Then a generated case found an off-by-one in a date range helper that six hand-written tests had walked straight past, and I changed my mind on the spot.
Platform engineer and DevOps instructor
Tom has built delivery pipelines for teams of three and teams of three hundred, and openly prefers the smaller ones. He teaches Docker, Kubernetes and CI/CD outward from a single commit, so nothing ever appears by magic, and he treats the test suite as part of the pipeline rather than a separate subject. Every course includes a deliberate outage that you have to diagnose from logs and metrics before you can continue. He is a CNCF contributor and a reluctant but formidable YAML expert.
One-time payment · lifetime access