def test_check_type_false_values_mean_success(self): from typecheck import CheckerFunction def checker_function1(*vargs): return [] check_type(CheckerFunction(checker_function1), 66) def checker_function2(*vargs): return {} check_type(CheckerFunction(checker_function2), 66)
def test_check_type_None_means_success(self): from typecheck import CheckerFunction def checker_function(*vargs): return None check_type(CheckerFunction(checker_function), 66)
def test_repr(self): from typecheck import CheckerFunction def foo(*vargs): return vargs assert repr(CheckerFunction(foo)) == "CheckerFunction(%s)" % foo
def test_check_type_true_values_mean_success(self): from typecheck import CheckerFunction def checker_function1(*vargs): return True check_type(CheckerFunction(checker_function1), 66) def checker_function2(*vargs): return 5 check_type(CheckerFunction(checker_function2), 66) def checker_function3(*vargs): return "abc" check_type(CheckerFunction(checker_function3), 66)
def test_check_type_False_means_failure(self): from typecheck import CheckerFunction, _TC_CheckerFunctionError def checker_function1(*vargs): return False try: check_type(CheckerFunction(checker_function1), 66) except _TC_CheckerFunctionError, e: assert e.checking_func is checker_function1 assert e.rejected_obj == 66
def test_check_type_errors_pass_through(self): from typecheck import CheckerFunction class MyCustomException(Exception): pass def checker_function(*vargs): raise MyCustomException(*vargs) try: check_type(CheckerFunction(checker_function), 66) except MyCustomException, e: assert e.args == (66, )
return False try: check_type(CheckerFunction(checker_function1), 66) except _TC_CheckerFunctionError, e: assert e.checking_func is checker_function1 assert e.rejected_obj == 66 else: raise AssertionError("Failed to raise _TC_CheckerFunctionError") # (0 == False) == True def checker_function2(*vargs): return 0 try: check_type(CheckerFunction(checker_function2), 66) except _TC_CheckerFunctionError, e: assert e.checking_func is checker_function2 assert e.rejected_obj == 66 else: raise AssertionError("Failed to raise _TC_CheckerFunctionError") def convert_mapping(mapping): if mapping is None: return None # k[0] is necessary because k looks like ("string", string_type) return dict([(k[0], v.type) for k, v in mapping.items()]) def active_mapping():