Unit Testing/Pytest/Test Output
< Unit Testing | Pytest
Create a Python Program edit
Create the following Python program. Save it as multiply.py
def multiply(x, y):
result = x * y
return result
def main():
multiplicand = float(input("Enter a multiplicand: "))
multiplier = float(input("Enter a multiplier: "))
product = multiply(multiplicand, multiplier)
print(f"The product is: {product}")
if __name__ == "__main__":
main()
Create a Test Program edit
Create the following Pytest test program. Save it as test_multiply.py
import multiply
def test_output(capsys):
input_values = [
"2",
"2"
]
def input(prompt=None):
return input_values.pop(0)
multiply.input = input
assert multiply.main() == None
captured = capsys.readouterr()
assert captured.out == "The product is: 4.0\n"
Test Success edit
Test the program by running pytest in a terminal or command prompt in the same folder as the two programs above and observe the results.
pytest
Test Failure edit
Change the test source code somehow, such as replacing one of the input numeric values with a different value. Test the program by running pytest again and observe the results.