def _assert_order(self, name_tuples, expected_flag_order): c = Context(args=[Argument(names=x) for x in name_tuples]) expected = [c.help_for(x) for x in expected_flag_order] assert c.help_tuples() == expected
def underscored_args(self): c = Context(args=(Argument("i_have_underscores", help="yup"),)) result = c.help_for("--i_have_underscores") assert result == ("--i_have_underscores=STRING", "yup")
def true_default_args(self): c = Context(args=(Argument("truthy", kind=bool, default=True),)) assert c.help_for("--truthy") == ("--[no_]truthy", "")
class help_for: def setup(self): # Normal, non-task/collection related Context self.vanilla = Context( args=(Argument("foo"), Argument("bar", help="bar the baz")) ) # Task/Collection generated Context # (will expose flags n such) @task(help={"otherarg": "other help"}, optional=["optval"]) def mytask(c, myarg, otherarg, optval, intval=5): pass col = Collection(mytask) self.tasked = col.to_contexts()[0] def raises_ValueError_for_non_flag_values(self): with raises(ValueError): self.vanilla.help_for("foo") def vanilla_no_helpstr(self): assert self.vanilla.help_for("--foo") == ("--foo=STRING", "") def vanilla_with_helpstr(self): result = self.vanilla.help_for("--bar") assert result == ("--bar=STRING", "bar the baz") def task_driven_with_helpstr(self): result = self.tasked.help_for("--otherarg") assert result == ("-o STRING, --otherarg=STRING", "other help") # Yes, the next 3 tests are identical in form, but technically they # test different behaviors. HERPIN' AN' DERPIN' def task_driven_no_helpstr(self): result = self.tasked.help_for("--myarg") assert result == ("-m STRING, --myarg=STRING", "") def short_form_before_long_form(self): result = self.tasked.help_for("--myarg") assert result == ("-m STRING, --myarg=STRING", "") def equals_sign_for_long_form_only(self): result = self.tasked.help_for("--myarg") assert result == ("-m STRING, --myarg=STRING", "") def kind_to_placeholder_map(self): # Strings helpfor = self.tasked.help_for("--myarg") assert helpfor == ("-m STRING, --myarg=STRING", "") # Ints helpfor = self.tasked.help_for("--intval") assert helpfor == ("-i INT, --intval=INT", "") # TODO: others def shortflag_inputs_work_too(self): m = self.tasked.help_for("-m") myarg = self.tasked.help_for("--myarg") assert m == myarg def optional_values_use_brackets(self): result = self.tasked.help_for("--optval") assert result == ("-p [STRING], --optval[=STRING]", "") def underscored_args(self): c = Context(args=(Argument("i_have_underscores", help="yup"),)) result = c.help_for("--i_have_underscores") assert result == ("--i_have_underscores=STRING", "yup") def true_default_args(self): c = Context(args=(Argument("truthy", kind=bool, default=True),)) assert c.help_for("--truthy") == ("--[no_]truthy", "")