def parses_sys_argv_style_list_of_strings(self): "parses sys.argv-style list of strings" # Doesn't-blow-up tests FTL mytask = Context(name="mytask") mytask.add_arg("arg") p = Parser(contexts=[mytask]) p.parse_argv(["mytask", "--arg", "value"])
def parses_sys_argv_style_list_of_strings(self): "parses sys.argv-style list of strings" # Doesn't-blow-up tests FTL mytask = Context(name='mytask') mytask.add_arg('arg') p = Parser(contexts=[mytask]) p.parse_argv(['mytask', '--arg', 'value'])
class add_arg: def setup(self): self.c = Context() def can_take_Argument_instance(self): a = Argument(names=('foo',)) self.c.add_arg(a) assert self.c.args['foo'] is a def can_take_name_arg(self): self.c.add_arg('foo') assert 'foo' in self.c.args def can_take_kwargs_for_single_Argument(self): self.c.add_arg(names=('foo', 'bar')) assert 'foo' in self.c.args and 'bar' in self.c.args def raises_ValueError_on_duplicate(self): self.c.add_arg(names=('foo', 'bar')) with raises(ValueError): self.c.add_arg(name='bar') def adds_flaglike_name_to_dot_flags(self): "adds flaglike name to .flags" self.c.add_arg('foo') assert '--foo' in self.c.flags def adds_all_names_to_dot_flags(self): "adds all names to .flags" self.c.add_arg(names=('foo', 'bar')) assert '--foo' in self.c.flags assert '--bar' in self.c.flags def adds_true_bools_to_inverse_flags(self): self.c.add_arg(name='myflag', default=True, kind=bool) assert '--myflag' in self.c.flags assert '--no-myflag' in self.c.inverse_flags assert self.c.inverse_flags['--no-myflag'] == '--myflag' def inverse_flags_works_right_with_task_driven_underscored_names(self): # Use a Task here instead of creating a raw argument, we're partly # testing Task.get_arguments()' transform of underscored names # here. Yes that makes this an integration test, but it's nice to # test it here at this level & not just in cli tests. @task def mytask(c, underscored_option=True): pass self.c.add_arg(mytask.get_arguments()[0]) flags = self.c.inverse_flags['--no-underscored-option'] assert flags == '--underscored-option' def turns_single_character_names_into_short_flags(self): self.c.add_arg('f') assert '-f' in self.c.flags assert '--f' not in self.c.flags def adds_positional_args_to_positional_args(self): self.c.add_arg(name='pos', positional=True) assert self.c.positional_args[0].name == 'pos' def positional_args_empty_when_none_given(self): assert len(self.c.positional_args) == 0 def positional_args_filled_in_order(self): self.c.add_arg(name='pos1', positional=True) assert self.c.positional_args[0].name == 'pos1' self.c.add_arg(name='abc', positional=True) assert self.c.positional_args[1].name == 'abc' def positional_arg_modifications_affect_args_copy(self): self.c.add_arg(name='hrm', positional=True) assert self.c.args['hrm'].value == self.c.positional_args[0].value self.c.positional_args[0].value = 17 assert self.c.args['hrm'].value == self.c.positional_args[0].value
class add_arg: def setup(self): self.c = Context() def can_take_Argument_instance(self): a = Argument(names=('foo', )) self.c.add_arg(a) assert self.c.args['foo'] is a def can_take_name_arg(self): self.c.add_arg('foo') assert 'foo' in self.c.args def can_take_kwargs_for_single_Argument(self): self.c.add_arg(names=('foo', 'bar')) assert 'foo' in self.c.args and 'bar' in self.c.args @raises(ValueError) def raises_ValueError_on_duplicate(self): self.c.add_arg(names=('foo', 'bar')) self.c.add_arg(name='bar') def adds_flaglike_name_to_dot_flags(self): "adds flaglike name to .flags" self.c.add_arg('foo') assert '--foo' in self.c.flags def adds_all_names_to_dot_flags(self): "adds all names to .flags" self.c.add_arg(names=('foo', 'bar')) assert '--foo' in self.c.flags assert '--bar' in self.c.flags def adds_true_bools_to_inverse_flags(self): self.c.add_arg(name='myflag', default=True, kind=bool) assert '--myflag' in self.c.flags assert '--no-myflag' in self.c.inverse_flags eq_(self.c.inverse_flags['--no-myflag'], '--myflag') def inverse_flags_works_right_with_task_driven_underscored_names(self): # Use a Task here instead of creating a raw argument, we're partly # testing Task.get_arguments()' transform of underscored names # here. Yes that makes this an integration test, but it's nice to # test it here at this level & not just in cli tests. @task def mytask(underscored_option=True): pass self.c.add_arg(mytask.get_arguments()[0]) eq_(self.c.inverse_flags['--no-underscored-option'], '--underscored-option') def turns_single_character_names_into_short_flags(self): self.c.add_arg('f') assert '-f' in self.c.flags assert '--f' not in self.c.flags def adds_positional_args_to_positional_args(self): self.c.add_arg(name='pos', positional=True) eq_(self.c.positional_args[0].name, 'pos') def positional_args_empty_when_none_given(self): eq_(len(self.c.positional_args), 0) def positional_args_filled_in_order(self): self.c.add_arg(name='pos1', positional=True) eq_(self.c.positional_args[0].name, 'pos1') self.c.add_arg(name='abc', positional=True) eq_(self.c.positional_args[1].name, 'abc') def positional_arg_modifications_affect_args_copy(self): self.c.add_arg(name='hrm', positional=True) eq_(self.c.args['hrm'].value, self.c.positional_args[0].value) self.c.positional_args[0].value = 17 eq_(self.c.args['hrm'].value, self.c.positional_args[0].value)
class add_arg: def setup(self): self.c = Context() def can_take_Argument_instance(self): a = Argument(names=("foo", )) self.c.add_arg(a) assert self.c.args["foo"] is a def can_take_name_arg(self): self.c.add_arg("foo") assert "foo" in self.c.args def can_take_kwargs_for_single_Argument(self): self.c.add_arg(names=("foo", "bar")) assert "foo" in self.c.args and "bar" in self.c.args def raises_ValueError_on_duplicate(self): self.c.add_arg(names=("foo", "bar")) with raises(ValueError): self.c.add_arg(name="bar") def adds_flaglike_name_to_dot_flags(self): "adds flaglike name to .flags" self.c.add_arg("foo") assert "--foo" in self.c.flags def adds_all_names_to_dot_flags(self): "adds all names to .flags" self.c.add_arg(names=("foo", "bar")) assert "--foo" in self.c.flags assert "--bar" in self.c.flags def adds_true_bools_to_inverse_flags(self): self.c.add_arg(name="myflag", default=True, kind=bool) assert "--myflag" in self.c.flags assert "--no-myflag" in self.c.inverse_flags assert self.c.inverse_flags["--no-myflag"] == "--myflag" def inverse_flags_works_right_with_task_driven_underscored_names(self): # Use a Task here instead of creating a raw argument, we're partly # testing Task.get_arguments()' transform of underscored names # here. Yes that makes this an integration test, but it's nice to # test it here at this level & not just in cli tests. @task def mytask(c, underscored_option=True): pass self.c.add_arg(mytask.get_arguments()[0][0]) flags = self.c.inverse_flags["--no-underscored-option"] assert flags == "--underscored-option" def turns_single_character_names_into_short_flags(self): self.c.add_arg("f") assert "-f" in self.c.flags assert "--f" not in self.c.flags def adds_positional_args_to_positional_args(self): self.c.add_arg(name="pos", positional=True) assert self.c.positional_args[0].name == "pos" def positional_args_empty_when_none_given(self): assert len(self.c.positional_args) == 0 def positional_args_filled_in_order(self): self.c.add_arg(name="pos1", positional=True) assert self.c.positional_args[0].name == "pos1" self.c.add_arg(name="abc", positional=True) assert self.c.positional_args[1].name == "abc" def positional_arg_modifications_affect_args_copy(self): self.c.add_arg(name="hrm", positional=True) assert self.c.args["hrm"].value == self.c.positional_args[0].value self.c.positional_args[0].value = 17 assert self.c.args["hrm"].value == self.c.positional_args[0].value
class add_arg: def setup(self): self.c = Context() def can_take_Argument_instance(self): a = Argument(names=('foo',)) self.c.add_arg(a) assert self.c.args['foo'] is a def can_take_name_arg(self): self.c.add_arg('foo') assert 'foo' in self.c.args def can_take_kwargs_for_single_Argument(self): self.c.add_arg(names=('foo', 'bar')) assert 'foo' in self.c.args and 'bar' in self.c.args @raises(ValueError) def raises_ValueError_on_duplicate(self): self.c.add_arg(names=('foo', 'bar')) self.c.add_arg(name='bar') def adds_flaglike_name_to_dot_flags(self): "adds flaglike name to .flags" self.c.add_arg('foo') assert '--foo' in self.c.flags def adds_all_names_to_dot_flags(self): "adds all names to .flags" self.c.add_arg(names=('foo', 'bar')) assert '--foo' in self.c.flags assert '--bar' in self.c.flags def turns_single_character_names_into_short_flags(self): self.c.add_arg('f') assert '-f' in self.c.flags assert '--f' not in self.c.flags def adds_positional_args_to_positional_args(self): self.c.add_arg(name='pos', positional=True) eq_(self.c.positional_args[0].name, 'pos') def positional_args_empty_when_none_given(self): eq_(len(self.c.positional_args), 0) def positional_args_filled_in_order(self): self.c.add_arg(name='pos1', positional=True) eq_(self.c.positional_args[0].name, 'pos1') self.c.add_arg(name='abc', positional=True) eq_(self.c.positional_args[1].name, 'abc') def positional_arg_modifications_affect_args_copy(self): self.c.add_arg(name='hrm', positional=True) eq_(self.c.args['hrm'].value, self.c.positional_args[0].value) self.c.positional_args[0].value = 17 eq_(self.c.args['hrm'].value, self.c.positional_args[0].value)
def returns_True_if_flag_is_valid_arg(self): c = Context() c.add_arg(Argument(names=('foo',))) eq_(c.has_arg('foo'), True)
def returns_Argument_for_given_name(self): c = Context() a = Argument(name='foo') c.add_arg(a) assert c.get_arg('foo') is a
def raises_ValueError_on_duplicate(self): c = Context() c.add_arg(names=('foo', 'bar')) c.add_arg(name='bar')
def can_take_kwargs(self): c = Context() c.add_arg(names=('foo', 'bar')) assert c.has_arg('foo') and c.has_arg('bar')
def can_take_name_arg(self): c = Context() c.add_arg('foo') assert c.has_arg('foo')
def can_take_Argument_instance(self): c = Context() a = Argument(names=('foo',)) c.add_arg(a) assert c.get_arg('foo') is a
class add_arg: def setup(self): self.c = Context() def can_take_Argument_instance(self): a = Argument(names=('foo',)) self.c.add_arg(a) assert self.c.args['foo'] is a def can_take_name_arg(self): self.c.add_arg('foo') assert 'foo' in self.c.args def can_take_kwargs(self): self.c.add_arg(names=('foo', 'bar')) assert 'foo' in self.c.args and 'bar' in self.c.args @raises(ValueError) def raises_ValueError_on_duplicate(self): self.c.add_arg(names=('foo', 'bar')) self.c.add_arg(name='bar') def adds_flaglike_name_to_dot_flags(self): "adds flaglike name to .flags" self.c.add_arg('foo') assert '--foo' in self.c.flags def adds_all_names_to_dot_flags(self): "adds all names to .flags" self.c.add_arg(names=('foo', 'bar')) assert '--foo' in self.c.flags assert '--bar' in self.c.flags def turns_single_character_names_into_short_flags(self): self.c.add_arg('f') assert '-f' in self.c.flags assert '--f' not in self.c.flags