タイトルそのままですが、気づいたのでメモ
import os import argparse parser = argparse.ArgumentParser() parser.add_argument('source-file') parser.add_argument('output-file') parser.add_argument('-F') parser.add_argument('-f') parser.add_argument('-i') parser.add_argument('-n') parser.add_argument('-s') parser.add_argument('-v') for v in ["80", "30", "20"]: try: os.environ['COLUMNS'] = v print("*** COLUMNS is %s ***" % os.environ.get('COLUMNS')) args = parser.parse_args() except: pass print "\n"
出力
*** COLUMNS is 80 *** usage: [-h] [-F F] [-f F] [-i I] [-n N] [-s S] [-v V] source-file output-file : error: too few arguments *** COLUMNS is 30 *** usage: [-h] [-F F] [-f F] [-i I] [-n N] [-s S] [-v V] source-file output-file : error: too few arguments *** COLUMNS is 20 *** usage: [-h] [-F F] [-f F] [-i I] [-n N] [-s S] [-v V] source-file output-file : error: too few arguments
なのでusageをテストで確認したいなんてときは、ケース内で環境変数COLUMNSを設定するか、usageから改行やスペースを除去した結果を確認とかにしないと、環境によっては結果が変わる可能性がありますね