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]
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, ]
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() }
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)