21 lines
1.5 KiB
Markdown
21 lines
1.5 KiB
Markdown
Title: Lab Fourteen
|
|
Date: 2022-10-31T08:30:00
|
|
Tags: cs2613, lab, python, pytest, exceptions, modules
|
|
|
|
In this lab I learned about python, pytest, python exceptions and modules.
|
|
<!-- more -->
|
|
|
|
## Pytest
|
|
Pytest is a python testing framework. It can show you code coverage with line counts. This is pretty similar to `nyc` from javascript. You run tests by just running `pytest` or `pytest -cov` for code coverage. Tests are defined by in a file having a function with an assert statement. Pytest will then scan your files for assert statements and run those functions to run tests. Testing in python is pretty simple, like with javascript. Racket testing is a little more abstract and confusing in my opinion.
|
|
|
|
## Modules
|
|
In python functions are exported by default, in contrast to javascript. You must guard your main method with the `if __name__ =='__main__'` text so it does not run when the module is imported. You can make tests to ensure you have documentation for your functions, by checking for the imports `__doc__` variable.
|
|
|
|
## Indentation
|
|
In python, blocks are defined by indentation (also known as whitespace). This sets the scope for a given statement. It can be a little confusing to tell if an if statement is in a for loop or not, but linters help.
|
|
|
|
## Exceptions
|
|
Python can raise errors when things go wrong, for example diving by zero. You can catch these exceptions and handle them if you desire.
|
|
|
|
## FizzBuzz missing case
|
|
You can fix the missing case just by adding another if statement above the other if statement for the fizz case. |