def test_strings(self): with self.assertRaises(SystemExit) as context: run_program('average.py', ['hello', 'hi']) self.assertEqual( str(context.exception), "Invalid values entered, only numbers allowed!", )
def test_ctrl_c_twice(self): def ctrl_c(_): raise KeyboardInterrupt with patch('time.sleep', side_effect=ctrl_c) as sleep: output = run_program('countdown.py', ['2'], raises=SystemExit) self.assertEqual( output, '2\nPress Ctrl-C again to exit\n1\nGoodbye!\n', ) sleep.assert_called_with(1) self.assertEqual(sleep.call_count, 2)
def test_negative_numbers(self): output = run_program('add.py', ['-7', '2']) self.assertEqual(output, "-5.0\n") output = run_program('add.py', ['-2', '-1']) self.assertEqual(output, "-3.0\n")
def test_floats(self): output = run_program('add.py', ['1.5', '2']) self.assertEqual(output, "3.5\n")
def test_integers(self): output = run_program('add.py', ['1', '2']) self.assertEqual(output, "3.0\n")
def test_cli(self): output = run_program('hello.py') self.assertEqual(output, "Hello world!\n")
def test_with_multiple_arguments(self): output = run_program('greetings.py', ['Trey', 'Hunner']) self.assertEqual(output, "Hello Trey Hunner!\n")
def test_with_argument(self): output = run_program('greetings.py', ['Trey']) self.assertEqual(output, "Hello Trey!\n")
def test_ctrl_c_once(self): def ctrl_c(_): raise KeyboardInterrupt with patch('time.sleep', side_effect=ctrl_c) as sleep: output = run_program('countdown.py', ['1']) self.assertEqual(output, '1\nPress Ctrl-C again to exit\n') sleep.assert_called_once_with(1)
def test_no_numbers(self): with self.assertRaises(SystemExit) as context: output = run_program('average.py') self.assertEqual(str(context.exception), "No numbers to average!")
def test_decimal_number_result(self): output = run_program('average.py', ['2', '3', '4', '5', '6', '7']) self.assertEqual(output, "Average is 4.5\n")
def test_whole_number_result(self): output = run_program('average.py', ['2', '3', '4']) self.assertEqual(output, "Average is 3.0\n")
def test_negative_numbers(self): output = run_program('difference.py', ['-7', '2']) self.assertEqual(output, "9.0\n")
def test_floats(self): output = run_program('difference.py', ['6', '3.5']) self.assertEqual(output, "2.5\n")
def test_strings(self): with self.assertRaises(Exception): run_program('add.py', ['hello', 'hi'])
def test_no_arguments(self): output = run_program('greetings.py') self.assertEqual(output, "Hello world!\n")
def test_integers(self): output = run_program('difference.py', ['3', '5']) self.assertEqual(output, "2.0\n")
def test_no_ctrl_c(self): with patch('time.sleep') as sleep: output = run_program('countdown.py', ['5']) self.assertEqual(output, '5\n4\n3\n2\n1\n') sleep.assert_called_with(1) self.assertEqual(sleep.call_count, 5)