If having zero arguments should trigger the help message, that implies that at least one of your options isn't really optional. Make sure you have at least one positional argument (i.e., one whose name is not prefixed with "--") defined:
p = argparse.ArgumentParser()
p.add_argument("foo", help="Required argument")
Then, if your script isn't called with the argument for foo
, the usage message should be triggered.