Ejemplo n.º 1
0
    def test_basic_iteration(self):
        key = Key()
        decl = Declaration()
        decl.annotate("Start")

        decl.declare(key.a)
        decl.declare(key.b)

        assert list(decl.iter_options()) == [key.a, key.b]
Ejemplo n.º 2
0
    def test_pattern_and_flag_iteration(self):
        key = Key()
        decl = Declaration()
        decl.annotate("Start")

        decl.declare(key.aloha)
        decl.declare(key.hello)
        decl.declare(key.hey).ignore()

        pattern = key.dynamic("anything")
        assert list(decl.iter_options(pattern=pattern)) == [
            key.aloha,
            key.hello,
        ]

        pattern = Pattern(key) + "he*"
        assert list(decl.iter_options(pattern=pattern)) == [key.hello]

        assert list(decl.iter_options(exclude=Flag(0))) == [
            key.aloha,
            key.hello,
            key.hey,
        ]
Ejemplo n.º 3
0
def config_defaults_from_declaration():
    from ckan.config.declaration import Declaration
    decl = Declaration()
    decl.load_core_declaration()
    decl.load_plugin("datastore")
    decl.load_plugin("datapusher")
    decl.load_plugin("resource_proxy")
    decl.load_plugin("text_view")
    decl.load_plugin("image_view")
    decl.load_plugin("recline_view")
    decl.load_plugin("datatables_view")

    return {
        f"config:{k}": "``{}``".format(
            repr(decl[k].default) if decl[k].has_default() else None)
        for k in decl.iter_options()
    }
Ejemplo n.º 4
0
    def test_setup(self, ckan_config):
        decl = Declaration()
        decl.setup()

        # setup seals declaration
        with pytest.raises(TypeError):
            decl.annotate("hello")

        # core declarations loaded
        assert Key().ckan.site_url in decl

        # no safe-mode by default
        missing = set(decl.iter_options()) - set(ckan_config)
        assert Key().api_token.jwt.algorithm in missing

        # no normalization by default
        assert isinstance(ckan_config["debug"], str)