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 IndentStringTests(unittest.TestCase): def test_default_case(self): function = main.indent_string try: doc = function.__doc__ except: doc = "" correct = doc.strip() != "" message = "No docstring." self.assertTrue(correct, message) with mock.patch('sys.stdout', new=io.StringIO()) as fake_stdout: function("monkey-barrel") output = fake_stdout.getvalue() regex = " m.*" correct = re.match(regex, output) self.assertTrue(correct, "Doesn't start with four spaces.") output = fake_stdout.getvalue() regex = " monkey-barrel\n" correct = re.match(regex, output) self.assertTrue(correct, "Doesn't correctly indent the string 'monkey-barrel'.") with mock.patch('sys.stdout', new=io.StringIO()) as fake_stdout: function("bananantelope") output = fake_stdout.getvalue() regex = " bananantelope\n" correct = re.match(regex, output) self.assertTrue(correct, "Doesn't correctly indent the string 'bananantelope'.") if __name__ == "__main__": tests = IndentStringTests() tests.test_default_case()