Jump to content

Unit Testing/Pytest/Test Input

From Wikiversity

Create a Python Program

[edit | edit source]

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 | edit source]

Create the following Pytest test program. Save it as test_multiply.py

import multiply

def test_input():
    input_values = [
        "2",
        "2"
    ]

    def input(prompt=None):
        return input_values.pop(0)

    multiply.input = input
    assert multiply.main() == None

Test Success

[edit | edit source]

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 | edit source]

Change the test source code somehow, such as replacing one of the input numeric values with characters. Test the program by running pytest again and observe the results.