import unittest import io import re from unittest import mock import math import student_X as main #Replace student_X with your filename import sys import io from io import StringIO class PrintInterestingMultiplesTests(unittest.TestCase): def test_default_case(self): function = main.print_interesting_multiples try: docstring = function.__doc__ docstring = docstring.strip() except: docstring = "" correct = docstring != "" message = "docstring is blank." self.assertTrue(correct, message) with mock.patch('sys.stdout', new=io.StringIO()) as fake_stdout: function(17, 0) output = fake_stdout.getvalue().strip() correct = "" == output feedback = "Doesn't print out nothing when the second parameter is zero." self.assertTrue(correct, feedback) regex = '' correct = re.match(regex, output) feedback = "Doesn't print out nothing when the second parameter is zero." self.assertTrue(correct, feedback) with mock.patch('sys.stdout', new=io.StringIO()) as fake_stdout: function(17, 1) output = fake_stdout.getvalue().strip() correct = "17" == output feedback = "Doesn't just print out the first parameter when the second parameter is 1." self.assertTrue(correct, feedback) regex = '17' correct = re.match(regex, output) feedback = "Doesn't just print out the first parameter when the second parameter is 1." self.assertTrue(correct, feedback) with mock.patch('sys.stdout', new=io.StringIO()) as fake_stdout: function(5, 2) output = fake_stdout.getvalue().strip() correct = output == "5 10" feedback = "Doesn't just print '5 10' when the parameters are (5,2)." self.assertTrue(correct, feedback) regex = '5 10' correct = re.match(regex, output) feedback = "Doesn't just print '5 10' when the parameters are (5,2)." self.assertTrue(correct, feedback) with mock.patch('sys.stdout', new=io.StringIO()) as fake_stdout: function(12, 4) output = fake_stdout.getvalue().strip() correct = output == "12 24 36 48" feedback = "Doesn't work on the parameters (12,4)." self.assertTrue(correct, feedback) if __name__ == "__main__": tests = PrintInterestingMultiplesTests() tests.test_default_case()