def test_restrict_args_with_kwargs(self):
     self.assertEquals(operators.restrict_args(lambda a: a, a='a'), 'a')
     self.assertEquals(operators.restrict_args(lambda a, b: a + b, 'a', b='b'), 'ab')
     self.assertEquals(operators.restrict_args(lambda a, b: a + b, a='a', b='b'), 'ab')
     with self.assertRaises(TypeError):
         operators.restrict_args(lambda: '', a='a')
     with self.assertRaises(TypeError):
         operators.restrict_args(lambda a: a, 'a', b='b')
     with self.assertRaises(TypeError):
         operators.restrict_args(lambda a: a, 'a', a='a')
 def test_restrict_args_with_too_few_args(self):
     with self.assertRaises(TypeError):
         operators.restrict_args(lambda a: a)
     with self.assertRaises(TypeError):
         operators.restrict_args(lambda a, b: a + b, 'a')
     with self.assertRaises(TypeError):
         operators.restrict_args(lambda a, b: a + b, a='a')
     with self.assertRaises(TypeError):
         operators.restrict_args(lambda a, b: a + b, b='b')
 def test_restrict_args_basics(self):
     self.assertEquals(operators.restrict_args(lambda: '', 'a', 'b'), '')
     self.assertEquals(operators.restrict_args(lambda a: a, 'a'), 'a')
     self.assertEquals(operators.restrict_args(lambda a: a, 'a', 'b'), 'a')
     self.assertEquals(operators.restrict_args(lambda a, b: a + b, 'a', 'b'), 'ab')