def test_enabling_just_one_module_in_diretory( self, test_config_directory, ): enabling_statement = {'name': 'south_america::brazil'} directory_module = DirectoryModuleSource( enabling_statement=enabling_statement, modules_directory=test_config_directory / 'freezed_modules', ) assert directory_module.modules({}) == { 'south_america::brazil': { 'on_startup': { 'run': 'echo Greetings from Brazil!', }, }, } assert directory_module.context({}) == { 'geography': { 'brazil': { 'capitol': 'Brasilia', }, 'argentina': { 'capitol': 'Buenos Aires', }, }, }
def test_error_on_enabling_non_existent_module( self, test_config_directory, ): enabling_statement = {'name': 'north_america::colombia'} with pytest.raises(NonExistentEnabledModule): directory_module = DirectoryModuleSource( enabling_statement=enabling_statement, modules_directory=test_config_directory / 'freezed_modules', ) directory_module.modules({})
def test_retrieval_of_external_module_config(test_config_directory): external_module_source_config = {'name': 'burma::*'} external_module_source = DirectoryModuleSource( enabling_statement=external_module_source_config, modules_directory=test_config_directory / 'test_modules', ) assert external_module_source.modules({}) == { 'burma::burma': { 'enabled': True, 'safe': False, }, }
def test_checking_if_directory_modules_contain_module_name( self, test_config_directory, ): enabling_statement = {'name': 'south_america::brazil'} directory_module = DirectoryModuleSource( enabling_statement=enabling_statement, modules_directory=test_config_directory / 'freezed_modules', ) directory_module.modules({}) assert 'south_america::brazil' in directory_module assert 'south_america::argentina' not in directory_module assert 'brazil' not in directory_module assert 'argentina' not in directory_module
def test_recursive_module_directory( self, test_config_directory, ): enabling_statement = {'name': 'recursive/directory::bulgaria'} directory_module = DirectoryModuleSource( enabling_statement=enabling_statement, modules_directory=test_config_directory / 'test_modules', ) assert directory_module.modules({}) == { 'recursive/directory::bulgaria': { 'on_startup': { 'run': "echo 'Greetings from Bulgaria!'", }, }, }
def test_enabled_modules(test_config_directory): modules_config = GlobalModulesConfig( { 'modules_directory': 'test_modules', 'enabled_modules': [ { 'name': 'oslo::*', 'safe': True }, { 'name': 'trondheim::*' }, ], }, config_directory=test_config_directory) # Test that all ExternalModuleSource objects are created modules_directory_path = test_config_directory / 'test_modules' oslo_path = modules_directory_path / 'oslo' trondheim_path = modules_directory_path / 'trondheim' oslo = DirectoryModuleSource( enabling_statement={ 'name': 'oslo::*', 'trusted': True }, modules_directory=modules_directory_path, ) trondheim = DirectoryModuleSource( enabling_statement={ 'name': 'trondheim::*', 'trusted': False }, modules_directory=modules_directory_path, ) assert len(tuple(modules_config.external_module_sources)) == 2 assert oslo in tuple(modules_config.external_module_sources) assert trondheim in tuple(modules_config.external_module_sources) # Test that all module config files are correctly set assert oslo_path / 'config.yml' in modules_config.external_module_config_files assert trondheim_path / 'config.yml' in modules_config.external_module_config_files
def test_external_module(test_config_directory): modules_directory_path = test_config_directory / 'test_modules' oslo = DirectoryModuleSource( enabling_statement={'name': 'oslo::*'}, modules_directory=modules_directory_path, ) oslo_path = test_config_directory / 'test_modules' / 'oslo' assert oslo.directory == oslo_path assert oslo.trusted is True assert oslo.relative_directory_path == Path('oslo') assert oslo.modules_file == oslo_path / 'modules.yml'
def test_getting_config_dict_from_directory_module( self, test_config_directory, ): enabling_statement = {'name': 'north_america::USA'} directory_module = DirectoryModuleSource( enabling_statement=enabling_statement, modules_directory=test_config_directory / 'freezed_modules', ) assert directory_module.config({}) == { 'module/north_america::USA': { 'on_startup': { 'run': 'echo Greetings from the USA!', }, }, 'context/geography': { 'USA': { 'capitol': 'Washington D.C.', }, }, }
def test_which_enabling_statements_represents_directory_module_sources( self, ): assert DirectoryModuleSource.represented_by( module_name='category::name', ) assert DirectoryModuleSource.represented_by( module_name='category/recursive::name', ) assert DirectoryModuleSource.represented_by( module_name='category::*', ) assert DirectoryModuleSource.represented_by(module_name='*::*', ) assert not DirectoryModuleSource.represented_by( module_name='category::*not_valid', ) assert not DirectoryModuleSource.represented_by( module_name='category::not_valid*', ) assert not DirectoryModuleSource.represented_by(module_name='name', ) assert not DirectoryModuleSource.represented_by(module_name='*', )