inputProcessor_test

Unittests for inputProcessor module.

 1#!/usr/bin/env python3
 2"""Unittests for inputProcessor module."""
 3
 4from inputProcessor import sideLength, inputPoint, getPoints, getSides
 5from unittest.mock import patch
 6import unittest
 7
 8
 9def test_sideLength():
10    """Unittest for inputProcessor.sideLength."""
11    assert sideLength((-2, 1), (-5, 5)) == 5
12
13
14class TestInputPoint(unittest.TestCase):
15    """Unittests for inputProcessor.inputPoints."""
16
17    testInput = ["1", "-2.8"]
18
19    @patch('builtins.input', side_effect=testInput)
20    def test_inputPoint(self, mock_input):
21        """Test inputPoints function with valid input."""
22        expectedResult = [1.0, -2.8]
23        actualResult = inputPoint("A")
24        self.assertEqual(expectedResult, actualResult)
25
26    testInputBadOK = ["lorem", "ipsum", "1.5", "lala", "-3"]
27
28    @patch('builtins.input', side_effect=testInputBadOK)
29    def test_inputPoint_badOK(self, mock_input):
30        """Test inputPoints function with bad input corrected.
31
32        Test inputPints function behaviour when user suplies
33        invalid input and then corrected input.
34        """
35        expectedResult = [1.5, -3.0]
36        actualResult = inputPoint("B")
37        self.assertEqual(expectedResult, actualResult)
38
39    testInputBad = ["lorem", "ipsum", "end", "1.5", "lala", "3"]
40
41    @patch('builtins.input', side_effect=testInputBad)
42    def test_inputPoint_bad(self, mock_input):
43        """Test inputPoints function with bad input.
44
45        Test inputPoints function behaviour when user suplies
46        invalid input and doesn't correct it.
47        """
48        with self.assertRaises(SystemExit) as cm:
49            inputPoint("C")
50
51        self.assertEqual(cm.exception.code, 1)
52
53
54class TestGetPoints(unittest.TestCase):
55    """Unittests for inputProcessor.getPoints."""
56
57    testPoints = [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]
58
59    @patch('inputProcessor.inputPoint', side_effect=testPoints)
60    def test_getPoints(self, mock_inputPoint):
61        """Test getPoints function with interactive input."""
62        actualResult = getPoints("")
63        self.assertEqual(actualResult, self.testPoints)
64
65    def test_getPoints_args(self):
66        """Test getPoints function with arguments input."""
67        testArgs = ["example.py", "1", "-2.5", "3.8", "-4", "5", "0"]
68        expectedResult = [[1.0, -2.5], [3.8, -4.0], [5.0, 0.0]]
69        actualResult = getPoints(testArgs, debug=True)
70        self.assertEqual(actualResult, expectedResult)
71
72
73class TestGetSides(unittest.TestCase):
74    """Unittests for inputProcessor.getSides."""
75
76    testSides = [1.2, 2.3, 3.4]
77
78    @patch('inputProcessor.sideLength', side_effect=testSides)
79    @patch('inputProcessor.getPoints')
80    def test_getSides(self, mock_getPoints, mock_sideLength):
81        """Test getSides function."""
82        actualResult = getSides("", debug=True)
83        self.assertEqual(actualResult, self.testSides)
def test_sideLength():
10def test_sideLength():
11    """Unittest for inputProcessor.sideLength."""
12    assert sideLength((-2, 1), (-5, 5)) == 5
class TestInputPoint(unittest.case.TestCase):
15class TestInputPoint(unittest.TestCase):
16    """Unittests for inputProcessor.inputPoints."""
17
18    testInput = ["1", "-2.8"]
19
20    @patch('builtins.input', side_effect=testInput)
21    def test_inputPoint(self, mock_input):
22        """Test inputPoints function with valid input."""
23        expectedResult = [1.0, -2.8]
24        actualResult = inputPoint("A")
25        self.assertEqual(expectedResult, actualResult)
26
27    testInputBadOK = ["lorem", "ipsum", "1.5", "lala", "-3"]
28
29    @patch('builtins.input', side_effect=testInputBadOK)
30    def test_inputPoint_badOK(self, mock_input):
31        """Test inputPoints function with bad input corrected.
32
33        Test inputPints function behaviour when user suplies
34        invalid input and then corrected input.
35        """
36        expectedResult = [1.5, -3.0]
37        actualResult = inputPoint("B")
38        self.assertEqual(expectedResult, actualResult)
39
40    testInputBad = ["lorem", "ipsum", "end", "1.5", "lala", "3"]
41
42    @patch('builtins.input', side_effect=testInputBad)
43    def test_inputPoint_bad(self, mock_input):
44        """Test inputPoints function with bad input.
45
46        Test inputPoints function behaviour when user suplies
47        invalid input and doesn't correct it.
48        """
49        with self.assertRaises(SystemExit) as cm:
50            inputPoint("C")
51
52        self.assertEqual(cm.exception.code, 1)

Unittests for inputProcessor.inputPoints.

@patch('builtins.input', side_effect=testInput)
def test_inputPoint(self, mock_input):
20    @patch('builtins.input', side_effect=testInput)
21    def test_inputPoint(self, mock_input):
22        """Test inputPoints function with valid input."""
23        expectedResult = [1.0, -2.8]
24        actualResult = inputPoint("A")
25        self.assertEqual(expectedResult, actualResult)

Test inputPoints function with valid input.

@patch('builtins.input', side_effect=testInputBadOK)
def test_inputPoint_badOK(self, mock_input):
29    @patch('builtins.input', side_effect=testInputBadOK)
30    def test_inputPoint_badOK(self, mock_input):
31        """Test inputPoints function with bad input corrected.
32
33        Test inputPints function behaviour when user suplies
34        invalid input and then corrected input.
35        """
36        expectedResult = [1.5, -3.0]
37        actualResult = inputPoint("B")
38        self.assertEqual(expectedResult, actualResult)

Test inputPoints function with bad input corrected.

Test inputPints function behaviour when user suplies invalid input and then corrected input.

@patch('builtins.input', side_effect=testInputBad)
def test_inputPoint_bad(self, mock_input):
42    @patch('builtins.input', side_effect=testInputBad)
43    def test_inputPoint_bad(self, mock_input):
44        """Test inputPoints function with bad input.
45
46        Test inputPoints function behaviour when user suplies
47        invalid input and doesn't correct it.
48        """
49        with self.assertRaises(SystemExit) as cm:
50            inputPoint("C")
51
52        self.assertEqual(cm.exception.code, 1)

Test inputPoints function with bad input.

Test inputPoints function behaviour when user suplies invalid input and doesn't correct it.

Inherited Members
unittest.case.TestCase
TestCase
addTypeEqualityFunc
addCleanup
enterContext
addClassCleanup
enterClassContext
setUp
tearDown
setUpClass
tearDownClass
countTestCases
defaultTestResult
shortDescription
id
subTest
run
doCleanups
doClassCleanups
debug
skipTest
fail
assertFalse
assertTrue
assertRaises
assertWarns
assertLogs
assertNoLogs
assertEqual
assertNotEqual
assertAlmostEqual
assertNotAlmostEqual
assertSequenceEqual
assertListEqual
assertTupleEqual
assertSetEqual
assertIn
assertNotIn
assertIs
assertIsNot
assertDictEqual
assertDictContainsSubset
assertCountEqual
assertMultiLineEqual
assertLess
assertLessEqual
assertGreater
assertGreaterEqual
assertIsNone
assertIsNotNone
assertIsInstance
assertNotIsInstance
assertRaisesRegex
assertWarnsRegex
assertRegex
assertNotRegex
failUnlessRaises
failIf
assertRaisesRegexp
assertRegexpMatches
assertNotRegexpMatches
failUnlessEqual
assertEquals
failIfEqual
assertNotEquals
failUnlessAlmostEqual
assertAlmostEquals
failIfAlmostEqual
assertNotAlmostEquals
failUnless
assert_
class TestGetPoints(unittest.case.TestCase):
55class TestGetPoints(unittest.TestCase):
56    """Unittests for inputProcessor.getPoints."""
57
58    testPoints = [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]
59
60    @patch('inputProcessor.inputPoint', side_effect=testPoints)
61    def test_getPoints(self, mock_inputPoint):
62        """Test getPoints function with interactive input."""
63        actualResult = getPoints("")
64        self.assertEqual(actualResult, self.testPoints)
65
66    def test_getPoints_args(self):
67        """Test getPoints function with arguments input."""
68        testArgs = ["example.py", "1", "-2.5", "3.8", "-4", "5", "0"]
69        expectedResult = [[1.0, -2.5], [3.8, -4.0], [5.0, 0.0]]
70        actualResult = getPoints(testArgs, debug=True)
71        self.assertEqual(actualResult, expectedResult)

Unittests for inputProcessor.getPoints.

@patch('inputProcessor.inputPoint', side_effect=testPoints)
def test_getPoints(self, mock_inputPoint):
60    @patch('inputProcessor.inputPoint', side_effect=testPoints)
61    def test_getPoints(self, mock_inputPoint):
62        """Test getPoints function with interactive input."""
63        actualResult = getPoints("")
64        self.assertEqual(actualResult, self.testPoints)

Test getPoints function with interactive input.

def test_getPoints_args(self):
66    def test_getPoints_args(self):
67        """Test getPoints function with arguments input."""
68        testArgs = ["example.py", "1", "-2.5", "3.8", "-4", "5", "0"]
69        expectedResult = [[1.0, -2.5], [3.8, -4.0], [5.0, 0.0]]
70        actualResult = getPoints(testArgs, debug=True)
71        self.assertEqual(actualResult, expectedResult)

Test getPoints function with arguments input.

Inherited Members
unittest.case.TestCase
TestCase
addTypeEqualityFunc
addCleanup
enterContext
addClassCleanup
enterClassContext
setUp
tearDown
setUpClass
tearDownClass
countTestCases
defaultTestResult
shortDescription
id
subTest
run
doCleanups
doClassCleanups
debug
skipTest
fail
assertFalse
assertTrue
assertRaises
assertWarns
assertLogs
assertNoLogs
assertEqual
assertNotEqual
assertAlmostEqual
assertNotAlmostEqual
assertSequenceEqual
assertListEqual
assertTupleEqual
assertSetEqual
assertIn
assertNotIn
assertIs
assertIsNot
assertDictEqual
assertDictContainsSubset
assertCountEqual
assertMultiLineEqual
assertLess
assertLessEqual
assertGreater
assertGreaterEqual
assertIsNone
assertIsNotNone
assertIsInstance
assertNotIsInstance
assertRaisesRegex
assertWarnsRegex
assertRegex
assertNotRegex
failUnlessRaises
failIf
assertRaisesRegexp
assertRegexpMatches
assertNotRegexpMatches
failUnlessEqual
assertEquals
failIfEqual
assertNotEquals
failUnlessAlmostEqual
assertAlmostEquals
failIfAlmostEqual
assertNotAlmostEquals
failUnless
assert_
class TestGetSides(unittest.case.TestCase):
74class TestGetSides(unittest.TestCase):
75    """Unittests for inputProcessor.getSides."""
76
77    testSides = [1.2, 2.3, 3.4]
78
79    @patch('inputProcessor.sideLength', side_effect=testSides)
80    @patch('inputProcessor.getPoints')
81    def test_getSides(self, mock_getPoints, mock_sideLength):
82        """Test getSides function."""
83        actualResult = getSides("", debug=True)
84        self.assertEqual(actualResult, self.testSides)

Unittests for inputProcessor.getSides.

@patch('inputProcessor.sideLength', side_effect=testSides)
@patch('inputProcessor.getPoints')
def test_getSides(self, mock_getPoints, mock_sideLength):
79    @patch('inputProcessor.sideLength', side_effect=testSides)
80    @patch('inputProcessor.getPoints')
81    def test_getSides(self, mock_getPoints, mock_sideLength):
82        """Test getSides function."""
83        actualResult = getSides("", debug=True)
84        self.assertEqual(actualResult, self.testSides)

Test getSides function.

Inherited Members
unittest.case.TestCase
TestCase
addTypeEqualityFunc
addCleanup
enterContext
addClassCleanup
enterClassContext
setUp
tearDown
setUpClass
tearDownClass
countTestCases
defaultTestResult
shortDescription
id
subTest
run
doCleanups
doClassCleanups
debug
skipTest
fail
assertFalse
assertTrue
assertRaises
assertWarns
assertLogs
assertNoLogs
assertEqual
assertNotEqual
assertAlmostEqual
assertNotAlmostEqual
assertSequenceEqual
assertListEqual
assertTupleEqual
assertSetEqual
assertIn
assertNotIn
assertIs
assertIsNot
assertDictEqual
assertDictContainsSubset
assertCountEqual
assertMultiLineEqual
assertLess
assertLessEqual
assertGreater
assertGreaterEqual
assertIsNone
assertIsNotNone
assertIsInstance
assertNotIsInstance
assertRaisesRegex
assertWarnsRegex
assertRegex
assertNotRegex
failUnlessRaises
failIf
assertRaisesRegexp
assertRegexpMatches
assertNotRegexpMatches
failUnlessEqual
assertEquals
failIfEqual
assertNotEquals
failUnlessAlmostEqual
assertAlmostEquals
failIfAlmostEqual
assertNotAlmostEquals
failUnless
assert_