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))
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))
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))
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))
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))
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))
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))
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))
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)
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)