コード例 #1
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
    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
コード例 #2
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
    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)
コード例 #3
0
ファイル: test_client.py プロジェクト: sc7565/reckoner
 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('')
コード例 #4
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
 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
コード例 #5
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
    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
コード例 #6
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
    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)
コード例 #7
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
    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'
コード例 #8
0
ファイル: test_client.py プロジェクト: sc7565/reckoner
    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()
コード例 #9
0
ファイル: test_client.py プロジェクト: sc7565/reckoner
 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()
コード例 #10
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
    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)
コード例 #11
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
    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
コード例 #12
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
    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
コード例 #13
0
ファイル: test_client.py プロジェクト: sc7565/reckoner
    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"])
コード例 #14
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
 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
コード例 #15
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
 def test_default_helm_arguments(self):
     helm_client = HelmClient(provider=self.dummy_provider)
     assert hasattr(helm_client, 'default_helm_arguments')
コード例 #16
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
 def test_rollback(self):
     with self.assertRaises(NotImplementedError):
         HelmClient(provider=self.dummy_provider).rollback('broken')
コード例 #17
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
 def test_repo_update(self):
     HelmClient(provider=self.dummy_provider).repo_update()
     self.dummy_provider.execute.assert_called_once
コード例 #18
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
 def test_dependency_update(self):
     HelmClient(
         provider=self.dummy_provider).dependency_update('chart_path')
     self.dummy_provider.execute.assert_called_once
コード例 #19
0
ファイル: test_client.py プロジェクト: tashirj/reckoner
 def test_repo_add(self):
     HelmClient(provider=self.dummy_provider).repo_add('new', 'url')
     self.dummy_provider.execute.assert_called_once
コード例 #20
0
 def test_dependency_update(self):
     with self.assertRaises(NotImplementedError):
         HelmClient(provider=self.dummy_provider).dependency_update('')