May Meet Minutes - Pynguin

May Meet Minutes - Pynguin

May 30, 2022

Module: pynguin

Installation: pip install pynguin

About: Pynguin, the PYthoN General UnIt test geNerator, is a tool that allows developers to generate unit tests automatically.

Sample Source Code

def triangle(x: int, y: int, z: int) -> str:
    if x == y == z:
        return "Equilateral triangle"
    elif x == y or y == z or x == z:
        return "Isosceles triangle"
    else:
        return "Scalene triangle"

Prerequisite

To help prevent harming the system that runs Pynguin, its CLI will immediately abort unless the environment variable PYNGUIN_DANGER_AWARE is set.

export PYNGUIN_DANGER_AWARE=1

Execution

pynguin --project_path ./ --output-path pynguin_output --module-name pynguin_demo
cd pynguin_output 
ls -rtl

Output:

total 16
-rw-r--r--  1 dev  staff  879 29 May 23:26 test_pynguin_demo.py
-rw-r--r--  1 dev  staff   38 29 May 23:26 test_pynguin_demo_failing.py

Generated Test Output

Below testcases are automatically created by the module, with different values passed:

# Automatically generated by Pynguin.
import pynguin_demo as module_0


def test_case_0():
    int_0 = -156
    int_1 = -5206
    str_0 = module_0.triangle(int_1, int_0, int_1)
    assert str_0 == 'Isosceles triangle'
    str_1 = module_0.triangle(int_0, int_0, int_0)
    assert str_1 == 'Equilateral triangle'


def test_case_1():
    int_0 = 1038
    int_1 = 5772
    str_0 = module_0.triangle(int_0, int_1, int_1)
    assert str_0 == 'Isosceles triangle'


def test_case_2():
    int_0 = -785
    int_1 = 3730
    int_2 = -1030
    str_0 = module_0.triangle(int_1, int_1, int_2)
    assert str_0 == 'Isosceles triangle'
    str_1 = module_0.triangle(int_0, int_0, int_0)
    assert str_1 == 'Equilateral triangle'


def test_case_3():
    int_0 = 1910
    int_1 = 899
    int_2 = None
    str_0 = module_0.triangle(int_0, int_1, int_2)
    assert str_0 == 'Scalene triangle'

Reference

Pynguin Documentation