24
loading...
This website collects cookies to deliver better user experience
This is Day 7 of the #100DaysOfPython challenge.
__init__.py
hello-pytest
directory and install Pillow.# Make the `hello-pytest` directory
$ mkdir hello-pytest
$ cd hello-pytest
# Init the virtual environment
$ pipenv --three
$ pipenv install --dev pytest
# Create a folder to place files
$ mkdir src tests
# Create the required files
$ touch src/math.py src/__init__.py tests/test_math.py tests/__init__.py
add
, subtract
and multiply
function to demonstrate how to import functions and unit test them.src/math.py
, add the following code:def add(x: int, y: int) -> int:
"""add two numbers together
Args:
x (int): first number to add
y (int): second number to add
Returns:
int: sum of x and y
"""
return x + y
def subtract(x: int, y: int) -> int:
"""subtract one number from another
Args:
x (int): first number to subtract
y (int): second number to subtract
Returns:
int: resut of x subtract y
"""
return x - y
def multiply(x: int, y: int) -> int:
"""multiply two numbers together
Args:
x (int): first number in the multiplication
y (int): second number in the multiplication
Returns:
int: product of x and y
"""
return x * y
tests/test_math.py
, add the following code:from src.math import add, subtract, multiply
def test_add():
assert add(3, 2) == 5
def test_subtract():
assert subtract(3, 2) == 1
def test_multiply():
assert multiply(3, 2) == 6
assert
function will pass if the result is true and fail if not.pipenv run pytest
from the command line.============================================= test session starts =============================================
platform darwin -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /Users/dennisokeeffe/code/blog-projects/hello-pytest
collected 3 items
tests/test_math.py ... [100%]
============================================== 3 passed in 0.02s ==============================================
add
function in src/math.py
to return x + y + 1
instead of x + y
, I can test that the function fails and provides information about the failure.============================================= test session starts =============================================
platform darwin -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /Users/dennisokeeffe/code/blog-projects/hello-pytest
collected 3 items
tests/test_math.py F.. [100%]
================================================== FAILURES ===================================================
__________________________________________________ test_add ___________________________________________________
def test_add():
> assert add(3, 2) == 5
E assert 6 == 5
E + where 6 = add(3, 2)
tests/test_math.py:5: AssertionError
=========================================== short test summary info ===========================================
FAILED tests/test_math.py::test_add - assert 6 == 5
========================================= 1 failed, 2 passed in 0.08s =========================================