def test_repositories(self): repositories_string = """NAME URL stable https://kubernetes-charts.storage.googleapis.com local http://127.0.0.1:8879/charts test_repo https://kubernetes-charts.storage.googleapis.com incubator https://kubernetes-charts-incubator.storage.googleapis.com""" repositories_expected = ['stable', 'local', 'test_repo', 'incubator'] self.dummy_provider.execute.return_value = HelmCmdResponse( 0, '', repositories_string, '', ) assert HelmClient( provider=self.dummy_provider).repositories == repositories_expected repositories_string_extra_lines = """ NAME URL stable https://kubernetes-charts.storage.googleapis.com local http://127.0.0.1:8879/charts test_repo https://kubernetes-charts.storage.googleapis.com incubator https://kubernetes-charts-incubator.storage.googleapis.com """ self.dummy_provider.execute.return_value = HelmCmdResponse( 0, '', repositories_string_extra_lines, '') assert HelmClient( provider=self.dummy_provider).repositories == repositories_expected
def test_verify_default_helm_args_intantiate(self): # Should support instantiate with None assert HelmClient(provider=self.dummy_provider, default_helm_arguments=None) # Should raise errors on all other non iterators for invalid in [str('invalid'), 1, 0.01, True]: with self.assertRaises(ValueError): HelmClient(default_helm_arguments=invalid)
def test_get_version(self): with self.assertRaises(HelmClientException): provider_mock = mock.Mock(autospec=HelmProvider) provider_mock.execute.side_effect = [ HelmCmdResponse(1, '', '', None), HelmCmdResponse(0, '', 'v3.0.0-alpha.2+g00000', None), ] client = HelmClient(provider=provider_mock) client._get_version('')
def test_check_helm_command(self): self.dummy_provider.execute.side_effect = [ HelmCmdResponse(0, None, None, None), HelmCmdResponse(127, None, None, None) ] assert HelmClient( provider=self.dummy_provider).check_helm_command() == True with self.assertRaises(HelmClientException) as e: assert HelmClient( provider=self.dummy_provider).check_helm_command() == False
def test_execute_with_default_helm_arguments(self): expected_params = ['--some params', '--found'] helm_client = HelmClient(provider=self.dummy_provider) helm_client.default_helm_arguments = expected_params helm_client.execute('help') self.dummy_provider.execute.assert_called_once assert isinstance(self.dummy_provider.execute.call_args[0][0], HelmCommand) assert self.dummy_provider.execute.call_args[0][ 0].arguments == expected_params
def test_versions_raise_errors(self): self.dummy_provider.execute.return_value = HelmCmdResponse( 0, '', 'invalid', '') for versions in ['client_version', 'server_version']: with self.assertRaises(HelmClientException): getattr(HelmClient(provider=self.dummy_provider), versions)
def test_upgrade(self): self.dummy_provider.execute.side_effect = [ HelmCmdResponse(0, '', 'pass', HelmCommand('install', ['--install'])), HelmCmdResponse(0, '', 'pass', HelmCommand('install', [])) ] with_install = HelmClient(provider=self.dummy_provider).upgrade( [], install=True) without_install = HelmClient(provider=self.dummy_provider).upgrade( [], install=False) assert with_install.command.arguments == ['--install'] assert without_install.command.command == 'install' assert with_install.command.arguments == ['--install'] assert without_install.command.command == 'install'
def test_upgrade(self): HelmClient(provider=self.dummy_provider).upgrade([], install=True) self.dummy_provider.execute.called_once() self.assertEqual(self.dummy_provider.execute.call_args[0][0].command, "upgrade") self.assertEqual(self.dummy_provider.execute.call_args[0][0].arguments, ["--install"]) self.dummy_provider.reset_mock() HelmClient(provider=self.dummy_provider).upgrade([], install=False) self.dummy_provider.execute.called_once() self.assertEqual(self.dummy_provider.execute.call_args[0][0].command, "upgrade") self.assertEqual(self.dummy_provider.execute.call_args[0][0].arguments, []) self.dummy_provider.reset_mock()
def test_default_upgrade_calls_install_flag(self): HelmClient(provider=self.dummy_provider).upgrade([]) self.dummy_provider.execute.called_once() self.assertEqual(self.dummy_provider.execute.call_args[0][0].command, "upgrade") self.assertEqual(self.dummy_provider.execute.call_args[0][0].arguments, ["--install"]) self.dummy_provider.reset_mock()
def test_public_methods(self): helm_client = HelmClient(provider=self.dummy_provider) methods = [ 'execute', 'check_helm_command', 'upgrade', ] for method in methods: assert hasattr(helm_client, method)
def test_version_regex(self): invalid = [ 'not valid', 'Client:v0.0.0+asdf', '938: v0.0.0+g9ada0993' ': v0.010.0', ] valid = [ ('Client: v0.0.0+gaaffed92', '0.0.0'), ('Server: v0.0.1+g81749d0', '0.0.1'), ('Client: v100.100.1000+g928472', '100.100.1000'), ] for stdout in invalid: assert HelmClient( provider=self.dummy_provider)._find_version(stdout) == None for stdout, expected in valid: assert HelmClient( provider=self.dummy_provider)._find_version(stdout) == expected
def test_execute_with_additional_parameters(self): default_params = ['--some params'] adhoc_params = ['--some more'] expected_params = default_params + adhoc_params HelmClient(default_helm_arguments=default_params, provider=self.dummy_provider).execute( 'version', adhoc_params) assert self.dummy_provider.execute.call_args[0][ 0].arguments == expected_params
def test_upgrade_with_plugin(self): plugin_name = 'some-plugin' HelmClient(provider=self.dummy_provider).upgrade([], install=True, plugin=plugin_name) self.dummy_provider.execute.assert_called_once() self.assertEqual(self.dummy_provider.execute.call_args[0][0].command, plugin_name) self.assertEqual(self.dummy_provider.execute.call_args[0][0].arguments, ["upgrade", "--install"]) self.dummy_provider.reset_mock() HelmClient(provider=self.dummy_provider).upgrade([], install=False, plugin=plugin_name) self.dummy_provider.execute.assert_called_once() self.assertEqual(self.dummy_provider.execute.call_args[0][0].command, plugin_name) self.assertEqual(self.dummy_provider.execute.call_args[0][0].arguments, ["upgrade"])
def test_client_version(self): self.dummy_provider.execute.return_value = HelmCmdResponse( 0, '', 'Client: v0.0.0+gabcdef01234', '') assert '0.0.0' == HelmClient( provider=self.dummy_provider).client_version
def test_default_helm_arguments(self): helm_client = HelmClient(provider=self.dummy_provider) assert hasattr(helm_client, 'default_helm_arguments')
def test_rollback(self): with self.assertRaises(NotImplementedError): HelmClient(provider=self.dummy_provider).rollback('broken')
def test_repo_update(self): HelmClient(provider=self.dummy_provider).repo_update() self.dummy_provider.execute.assert_called_once
def test_dependency_update(self): HelmClient( provider=self.dummy_provider).dependency_update('chart_path') self.dummy_provider.execute.assert_called_once
def test_repo_add(self): HelmClient(provider=self.dummy_provider).repo_add('new', 'url') self.dummy_provider.execute.assert_called_once
def test_dependency_update(self): with self.assertRaises(NotImplementedError): HelmClient(provider=self.dummy_provider).dependency_update('')