Modern Python Projects Transcripts
Chapter: Let's build a package
Lecture: Add tests

Login or purchase this course to watch this video and the rest of the course contents.
0:01 Let's go and add some tests. Here We have the test file with some tests that were created with the cookie cutter
0:11 template, so we can actually remove all of that. And let's go back to the old project and we can copy the test from here
0:17 We have to change a few things because we use the different file names. So from the CLI we import the main function and from the helpers we import the
0:37 rest. important, but unused. Okay, we'll use it in a moment. So let's search for the check function because we renamed it. Not check. Let me check.
0:53 Okay, this is how we call it, so we no longer have a check function. We have a main function and here as well, and I think we should be ready to go.
1:05 Let's go back to the terminal and let's run pytest and nothing happened because we
1:12 actually don't have pytest install, So pytest is installed in this file, but we never actually installed it.
1:19 First, let's remove this old version of pip because it's way too old and let's
1:25 try to install those packages, make sure you are inside the virtual environment and we
1:46 have some version conflicts. pytest mock requires pytest higher than five. But I have pytest 4 specified somewhere.
1:54 What we can do is to change the version in this file. But a much better idea is to actually repin all those dependencies to the latest version
2:03 So, let me quickly do that. We are going to remove all those versions here, and I'm going to rename this file to requirements_dev.in.
2:19 And now I am going to quickly install pip tools and run it so it pins the dependencies. And now we have the requirements_dev.txt with all the
2:43 dependency versions pinned. So, now we can tell pip to use this file, no more
3:04 errors, and we get the additional benefit that we use the latest version of our packages. Now we should be able to run pytest.
3:14 Great. So all nine tests are passing, but we got some warning here. Unknown config option: collect_ignore. If we search for this configuration option,
3:28 you can see that in the setup.cfg We're using some configuration option that it's probably no longer supported,
3:35 so, you can either check what it's doing and may be update it, or you can simply remove it. And this will make the warning go away.
3:44 Great. So we have all the tests passing, and now let's actually work on the documentation.


Talk Python's Mastodon Michael Kennedy's Mastodon