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 AllLowerCaseTests(unittest.TestCase): def test_default_case(self): function = main.all_lower_case test = False try: incorrect = "" result = function.__doc__ result = result.strip() test = incorrect != result except: pass message = "No docstring." self.assertTrue(test, message) inputs = ([]) original = copy.deepcopy(inputs) correct = [] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = original == inputs message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on an empty list." self.assertTrue(test, message) inputs = (["A"]) original = copy.deepcopy(inputs) correct = ["a"] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = original == inputs message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a list with one string." self.assertTrue(test, message) inputs = (["AbA"]) original = copy.deepcopy(inputs) correct = ["aba"] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = original == inputs message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a list with one string." self.assertTrue(test, message) inputs = (["A", "B", "C"]) original = copy.deepcopy(inputs) correct = ["a", "b", "c"] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = original == inputs message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a list with three single-character strings." self.assertTrue(test, message) inputs = (["HI", "YO", "HOLA", "HOLLA"]) original = copy.deepcopy(inputs) correct = ["hi", "yo", "hola", "holla"] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = original == inputs message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a list with some strings." self.assertTrue(test, message) inputs = (["Hi", "small", "HiThere!", "W00T in TimE!"]) original = copy.deepcopy(inputs) correct = ["hi", "small", "hithere!", "w00t in time!"] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = original == inputs message = "Modifies the inputs." self.assertTrue(test, message) test = result == correct message = "Doesn't work on a list of various strings." self.assertTrue(test, message) if __name__ == "__main__": tests = AllLowerCaseTests() tests.test_default_case()