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)
Exemplo n.º 2
0
    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""")
Exemplo n.º 3
0
    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"
Exemplo n.º 4
0
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()
Exemplo n.º 5
0
    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)""")
Exemplo n.º 6
0
    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)""")
Exemplo n.º 7
0
        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()
Exemplo n.º 9
0
    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"