Exemplo n.º 1
0
    def test_success_with_configuration(self):
        http_method = self.respond_with(200, self.default_response)
        stdout = MagicMock()
        openMock = MagicMock(return_value=1)

        tmpdir, config_file = create_temp_bundle_with_contents(
            {'config.sh': 'echo configuring'})

        with patch('requests.post',
                   http_method), patch('sys.stdout',
                                       stdout), patch('builtins.open',
                                                      openMock):
            args = self.default_args.copy()
            args.update({'configuration': config_file})
            conduct_load.load(MagicMock(**args))

        self.assertEqual(
            openMock.call_args_list,
            [call(self.bundle_file, 'rb'),
             call(config_file, 'rb')])

        http_method.assert_called_with(self.default_url,
                                       files=self.default_files +
                                       [('configuration', 1)])

        self.assertEqual(self.default_output(), self.output(stdout))
Exemplo n.º 2
0
    def test_failure_no_configuration(self):
        stderr = MagicMock()

        with patch('sys.stderr', stderr):
            args = self.default_args.copy()
            args.update({'configuration': 'no_such.conf'})
            conduct_load.load(MagicMock(**args))

        self.assertEqual(
            strip_margin("""|ERROR: File not found: no_such.conf
                            |"""), self.output(stderr))
Exemplo n.º 3
0
    def test_success(self):
        http_method = self.respond_with(200, self.default_response)
        stdout = MagicMock()
        openMock = MagicMock(return_value=1)

        with patch('requests.post',
                   http_method), patch('sys.stdout',
                                       stdout), patch('builtins.open',
                                                      openMock):
            conduct_load.load(MagicMock(**self.default_args))

        openMock.assert_called_with(self.bundle_file, 'rb')
        http_method.assert_called_with(self.default_url,
                                       files=self.default_files)

        self.assertEqual(self.default_output(), self.output(stdout))
Exemplo n.º 4
0
    def test_failure(self):
        http_method = self.respond_with(404)
        stderr = MagicMock()
        openMock = MagicMock(return_value=1)

        with patch('requests.post',
                   http_method), patch('sys.stderr',
                                       stderr), patch('builtins.open',
                                                      openMock):
            conduct_load.load(MagicMock(**self.default_args))

        openMock.assert_called_with(self.bundle_file, 'rb')
        http_method.assert_called_with(self.default_url,
                                       files=self.default_files)

        self.assertEqual(
            strip_margin("""|ERROR: 404 Not Found
                            |"""), self.output(stderr))
Exemplo n.º 5
0
    def test_failure_invalid_address(self):
        http_method = self.raise_connection_error('test reason')
        stderr = MagicMock()
        openMock = MagicMock(return_value=1)

        with patch('requests.post',
                   http_method), patch('sys.stderr',
                                       stderr), patch('builtins.open',
                                                      openMock):
            conduct_load.load(MagicMock(**self.default_args))

        openMock.assert_called_with(self.bundle_file, 'rb')
        http_method.assert_called_with(self.default_url,
                                       files=self.default_files)

        self.assertEqual(
            self.default_connection_error.format(self.default_args['ip'],
                                                 self.default_args['port']),
            self.output(stderr))
Exemplo n.º 6
0
    def test_success_with_system(self):
        http_method = self.respond_with(200, self.default_response)
        stdout = MagicMock()
        openMock = MagicMock(return_value=1)

        with patch('requests.post',
                   http_method), patch('sys.stdout',
                                       stdout), patch('builtins.open',
                                                      openMock):
            args = self.default_args.copy()
            args.update({'system': 'test-system'})
            conduct_load.load(MagicMock(**args))

        openMock.assert_called_with(self.bundle_file, 'rb')
        http_method.assert_called_with(
            self.default_url,
            files=[(file, value if file != 'system' else 'test-system')
                   for file, value in self.default_files])

        self.assertEqual(self.default_output(), self.output(stdout))
Exemplo n.º 7
0
    def test_success_custom_ip_port(self):
        http_method = self.respond_with(200, self.default_response)
        stdout = MagicMock()
        openMock = MagicMock(return_value=1)

        cli_parameters = ' --ip 127.0.1.1 --port 9006'
        with patch('requests.post',
                   http_method), patch('sys.stdout',
                                       stdout), patch('builtins.open',
                                                      openMock):
            args = self.default_args.copy()
            args.update({'cli_parameters': cli_parameters})
            conduct_load.load(MagicMock(**args))

        openMock.assert_called_with(self.bundle_file, 'rb')
        http_method.assert_called_with(self.default_url,
                                       files=self.default_files)

        self.assertEqual(self.default_output(params=cli_parameters),
                         self.output(stdout))
Exemplo n.º 8
0
    def test_success_long_ids(self):
        http_method = self.respond_with(200, self.default_response)
        stdout = MagicMock()
        openMock = MagicMock(return_value=1)

        with patch('requests.post',
                   http_method), patch('sys.stdout',
                                       stdout), patch('builtins.open',
                                                      openMock):
            args = self.default_args.copy()
            args.update({'long_ids': True})
            conduct_load.load(MagicMock(**args))

        openMock.assert_called_with(self.bundle_file, 'rb')
        http_method.assert_called_with(self.default_url,
                                       files=self.default_files)

        self.assertEqual(
            self.default_output(bundle_id='45e0c477d3e5ea92aa8d85c0d8f3e25c'),
            self.output(stdout))
Exemplo n.º 9
0
    def test_failure_no_roles(self):
        stderr = MagicMock()

        tmpdir, bundle_file = create_temp_bundle(
            strip_margin("""|nrOfCpus   = {}
                            |memory     = {}
                            |diskSpace  = {}
                            |""").format(self.nr_of_cpus, self.memory,
                                         self.disk_space))

        with patch('sys.stderr', stderr):
            args = self.default_args.copy()
            args.update({'bundle': bundle_file})
            conduct_load.load(MagicMock(**args))

        self.assertEqual(
            strip_margin("""|ERROR: Unable to parse bundle.conf.
                            |ERROR: No configuration setting found for key roles.
                            |"""), self.output(stderr))

        shutil.rmtree(tmpdir)
Exemplo n.º 10
0
    def test_failure_roles_not_a_list(self):
        stderr = MagicMock()

        tmpdir, bundle_file = create_temp_bundle(
            strip_margin("""|nrOfCpus   = {}
                            |memory     = {}
                            |diskSpace  = {}
                            |roles      = {}
                            |""").format(self.nr_of_cpus, self.memory,
                                         self.disk_space,
                                         '-'.join(self.roles)))

        with patch('sys.stderr', stderr):
            args = self.default_args.copy()
            args.update({'bundle': bundle_file})
            conduct_load.load(MagicMock(**args))

        self.assertEqual(
            strip_margin("""|ERROR: Unable to parse bundle.conf.
                            |ERROR: roles has type 'str' rather than 'list'.
                            |"""), self.output(stderr))

        shutil.rmtree(tmpdir)