unittest by providing test fixtures at the package and module levels. The package
setup function is run before any of the tests in any of the modules in a package, while the
teardown function is run after all of the tests in all of the modules in the package have completed. Similarly, the module
setup function is run before any of the tests in a given module have been executed, and the module
teardown function is executed after all of the tests in the module have been executed.
We're going to build a test module with a module-level fixture. In the fixture, we'll replace the
datetime.date.today function, which normally returns an object representing the current date. We want it to return ...