Packaging refers to how Python packages are generally distributed to users. Unless we are writing proprietary commercial software, we will want to distribute the unit tests along with the code and allow the end user to run the tests and verify that everything is working.
Packaging tools have been one of the most confusing parts of the Python ecosystem. There have been a number of different frameworks that, at different points, have been "the right way" to do things. As this book is being written, setuptools is the recommended way to package Python modules, so let us take a look at that first.
from setuptools import setup, find_packages setup( name="StockAlerter", version="0.1", packages=find_packages(), test_suite="stock_alerter.tests", )
When we do this, setuptools...