def test_generated_helps_equals_display_defaults(display_defaults): """ Text by classmethod and environ.generate_help equals with display_defaults """ assert environ.generate_help( AppConfig, display_defaults=display_defaults) == AppConfig.generate_help( display_defaults=display_defaults) assert environ.generate_help( ConfigRenamed, display_defaults=display_defaults) == ConfigRenamed.gen_help( display_defaults=display_defaults)
def test_generate_help_str_when_prefix_is_empty(self): """ Environment variables' names don't start with an underscore """ help_str = environ.generate_help(NoPrefix) assert (help_str == """A_VAR (Required): a_var, no default ANOTHER_VAR (Optional): another_var, has default _START_WITH_UNDERSCORE (Required): this starts with an underscore""")
def test_custom_formatter(self): """ Custom formatters can be passed and are used. """ def bad_formatter(help_dicts): return "Not a good formatter" help_str = environ.generate_help(Parent, formatter=bad_formatter) assert help_str == "Not a good formatter"
def start(): """Start the ledge webserver.""" # Get the config config = get_config() # --help if sys.argv[-1] == "--help": help_str = ( "Ledge and its associated plugins are controlled via " + "environmental variables.\nSee the below documentation for information " + "on how to configure this particular ledge instance.\n\n" + environ.generate_help(get_merged_conf_object(), display_defaults=True)) print(help_str) sys.exit(0) # Configure Logging structlog.configure( processors=[ structlog.processors.StackInfoRenderer(), structlog.twisted.EventAdapter(), ], context_class=dict, logger_factory=structlog.twisted.LoggerFactory(), wrapper_class=structlog.twisted.BoundLogger, cache_logger_on_first_use=True, ) # Start logging startLogging(sys.stderr) # Init ledge app = Ledge(config) # Configure twisted configure_site(app, port=config.port) # Configure threadpool if requested if config.thread_pool_size is not None: reactor.suggestThreadPoolSize(config.thread_pool_size) # Start it up! reactor.run()
def test_generate_help_str(self): """ A help string is generated for a config class. Presence of defaults are indicated but they are not shown. """ help_str = environ.generate_help(Parent) assert (help_str == """FOO_VAR1 (Required): var1, no default FOO_VAR2 (Optional): var2, has default FOO_VAR3 (Required): var3, bool_var, no default FOO_VAR4 (Optional): var4, bool_var, has default DOG (Optional): var5, named, has default CAT (Required): var6, named, no default FOO_CHILD_VAR7 (Required): var7, no default FOO_CHILD_VAR8 (Optional): var8, has default FOO_CHILD_VAR9 (Required): var9, bool_var, no default FOO_CHILD_VAR10 (Optional): var10, bool_var, has default DOG2 (Optional): var11, named, has default CAT2 (Required): var12, named, no default FOO_CHILD_VAR13 (Optional) FOO_CHILD_VAR14 (Required)""")
def test_generate_help_str_with_defaults(self): """ A help string is generated for a config class. display_defaults=True makes the defaults be shown. """ help_str = environ.generate_help(Parent, display_defaults=True) assert (help_str == """FOO_VAR1 (Required): var1, no default FOO_VAR2 (Optional, Default=bar): var2, has default FOO_VAR3 (Required): var3, bool_var, no default FOO_VAR4 (Optional, Default=True): var4, bool_var, has default DOG (Optional, Default=canine): var5, named, has default CAT (Required): var6, named, no default FOO_CHILD_VAR7 (Required): var7, no default FOO_CHILD_VAR8 (Optional, Default=bar): var8, has default FOO_CHILD_VAR9 (Required): var9, bool_var, no default FOO_CHILD_VAR10 (Optional, Default=True): var10, bool_var, has default DOG2 (Optional, Default=canine): var11, named, has default CAT2 (Required): var12, named, no default FOO_CHILD_VAR13 (Optional, Default=default) FOO_CHILD_VAR14 (Required)""")
def generate_help_fnc(cls, **kwargs): import environ return environ.generate_help(cls, **kwargs)
def test_generated_helps_equals(): """ Text by classmethod and environ.generate_help equals """ assert environ.generate_help(AppConfig) == AppConfig.generate_help() assert environ.generate_help(ConfigRenamed) == ConfigRenamed.gen_help()
def test_custom_formatter(self): def bad_formatter(help_dicts): return "Not a good formatter" help_str = environ.generate_help(Parent, formatter=bad_formatter) assert help_str == "Not a good formatter"