def test_bad_arg_length_no_max(self): min_length = 5 msg = "expected at least {min_length} arguments".format( min_length=min_length) with tm.assertRaisesRegexp(ValueError, msg): validate_args((None,), min_length=min_length, max_length=None)
def test_bad_arg_length_no_max(self): min_length = 5 msg = "expected at least {min_length} arguments".format( min_length=min_length) with tm.assertRaisesRegexp(ValueError, msg): validate_args((None, ), min_length=min_length, max_length=None)
def test_validation(self): # No exceptions should be thrown validate_args(self.fname, (None,), 2, dict(out=None)) compat_args = OrderedDict() compat_args['axis'] = 1 compat_args['out'] = None validate_args(self.fname, (1, None), 2, compat_args)
def test_validation(self): # No exceptions should be thrown validate_args(self.fname, (None, ), 2, dict(out=None)) compat_args = OrderedDict() compat_args['axis'] = 1 compat_args['out'] = None validate_args(self.fname, (1, None), 2, compat_args)
def test_bad_arg_length_with_max(self): min_length = 5 max_length = 10 msg = ("expected between {min_length} and {max_length}" " arguments inclusive".format(min_length=min_length, max_length=max_length)) with tm.assertRaisesRegexp(ValueError, msg): validate_args((None,), min_length=min_length, max_length=max_length)
def test_bad_arg_length_with_max(self): min_length = 5 max_length = 10 msg = ("expected between {min_length} and {max_length}" " arguments inclusive".format(min_length=min_length, max_length=max_length)) with tm.assertRaisesRegexp(ValueError, msg): validate_args((None, ), min_length=min_length, max_length=max_length)
def test_bad_arg_length_max_value_single(self): args = (None, None) compat_args = ("foo",) min_fname_arg_count = 0 max_length = len(compat_args) + min_fname_arg_count actual_length = len(args) + min_fname_arg_count msg = r"{fname}\(\) takes at most {max_length} " r"argument \({actual_length} given\)".format( fname=self.fname, max_length=max_length, actual_length=actual_length ) with tm.assertRaisesRegexp(TypeError, msg): validate_args(self.fname, args, min_fname_arg_count, compat_args)
def test_bad_arg_length_max_value_multiple(self): args = (None, None) compat_args = dict(foo=None) min_fname_arg_count = 2 max_length = len(compat_args) + min_fname_arg_count actual_length = len(args) + min_fname_arg_count msg = (r"{fname}\(\) takes at most {max_length} " r"arguments \({actual_length} given\)".format( fname=self.fname, max_length=max_length, actual_length=actual_length)) with tm.assert_raises_regex(TypeError, msg): validate_args(self.fname, args, min_fname_arg_count, compat_args)
def test_bad_arg_length_max_value_single(self): args = (None, None) compat_args = ('foo', ) min_fname_arg_count = 0 max_length = len(compat_args) + min_fname_arg_count actual_length = len(args) + min_fname_arg_count msg = (r"{fname}\(\) takes at most {max_length} " r"argument \({actual_length} given\)".format( fname=self.fname, max_length=max_length, actual_length=actual_length)) with tm.assertRaisesRegexp(TypeError, msg): validate_args(self.fname, args, min_fname_arg_count, compat_args)
def test_not_all_defaults(self): bad_arg = 'foo' msg = ("the '{arg}' parameter is not supported " r"in the pandas implementation of {func}\(\)". format(arg=bad_arg, func=self.fname)) compat_args = OrderedDict() compat_args['foo'] = 2 compat_args['bar'] = -1 compat_args['baz'] = 3 arg_vals = (1, -1, 3) for i in range(1, 3): with tm.assertRaisesRegexp(ValueError, msg): validate_args(self.fname, arg_vals[:i], 2, compat_args)
def test_not_all_defaults(self): bad_arg = 'foo' msg = ("the '{arg}' parameter is not supported " r"in the pandas implementation of {func}\(\)".format( arg=bad_arg, func=self.fname)) compat_args = OrderedDict() compat_args['foo'] = 2 compat_args['bar'] = -1 compat_args['baz'] = 3 arg_vals = (1, -1, 3) for i in range(1, 3): with tm.assertRaisesRegexp(ValueError, msg): validate_args(self.fname, arg_vals[:i], 2, compat_args)
def __call__(self, args, kwargs, fname=None, max_fname_arg_count=None, method=None): fname = self.fname if fname is None else fname max_fname_arg_count = (self.max_fname_arg_count if max_fname_arg_count is None else max_fname_arg_count) method = self.method if method is None else method if method == 'args': validate_args(fname, args, max_fname_arg_count, self.defaults) elif method == 'kwargs': validate_kwargs(fname, kwargs, self.defaults) elif method == 'both': validate_args_and_kwargs(fname, args, kwargs, max_fname_arg_count, self.defaults) else: raise ValueError("invalid validation method " "'{method}'".format(method=method))
def test_not_all_none(self): msg = "All arguments must be None" with tm.assertRaisesRegexp(ValueError, msg): validate_args(('foo',), min_length=0, max_length=1, msg=msg) with tm.assertRaisesRegexp(ValueError, msg): validate_args(('foo', 'bar', 'baz'), min_length=2, max_length=5, msg=msg) with tm.assertRaisesRegexp(ValueError, msg): validate_args((None, 'bar', None), min_length=2, max_length=5, msg=msg)
def test_not_all_none(self): msg = "All arguments must be None" with tm.assertRaisesRegexp(ValueError, msg): validate_args(('foo', ), min_length=0, max_length=1, msg=msg) with tm.assertRaisesRegexp(ValueError, msg): validate_args(('foo', 'bar', 'baz'), min_length=2, max_length=5, msg=msg) with tm.assertRaisesRegexp(ValueError, msg): validate_args((None, 'bar', None), min_length=2, max_length=5, msg=msg)
def test_validation(self): # No exceptions should be thrown validate_args((None,), min_length=0, max_length=1) validate_args((None, None), min_length=1, max_length=5)
def test_bad_min_length(self): msg = "'min_length' must be non-negative" with tm.assertRaisesRegexp(ValueError, msg): validate_args((None,), min_length=-1, max_length=5)
def test_bad_min_length(self): msg = "'min_length' must be non-negative" with tm.assertRaisesRegexp(ValueError, msg): validate_args((None, ), min_length=-1, max_length=5)
def test_validation(self): # No exceptions should be thrown validate_args((None, ), min_length=0, max_length=1) validate_args((None, None), min_length=1, max_length=5)
def test_bad_min_fname_arg_count(self): msg = "'max_fname_arg_count' must be non-negative" with tm.assertRaisesRegexp(ValueError, msg): validate_args(self.fname, (None, ), -1, 'foo')
def test_bad_min_fname_arg_count(self): msg = "'max_fname_arg_count' must be non-negative" with tm.assertRaisesRegexp(ValueError, msg): validate_args(self.fname, (None,), -1, 'foo')
def test_bad_min_max_length(self): msg = "'min_length' > 'max_length'" with tm.assertRaisesRegexp(ValueError, msg): validate_args((None, ), min_length=5, max_length=2)
def test_bad_min_max_length(self): msg = "'min_length' > 'max_length'" with tm.assertRaisesRegexp(ValueError, msg): validate_args((None,), min_length=5, max_length=2)