Introduction to Data Pipelines
Configuration & Secrets (.env)
Separation of Concerns (I/O vs Logic)
Goal: Confidence in your code.
Why Pytest*: Simplicity over unittest.
*The Structure: test_*.py files and test_ functions.
Assertions*: Using simple assert x == y.
Testing Logic*: Writing tests for the specific transformation functions from the previous chapter.
Fixtures*: Setup/Teardown logic (creating sample data).
Parametrized Tests*: Running the same test with different inputs.
Write tests for the clean_price function.
Use pytest.mark.parametrize to test edge cases (zeros, nulls, negative numbers).

Found a mistake or have a suggestion? Let us know in the feedback form.