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()