Test-Driven Python
Student Login

Test-Driven Python

Master The Coding "Superpower" Separating Average Developers From The Best Python Pros On Earth.

Watch Sample Now:

YES! I Want This

Dear fellow Python programmer,

If you want to sleep easy at night, feeling confident in your rock-solid code...

if you want to write richer, more complex software in Python than ever before...

With fewer bugs than you ever dreamed possible...

You can have all this, and more, by learning one skill:

Writing automated tests.

Also called "unit testing", "test-driven development", and other names. Which are actually all facets of the broader topic of automated testing.

Writing tests is a top requirement for many of the best development jobs.

For good reason. Nothing reduces bugs, improves robustness, and accelerates the development speed of complex software like writing tests.

But the best part may be how it improves your confidence.

When you learn to write tests, it's like having a private army of QA testers...

Constantly checking your program and immediately telling you when something goes wrong.

So you rest easy at night, feeling great about your software, and the quality of your work.

That is why Powerful Python has developed a full course on automated testing for Python professionals, called:

Test-Driven Python

"Great class - EXCELLENT material. This is not just a Python class - it is an excellent introduction to the theory and best practices of test driven development... the lessons can be applied to any language."

Mike Clapper, Oklahoma, USA

What You Will Learn

  • Why testing is one of the most important, valuable skills relied on every day by the best software developers on the planet
  • The two main categories of automated tests... their key differences, what they're great at, and why it's important to never mix them up
  • The undocumented secret idiom that will save you tons of frustrating troubleshooting time
  • The most important assertion type that Python's unittest module provides, and what it's secretly doing "under the hood"
  • The fastest, most accurate, and most productive way to interpret a test failure report
  • A comparison of the four main testing frameworks in the Python ecosystem, and their individual strengths, weaknesses and trade-offs
  • How to ensure you NEVER miss running a test
  • Important vocabulary and terms that are aggressively undocumented
  • What a "test" means, what it doesn't, and how this is commonly misunderstood
  • How to save time running tests as you debug your application
  • A full and thorough survey of Python's dozens of distinct assertion types
  • The most important assertion types to fully and deeply understand... and which you can safely ignore
  • Different strategies for writing and managing your process of writing tests
  • The difference between "test-driven development" and "writing unit tests"... how they're completely separate... and how they can work together
  • The pros and cons of doing test-driven development, versus other techniques for writing your tests
  • My private, near-effortless, top-secret technique for using test-driven development with version control, that can dramatically amplify the quality of your code with shocking ease

"You will gain valuable new skills that will demonstrably lighten the load, and relieve unnecessary burden from your programming process. Improve your mental state and get healthy with Test-Driven Python."

Bryan Stutts, Colorado, USA

  • The "spooky" technique for reaching deep inside the internals of unwelcoming, hostile code... punching your mock event into components that seem actively hostile to dependency injection
  • Insights in how to design your functions, methods and classes to trigger useful and meaningful error messages
  • A deep-dive into handling expected exceptions in your unit tests
  • A detailed "case study" of writing tests for a complex class and its fixtures
  • Understanding "test fixtures"... when to use them... when to avoid them... and how to express them in your test code
  • Practical advice on what to do as your tests "bulk up" and take longer and longer to run
  • The best way to test functions with many complex inputs and edge cases
  • A valuable and powerful testing feature added in Python 3... and the best strategies for getting the most out of it
  • A thoughtful, insight-packed analysis on dealing with code dependencies
  • A clear awareness of the poorly-understood distinctions between so-called "stubs" and "fakes"
  • A high-level understanding of the "Mock", and its critical role in testing complex software
  • Navigating the churning sea of misinformation on the best ways to use mocks, getting to the key insights that give you clear intuition in how to use them
  • The secret tool that massively improves the value of mocks in Python, that almost no one uses... but completely solves the biggest problems you face in using mocks
  • The different strategies for getting the most out of mocks in different coding situations
  • Throughout the course, detailed and realistic example code illustrating how to apply Python's tools for testing to a wide range of coding situations
  • A frank, balanced, and thorough discussion on when to use mocks... when to avoid them... and how
  • The WORST thing that can INFECT to your ENTIRE CODE BASE when you use mocks incorrectly... how to avoid it, how to spot it developing, and what to do if you find your codebase infected
  • The big secret benefit of TDD that no one EVER talks about. It's huge

"It's one of the finest courses... covering from the basics, and ensuring you get a full professional hand on having fully tested Python code. The lesson on mocking is WONDERFUL...

I read a lot about Python but didn't find any such course where you learn some really interesting concepts with such ease."

Kapil Gupta, Delhi

Course Videos

1. The Game Plan: An overview of what you'll learn in the course, and how we'll proceed.

2. Testing Foundations: A fast-pace introduction to the core powerful ideas the entire topic of the course is built on.

3. Richer Unit Testing: Building on the foundation to create more sophisticated, powerful tests.

4. Test-Driven Development: An important and compelling process for writing automated tests, letting you create robust, high-quality software every time.

5. More Assertion Types: How to take advantage of Python's dozens of specialized, laser-focused assertion types.

6. Fixtures: Essential for complex integration and unit tests, as well as a priceless test-code-organization tool.

7. Unit Vs. Integration Tests: The most important distinction to think about for different kinds of automated test.

8. Subtests: A little-known, valuable tool for comprehensively testing complex functions with many edge cases.

9. Mock Objects: An innovative introduction to the concept of testing mocks, with an emphasis on clarity and practical use.

10. Patching With Mocks: A radically delightful technique for injecting mock components deep into any library, class or sub-system.

11. Mocking Strategies, Pros and Cons: A high-level, thoughtful discussion on the most productive strategies for using mocks... and when to avoid them entirely.

12. Overview Of Pytest: Teaching how to apply all the lessons of the course to the most popular testing framework outside of Python's standard library.

"This course covers a lot of ground, not only explaining mechanics and techniques of test driven development... but also delving into strategies."

Tipton Cole, Texas, USA

What's Included

1. Over 4 hours of instructional video

2. Extensive hands-on coding exercises ("Labs")

3. Full solutions

4. Lifetime access...

5. With all future updates and additions.

"This is a very well presented and structured course on unit testing and test-driven development. The instructor goes to great lengths... His obvious enthusiasm and passion is both infectious, and motiviating. The practical coding exercises are well written."

Tony Holdroyd, Gravesend, UK

The Requirements

1. Basic understanding of object-oriented Python.

2. A recent version of Python 3.

3. About 9 hours to watch and re-watch videos, and do the "labs" (coding exercises).

4. Willingness to apply what you learn to the Python code you write outside of class.

"This is a GREAT course. The videos are well-paced, clear and concise, and yet thorough in the material they cover...

As someone who has used and practiced TDD for years, I highly recommend it to anyone starting down the road to TDD mastery."

Michael Moch, Texas, USA


YES! I Want This