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 RightJustifyTests(unittest.TestCase):
    
    def test_default_case(self):
        function = main.right_justify
        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("gibson-hacker")
            
        output = fake_stdout.getvalue()
        regex = (" " * 57) + "gibson-hacker\n"
        correct = re.match(regex, output) 
        self.assertTrue(correct, "Doesn't correctly indent the string 'gibson-hacker'.")

        with mock.patch('sys.stdout', new=io.StringIO()) as fake_stdout:
            function("time")
            
        output = fake_stdout.getvalue()
        regex = (" " * 66) + "time\n"
        correct = re.match(regex, output) 
        self.assertTrue(correct, "Doesn't correctly indent the string 'time'.")
        
        
if __name__ == "__main__":
    tests = RightJustifyTests()
    tests.test_default_case()