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