Type Error: tests and solution

tests

Here is the code in tests/test_type_error.py

import unittest
import src.type_error


class TestTypeError(unittest.TestCase):

    def test_type_error_w_non_callables(self):
        src.type_error.none()
        src.type_error.false()
        src.type_error.true()
        src.type_error.a_list()
        src.type_error.a_dictionary()

    def test_type_error_w_function_signatures(self):
        src.type_error.function_00('a')
        src.type_error.function_01('a', 'b')
        src.type_error.function_02('a', 'b', 'c')
        src.type_error.function_03('a', 'b', 'c', 'd')

    def test_type_error_w_objects_that_do_not_mix(self):
        with self.assertRaises(TypeError):
            None + 1
        with self.assertRaises(TypeError):
            'text' + 0.1
        with self.assertRaises(TypeError):
            (1, 2, 3, 'n') - {1, 2, 3, 'n'}


# Exceptions Encountered
# AssertionError
# AttributeError
# TypeError

solutions

Here is the solution in type_error.py

def none():
    return None


def true():
    return True


def false():
    return False


def a_list():
    return [1, 2, 3, 4]


def a_dictionary():
    return {'key': 'value'}


def function_00():
    return None


def function_01(argument):
    return None


def function_02(argument1, argument2):
    return None


def function_03(
        argument1, argument2,
        argument3
    ):
    return None