import unittest import io import re from unittest import mock import math import student_X as main #Replace student_X with your filename class EarlierStringTests(unittest.TestCase): def test_default_case(self): function = main.earlier_string test = False try: incorrect = "" result = function.__doc__ result = result.strip() test = incorrect != result except: pass message = "No docstring." self.assertTrue(test, message) inputs = ("", "cheese") correct = "" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work when one of the parameters is the empty string." self.assertTrue(test, message) inputs = ("x", "") correct = "" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work when one of the parameters is the empty string." self.assertTrue(test, message) inputs = ("a", "b") correct = "a" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on a single-character strings." self.assertTrue(test, message) inputs = ("b", "aa") correct = "aa" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on some short strings." self.assertTrue(test, message) inputs = ("cheese", "cheese") correct = "cheese" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work when both strings are the same." self.assertTrue(test, message) inputs = ("cinnaman", "apple") correct = "apple" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on longer strings." self.assertTrue(test, message) if __name__ == "__main__": tests = EarlierStringTests() tests.test_default_case()