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 GetSortedCopyTests(unittest.TestCase): def test_default_case(self): function = main.get_sorted_copy test = False try: incorrect = "" result = function.__doc__ result = result.strip() test = incorrect != result except: pass message = "No docstring." self.assertTrue(test, message) inputs = (["bagel"]) original = copy.deepcopy(inputs) correct = ["bagel"] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on a single-element list." self.assertTrue(test, message) test = inputs == original message = "It modified the parameter, which it shouldn't do." self.assertTrue(test, message) inputs = (["cheese", "weasel"]) original = copy.deepcopy(inputs) correct = ["cheese", "weasel"] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on a list that's already sorted." self.assertTrue(test, message) test = inputs == original message = "It modified the parameter, which it shouldn't do." self.assertTrue(test, message) inputs = (["cheese", "banana"]) original = copy.deepcopy(inputs) correct = ["banana", "cheese"] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't work on a list with two elements that's out of order." self.assertTrue(test, message) test = inputs == original message = "It modified the parameter, which it shouldn't do." self.assertTrue(test, message) inputs = (["seawolf", "wolf", "dog", "hound", "fox", "walrus"]) original = copy.deepcopy(inputs) correct = ["dog", "fox", "hound", "seawolf", "walrus", "wolf"] if isinstance(inputs, tuple): result = function(*inputs) else: result = function(inputs) test = result == correct message = "Doesn't return a sorted version of the list." self.assertTrue(test, message) test = inputs == original message = "It modified the parameter, which it shouldn't do." self.assertTrue(test, message) if __name__ == "__main__": tests = GetSortedCopyTests() tests.test_default_case()