def test_wrong_parameter_number(self): def myfunc(): return 9 self.assertEqual(absorb(myfunc)(7), None) with self.assertRaises(TypeError): absorb(myfunc)()
def test_mixed_function_error(self): def myfunc(value): return value.replace('a', '') comp = Composition(str.strip, str.lower, myfunc, len, self._myfunc) with self.assertRaises(TypeError): comp(7) acomp = Composition(absorb(comp)) self.assertIsNone(acomp(7)) acomp = Composition(absorb(comp, use_original=True)) self.assertEqual(acomp(7), 7)
def test_mixed_function_error(self): def myfunc(value): return value.replace('a','') comp = Composition(str.strip, str.lower, myfunc, len, self._myfunc) with self.assertRaises(TypeError): comp(7) acomp = Composition(absorb(comp)) self.assertIsNone(acomp(7)) acomp = Composition(absorb(comp, use_original=True)) self.assertEqual(acomp(7), 7)
def test_class_method_error(self): comp = Composition(TestSingleFunctionComposition._myclassfunc) with self.assertRaises(TypeError): comp('11') comp = Composition(absorb(TestSingleFunctionComposition._myclassfunc)) self.assertIsNone(comp('11'))
def test_bound_method_error(self): comp = Composition(self._myfunc) with self.assertRaises(TypeError): comp('Pillow') comp = Composition(absorb(self._myfunc)) self.assertIsNone(comp('Pillow'))
def test_function_error(self): def myfunc(value): return (value % 2) + 1 comp = Composition(myfunc) with self.assertRaises(TypeError): comp('Pillow') comp = Composition(absorb(myfunc)) self.assertIsNone(comp('Pillow'))
def test_function_error(self): def myfunc(value): return (value%2)+1 comp = Composition(myfunc) with self.assertRaises(TypeError): comp('Pillow') comp = Composition(absorb(myfunc)) self.assertIsNone(comp('Pillow'))
def test_builtin_function_error(self): comp = Composition(str.strip) with self.assertRaises(TypeError): comp() with self.assertRaises(TypeError): comp(18.8) comp = Composition(absorb(str.strip)) self.assertIsNone(comp()) self.assertIsNone(comp(18.8))
def test_not_function(self): with self.assertRaises(NotCallable): absorb('anystring')(' FunComp ')
def test_none_function(self): with self.assertRaises(NotCallable): absorb(None)(' FunComp ')
def test_type_success(self): self.assertEqual(absorb(int)(' 7 '), 7)
def test_multiple_paramter_number(self): def myfunc(value, mod=2): return (value % mod) + 1 self.assertEqual(absorb(myfunc)(9, 3), 1)
def test_absorb_error_use_original(self): self.assertEqual(absorb(int, use_original=True)(' Banana'), ' Banana')
def test_absorb_error_to_none(self): self.assertEqual(absorb(int)(' Banana'), None)
def test_builtin_function_success(self): self.assertEqual(absorb(str.strip)(' FunComp '), 'FunComp')
def test_function_success(self): def myfunc(value): return (value%2)+1 self.assertEqual(absorb(myfunc)(9), 2)
def test_multiple_paramter_number(self): def myfunc(value, mod = 2): return (value%mod)+1 self.assertEqual(absorb(myfunc)(9,3), 1)
def test_function_success(self): def myfunc(value): return (value % 2) + 1 self.assertEqual(absorb(myfunc)(9), 2)