import unittest import io import re from unittest import mock import math import copy import student_X as main #Replace student_X with your filename class GetLongestTests(unittest.TestCase): def test_default_case(self): function = main.get_longest test = False try: incorrect = "" result = function.__doc__ result = result.strip() test = incorrect != result except: pass message = "No docstring." self.assertTrue(test, message) inputs = (["Hello"]) original = copy.deepcopy(inputs) correct = "Hello" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on a list with only one string." self.assertTrue(test, message) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) inputs = ([""]) original = copy.deepcopy(inputs) correct = "" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on a list with only the empty string." self.assertTrue(test, message) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) inputs = (["a", "aa"]) original = copy.deepcopy(inputs) correct = "aa" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on a ['a', 'aa']." self.assertTrue(test, message) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) inputs = (["aaa", "x"]) original = copy.deepcopy(inputs) correct = "aaa" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on ['aaa', 'x']." self.assertTrue(test, message) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) inputs = (["a", "bb", "ccc", "dddd", "eeeee", "ffffff", "ggggggg"]) original = copy.deepcopy(inputs) correct = "ggggggg" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on a long list of strings." self.assertTrue(test, message) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) inputs = (["a", "bb", "ccc", "dddddddd", "eeeee", "ffffff", "ggggggg"]) original = copy.deepcopy(inputs) correct = "dddddddd" if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on a semi-long list of strings." self.assertTrue(test, message) test = inputs == original message = "Modifies the inputs." self.assertTrue(test, message) if __name__ == "__main__": tests = GetLongestTests() tests.test_default_case()