Login
Login
Python Test
/
The Complete pytest Course - original layout
Buy now
$59
The Complete pytest Course - original layout
Course
163 Lessons
Includes 3 additional products
Alternative layout to "The Complete pytest Course Bundle"
Buy now
Includes 3 additional products
pytest 1: pytest Primary Power
pytest 2: Using pytest with Projects
pytest 3: pytest Booster Rockets
Contents
Intro and Source Code
Welcome + Introduction
6 mins
226 MB
Preview
Source Code
169 KB
Part 1: Primary Power
Part 1: Primary Power
Part 1: Primary Power
Ch 1: Getting Started with pytest
Intro
1 min
2 MB
Installing pytest
4 mins
21.7 MB
Our first tests
1 min
5.87 MB
Running pytest
6 mins
60.4 MB
Test discovery
3 mins
21 MB
Test outcomes
5 mins
45.6 MB
Ch 2: Writing Test Function
Intro
1 min
3.49 MB
Installing cards
4 mins
28.4 MB
Playing with cards
4 mins
18.2 MB
The cards.Card dataclass
5 mins
46.6 MB
Writing Knowledge-Building Tests
5 mins
72.8 MB
Running Tests
2 mins
22.7 MB
Check Your Setup
3 mins
28.5 MB
Bonus: Running Tests in PyCharm
3 mins
34.9 MB
Using assert Statements
7 mins
78.8 MB
Failing with pytest.fail() and exceptions
4 mins
33.2 MB
Writing Assertion Helper Functions
3 mins
40 MB
Testing for Expected Exceptions
6 mins
71.9 MB
Structuring Test Functions
3 mins
36.3 MB
Grouping Tests with Classes
7 mins
97.8 MB
Running a Subset of Tests
6 mins
112 MB
Bonus: Virtual Environment functions create/activate/exit for bash/zsh
6 mins
53.3 MB
Ch 3: pytest Fixtures
Intro
2 mins
4.62 MB
Visualizing Fixtures
4 mins
15.8 MB
Testing the cards API
3 mins
22.2 MB
Using Fixtures for Setup and Teardown
6 mins
62.8 MB
Tracing Fixture Execution with --setup-show and -s
2 mins
14.7 MB
Seeing print output with -s
4 mins
39.8 MB
Specifying Fixture Scope
5 mins
41.4 MB
Sharing Fixtures through conftest.py
3 mins
25.7 MB
Finding Where Fixtures are Defined
4 mins
40.1 MB
Intermission 1
2 mins
10.8 MB
Using Multiple Fixture Levels
6 mins
65.9 MB
Using Multiple Fixtures per Test
6 mins
63.1 MB
Intermission 2
1 min
2.71 MB
Deciding Fixture Scope Dynamically
4 mins
46.5 MB
Using autouse Fixtures
4 mins
40.2 MB
Renaming Fixtures
3 mins
16.7 MB
Ch 4: Builtin Fixtures
Intro
2 mins
27.9 MB
Using tmp_path and tmp_path_factory
9 mins
100 MB
Using capsys
5 mins
39.4 MB
Output capture with Typer
3 mins
27 MB
Disabling output capture with capsys
3 mins
31.6 MB
The problem with a live db
3 mins
32.7 MB
Looking at monkeypatch docs
2 mins
16.9 MB
Cards internals
2 mins
24.3 MB
Patching get_path
3 mins
34.5 MB
Patching pathlib.Path.home
4 mins
55.8 MB
Patching an environment variable
1 min
9.95 MB
Design for Testability
2 mins
26 MB
Ch 5: Parametrization
Intro
1 min
1.61 MB
Running "cards finish" on the Command Line
2 mins
7.91 MB
Looking at the "finish()" API Function
1 min
7.95 MB
Testing Without Parametrize
4 mins
49 MB
Combining Tests with a Loop
2 mins
18.6 MB
Parametrizing Functions
4 mins
43.1 MB
Only Parametrizing Meaningful Changes
3 mins
24.5 MB
Parametrizing Fixtures
4 mins
46.7 MB
What is a Hook Function
2 mins
20.2 MB
Parametrizing with pytest_generate_tests
5 mins
42.9 MB
Using Keywords to Select Test Cases
3 mins
49.9 MB
Ch 6: Markers
Intro
1 min
3.08 MB
Skipping Tests with pytst.mark.skip
4 mins
53.1 MB
Skipping Tests Conditionally with pytst.mark.skipif
5 mins
40.4 MB
Expecting Tests to Fail with pytest.mark.xfail
9 mins
109 MB
Bad Reasons to Use xfail
2 mins
12.7 MB
Selecting Tests with Custom Markers
6 mins
63.9 MB
Marking Files, Classes, and Parameters
4 mins
48.7 MB
Running marked tests with -m
2 mins
20.1 MB
Using and, or, not, and Parentheses with Markers and -m
3 mins
25.3 MB
Being Strict with Markers
3 mins
37.1 MB
Listing Markers with --markers
2 mins
22.4 MB
Combining Markers with Fixtures
9 mins
104 MB
Part 2: Working with Projects
Part 2: Working with Projcts
2.1 MB
Preview
Ch 7: Test Strategy
Intro
1 min
3.28 MB
Determining Test Scope
2 mins
7.12 MB
Considering Software Architecture
1 min
2.97 MB
Evaluating the Features to Test
2 mins
5.14 MB
Creating Test Cases
1 min
3.82 MB
Writing a Test Strategy
2 mins
8.16 MB
Cards Example: Scope, Architecture, and Prioritizing Features
4 mins
24.3 MB
Cards Example: Creating Test Cases
5 mins
20.8 MB
Cards Example: Writing a Test Strategy
1 min
7.79 MB
Cards Example: From Test Cases to Test Code
5 mins
63.6 MB
Cards Example: Running the Tests
1 min
16.5 MB
Ch 8: Configuration Files
Intro
3 mins
10 MB
Determining a Root Directory
2 mins
23.9 MB
Saving Settings and Flags in pytest.ini
6 mins
55 MB
Using tox.ini, pyproject.toml, or setup.cfg in place of pytest.ini
5 mins
41.3 MB
Avoiding Test File Name Collision with __init__.py
6 mins
47.9 MB
Ch 9: Coverage
Intro
2 mins
9.93 MB
Measuring Code Coverage with `pytest-cov`
4 mins
30.9 MB
Measuring Code Coverage with `coverage` Directly
3 mins
21.1 MB
Specifying Multiple Equivalent Source Paths in `.coveragerc`
2 mins
16 MB
Generating HTML Reports
7 mins
85.7 MB
Excluding Code from Coverage
2 mins
29 MB
Adding the Missing Test Cases
3 mins
43.3 MB
Beware of Coverage-Driven Development
3 mins
33.1 MB
Running Coverage on Tests
3 mins
34 MB
Running Coverage on a Directory
3 mins
18 MB
Running Coverage on a Single File Script
4 mins
37.3 MB
Ch 10: Mocking
Intro
3 mins
7.62 MB
What Are We Mocking? Isolating the Cards CLI
5 mins
45.6 MB
Testing with Typer + shlex + cards_cli
6 mins
54.5 MB
Mocking an Attribute
5 mins
44.8 MB
Mocking a Class and Methods
7 mins
89.6 MB
Using a Fixture for Mocking
3 mins
32.2 MB
Using autospec to Keep Mocks and API Synchronized
4 mins
54.3 MB
Making Sure Functions Are Called Correctly
4 mins
47.4 MB
Creating Error Conditions
3 mins
34.9 MB
Running Coverage + Coverage Exclusion
5 mins
52.9 MB
Read the Docs
1 min
9.56 MB
Mocks Don't Test Behavior
2 mins
7.61 MB
Testing at Multiple Layers to Avoid Mocking
5 mins
63.2 MB
Using Plugins to Assist Mocking
2 mins
4.11 MB
Ch 11: tox and Continuous Integration
Intro
2 mins
9.93 MB
Setting Up tox
7 mins
62.3 MB
Running tox
3 mins
44.9 MB
Testing Multiple Python Versions
3 mins
55.4 MB
Running tox Environments in Parallel
1 min
12.5 MB
Adding a Coverage Report to tox
2 mins
21.8 MB
Specifying a Minimum Coverage Level
2 mins
13.5 MB
Passing pytest Parameters Through tox
2 mins
14.8 MB
Combining pytest.ini and .coveragerc into tox.ini
3 mins
27.8 MB
CI: Running tox with GitHub Actions
7 mins
75.8 MB
Ch 12: Testing Scripts and Applications
Intro
2 mins
8.86 MB
Testing a Python Script
9 mins
63.7 MB
Testing an Importable Python Script
5 mins
45.5 MB
Separating Code into src and tests Directories
3 mins
26.7 MB
Testing a requirements.txt-based Application
6 mins
36.6 MB
Ch 13: Debugging Test Failures
Intro
3 mins
10.6 MB
Setup
5 mins
48.1 MB
Writing Tests First
7 mins
96.5 MB
First Draft Implementation
4 mins
57 MB
Debugging with pytest Flags
5 mins
87.6 MB
Debugging with pdb
3 mins
41.9 MB
Combining tox and pdb
3 mins
43.2 MB
Refactoring
5 mins
70.9 MB
Note on Code Sample
1 min
8.96 MB
Part 3: Booster Rockets
Part 3: Booster Rockets
Ch 14: Third-Party Plugins
Exploring the Diversity of pytest Plugins
5 mins
19 MB
Finding Plugins
3 mins
33.8 MB
pytest-repeat: Repeating Tests
4 mins
67.9 MB
pytest-xdist: Running Tests in Parallel
4 mins
37.2 MB
pytest-randomly: Randomizing Test Order
5 mins
71.1 MB
Ch 15: Building Plugins
Intro
2 mins
14.3 MB
Building a Local conftest Plugin
3 mins
26.3 MB
Creating an Installable Plugin
16 mins
177 MB
Testing Plugins with pytester
8 mins
91.8 MB
Testing Multiple Python Versions with tox
4 mins
53.1 MB
Using a src Project Layout
3 mins
26.1 MB
Publishing Plugins and Further Information
2 mins
24.2 MB
Ch 16: Advanced Parametrization
Intro
2 mins
7.22 MB
Creating Custom Identifiers
9 mins
100 MB
Parametrizing with Dynamic Values
3 mins
27.9 MB
Using Multiple Parameters
4 mins
41.5 MB
Using Indirect Parametrization
4 mins
32.2 MB
Selecting a Subset of Fixture Parameters
2 mins
13.5 MB
Creating an Optional Indirect Fixture
3 mins
19.9 MB