def test_load_config(self): config = {'group1': {'a': 'b'}} mock_component_1 = mock.Mock() mock_component_1.config = { 'group1': { 'a': 'c', 'k': 'v' }, 'group2': { '1': '2' } } n = Nulecule('some-id', '0.0.2', {}, [], 'some/path') n.components = [mock_component_1] n.load_config(config) self.assertEqual(n.config, { 'group1': { 'a': 'b', 'k': 'v' }, 'group2': { '1': '2' } })
def test_load_config_with_default_provider(self): """ Test Nulecule load_config with a default provider. """ config = Config(answers={}) params = [{ "name": "key1", "default": "val1", }, { "name": "key3", "default": "val3" }, { "name": "provider", "default": "docker" }] graph = [{ "name": "component1", "params": [{ "name": "key1", }, { "name": "key2", "default": "val2" }], "artifacts": [] }] n = Nulecule(id='some-id', specversion='0.0.2', metadata={}, graph=graph, params=params, basepath='some/path', config=config) n.load_components() n.load_config(config) self.assertEqual( n.config.runtime_answers(), { 'general': { 'namespace': 'default', 'provider': 'docker', 'key1': 'val1', 'key3': 'val3' }, 'component1': { 'key2': 'val2' } }) self.assertEqual( n.components[0].config.context(scope=n.components[0].namespace), { 'key3': 'val3', 'key2': 'val2', 'key1': 'val1', 'provider': 'docker', 'namespace': 'default' })
def test_load_config_without_default_provider(self): """ Test Nulecule load_config without specifying a default provider. """ config = Config() params = [ { "name": "key1", "default": "val1", }, { "name": "key3", "default": "val3" } ] graph = [ { "name": "component1", "params": [ { "name": "key1", }, { "name": "key2", "default": "val2" } ], "artifacts": [] } ] n = Nulecule(id='some-id', specversion='0.0.2', metadata={}, graph=graph, params=params, basepath='some/path', config=config) n.load_components() n.load_config() self.assertEqual(n.config.runtime_answers(), { 'general': { 'namespace': 'default', 'provider': 'kubernetes', 'key1': 'val1', 'key3': 'val3' }, 'component1': { 'key2': 'val2' } }) self.assertEqual( n.components[0].config.context(n.components[0].namespace), {'key3': 'val3', 'key2': 'val2', 'key1': 'val1', 'namespace': 'default', 'provider': 'kubernetes'} )
def test_load_config_with_defaultprovider_overridden_by_provider_in_answers( self): """ Test Nulecule load_config with default provider specified in global params in Nulecule spec, but overridden in answers config. """ config = { 'general': { 'provider': 'new-provider' }, 'group1': { 'a': 'b' } } mock_component_1 = mock.Mock() mock_component_1.config = { 'group1': { 'a': 'c', 'k': 'v' }, 'group2': { '1': '2' } } n = Nulecule(id='some-id', specversion='0.0.2', metadata={}, graph=[], basepath='some/path', params=[{ 'name': 'provider', 'default': 'some-provider' }]) n.components = [mock_component_1] n.load_config(config) self.assertEqual( n.config, { 'general': { 'provider': 'new-provider' }, 'group1': { 'a': 'b', 'k': 'v' }, 'group2': { '1': '2' } })
def test_load_config_without_specified_provider(self): """ Test Nulecule load_config without specifying a provider. """ config = {"general": {}, "group1": {"a": "b"}} mock_component_1 = mock.Mock() mock_component_1.config = {"group1": {"a": "c", "k": "v"}, "group2": {"1": "2"}} n = Nulecule(id="some-id", specversion="0.0.2", metadata={}, graph=[], basepath="some/path") n.components = [mock_component_1] n.load_config(config) self.assertEqual( n.config, {"general": {"provider": "kubernetes"}, "group1": {"a": "b", "k": "v"}, "group2": {"1": "2"}} )
def test_load_config(self): config = {'group1': {'a': 'b'}} mock_component_1 = mock.Mock() mock_component_1.config = { 'group1': {'a': 'c', 'k': 'v'}, 'group2': {'1': '2'} } n = Nulecule('some-id', '0.0.2', {}, [], 'some/path') n.components = [mock_component_1] n.load_config(config) self.assertEqual(n.config, { 'group1': {'a': 'b', 'k': 'v'}, 'group2': {'1': '2'} })
def test_load_config_without_specified_provider(self): """ Test Nulecule load_config without specifying a provider. """ config = {'general': {}, 'group1': {'a': 'b'}} mock_component_1 = mock.Mock() mock_component_1.config = { 'group1': {'a': 'c', 'k': 'v'}, 'group2': {'1': '2'} } n = Nulecule(id='some-id', specversion='0.0.2', metadata={}, graph=[], basepath='some/path') n.components = [mock_component_1] n.load_config(config) self.assertEqual(n.config, { 'general': {'provider': 'kubernetes'}, 'group1': {'a': 'b', 'k': 'v'}, 'group2': {'1': '2'} })
def test_load_config_with_defaultprovider_overridden_by_provider_in_answers(self): """ Test Nulecule load_config with default provider specified in global params in Nulecule spec, but overridden in answers config. """ config = {"general": {"provider": "new-provider"}, "group1": {"a": "b"}} mock_component_1 = mock.Mock() mock_component_1.config = {"group1": {"a": "c", "k": "v"}, "group2": {"1": "2"}} n = Nulecule( id="some-id", specversion="0.0.2", metadata={}, graph=[], basepath="some/path", params=[{"name": "provider", "default": "some-provider"}], ) n.components = [mock_component_1] n.load_config(config) self.assertEqual( n.config, {"general": {"provider": "new-provider"}, "group1": {"a": "b", "k": "v"}, "group2": {"1": "2"}} )
def test_load_config_with_defaultprovider(self): """ Test Nulecule load_config with default provider specified in global params in Nulecule spec. """ config = {'general': {}, 'group1': {'a': 'b'}} mock_component_1 = mock.Mock() mock_component_1.config = { 'group1': {'a': 'c', 'k': 'v'}, 'group2': {'1': '2'} } n = Nulecule(id='some-id', specversion='0.0.2', metadata={}, graph=[], basepath='some/path', params=[{'name': 'provider', 'default': 'some-provider'}]) n.components = [mock_component_1] n.load_config(config) self.assertEqual(n.config, { 'general': {'provider': 'some-provider'}, 'group1': {'a': 'b', 'k': 'v'}, 'group2': {'1': '2'} })
def test_load_config_without_specified_provider(self): """ Test Nulecule load_config without specifying a provider. """ config = {'general': {}, 'group1': {'a': 'b'}} mock_component_1 = mock.Mock() mock_component_1.config = { 'group1': { 'a': 'c', 'k': 'v' }, 'group2': { '1': '2' } } n = Nulecule(id='some-id', specversion='0.0.2', metadata={}, graph=[], basepath='some/path') n.components = [mock_component_1] n.load_config(config) self.assertEqual( n.config, { 'general': { 'provider': 'kubernetes' }, 'group1': { 'a': 'b', 'k': 'v' }, 'group2': { '1': '2' } })
def test_load_config_with_default_provider_overridden_by_answers(self): """ Test Nulecule load_config with default provider overridden by provider in answers. """ config = Config(answers={ 'general': { 'provider': 'openshift' } }) params = [ { "name": "key1", "default": "val1", }, { "name": "key3", "default": "val3" }, { "name": "provider", "default": "docker" } ] graph = [ { "name": "component1", "params": [ { "name": "key1", }, { "name": "key2", "default": "val2" } ], "artifacts": [] } ] n = Nulecule(id='some-id', specversion='0.0.2', metadata={}, graph=graph, params=params, basepath='some/path', config=config) n.load_components() n.load_config(config) self.assertEqual(n.config.runtime_answers(), { 'general': { 'namespace': 'default', 'provider': 'openshift', 'key1': 'val1', 'key3': 'val3' }, 'component1': { 'key2': 'val2' } }) self.assertEqual( n.components[0].config.context(n.components[0].namespace), {'key3': 'val3', 'key2': 'val2', 'key1': 'val1', 'namespace': 'default', 'provider': 'openshift'} )