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 InputGreetTests(unittest.TestCase):

    def test_default_case(self):
        function = main.input_greet
        
        correct = function.__doc__.strip() != ""
        message = "docstring is blank."
        self.assertTrue(correct, message) 

        

        with mock.patch('sys.stdout', new=io.StringIO()) as fake_stdout:
            oldstdin = sys.stdin
            sys.stdin = StringIO('Renee')
            function()
        output = fake_stdout.getvalue().strip()
        sys.stdin = oldstdin

        correct = "Hi, Renee!" == output
        feedback = "Doesn't print out 'Hi, Renee!', when I type 'Renee' into the terminal."
        self.assertTrue(correct, feedback)

        
        name = "Darth Roberson"
        with mock.patch('sys.stdout', new=io.StringIO()) as fake_stdout:
            oldstdin = sys.stdin
            sys.stdin = StringIO(name)
            function()
        output = fake_stdout.getvalue().strip()
        sys.stdin = oldstdin

        correct = "Hi, " + name + "!" == output
        feedback = "Doesn't print out 'Hi, " + name + "!', when I type '" + name + "' into the terminal."
        self.assertTrue(correct, feedback)
        
        
if __name__ == "__main__":
    tests = InputGreetTests()
    tests.test_default_case()