def test_success(self): http_method = self.respond_with(200, self.default_response) stdout = MagicMock() with patch('requests.put', http_method), patch('sys.stdout', stdout): conduct_run.run(MagicMock(**self.default_args)) http_method.assert_called_with(self.default_url) self.assertEqual(self.default_output(), self.output(stdout))
def test_success_verbose(self): http_method = self.respond_with(200, self.default_response) stdout = MagicMock() with patch('requests.put', http_method), patch('sys.stdout', stdout): args = self.default_args.copy() args.update({'verbose': True}) conduct_run.run(MagicMock(**args)) http_method.assert_called_with(self.default_url) self.assertEqual(self.default_response + self.default_output(), self.output(stdout))
def test_success_long_ids(self): http_method = self.respond_with(200, self.default_response) stdout = MagicMock() with patch('requests.put', http_method), patch('sys.stdout', stdout): args = self.default_args.copy() args.update({'long_ids': True}) conduct_run.run(MagicMock(**args)) http_method.assert_called_with(self.default_url) self.assertEqual(self.default_output(bundle_id='45e0c477d3e5ea92aa8d85c0d8f3e25c'), self.output(stdout))
def test_failure_invalid_address(self): http_method = self.raise_connection_error('test reason', self.default_url) stderr = MagicMock() with patch('requests.put', http_method), patch('sys.stderr', stderr): conduct_run.run(MagicMock(**self.default_args)) http_method.assert_called_with(self.default_url) self.assertEqual( self.default_connection_error.format(self.default_url), self.output(stderr))
def test_failure(self): http_method = self.respond_with(404) stderr = MagicMock() with patch('requests.put', http_method), patch('sys.stderr', stderr): conduct_run.run(MagicMock(**self.default_args)) http_method.assert_called_with(self.default_url) self.assertEqual( strip_margin("""|ERROR: 404 Not Found |"""), self.output(stderr))
def test_success_with_configuration(self): http_method = self.respond_with(200, self.default_response) stdout = MagicMock() cli_parameters = ' --ip 127.0.1.1 --port 9006' with patch('requests.put', http_method), patch('sys.stdout', stdout): args = self.default_args.copy() args.update({'cli_parameters': cli_parameters}) conduct_run.run(MagicMock(**args)) http_method.assert_called_with(self.default_url) self.assertEqual( self.default_output(params=cli_parameters), self.output(stdout))
def test_success_with_affinity(self): args = { 'ip': '127.0.0.1', 'port': 9005, 'api_version': '2', 'verbose': False, 'quiet': False, 'no_wait': False, 'long_ids': False, 'cli_parameters': '', 'bundle': self.bundle_id, 'scale': self.scale, 'affinity': 'other-bundle' } expected_url = \ 'http://127.0.0.1:9005/v2/bundles/45e0c477d3e5ea92aa8d85c0d8f3e25c?scale=3&affinity=other-bundle' http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) http_method.assert_called_with(expected_url) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, input_args) self.assertEqual(self.default_output(), self.output(stdout))
def base_test_success_long_ids(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() args = self.default_args.copy() args.update({'long_ids': True}) input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, headers=self.mock_headers) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, input_args) self.assertEqual( self.default_output(bundle_id='45e0c477d3e5ea92aa8d85c0d8f3e25c'), self.output(stdout))
def base_test_success_with_configuration(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() args = self.default_args.copy() cli_parameters = ' --ip 127.0.1.1 --port 9006' args.update({'cli_parameters': cli_parameters}) input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, headers=self.mock_headers) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, input_args) self.assertEqual( self.default_output(params=cli_parameters), self.output(stdout))
def base_test_success_with_custom_host_port(self): http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() args = self.default_args.copy() cli_parameters = ' --host 127.0.1.1 --port 9006' args.update({'cli_parameters': cli_parameters}) input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, auth=self.conductr_auth, verify=self.server_verification_file, headers={'Host': '127.0.0.1'}) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, wait_for_is_active=True, args=input_args) self.assertEqual(self.default_output(params=cli_parameters), self.output(stdout))
def base_test_failure_scale_timeout(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock( side_effect=WaitTimeoutError('test wait timeout error')) stderr = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.put', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, err_output=stderr) result = conduct_run.run(input_args) self.assertFalse(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, headers=self.mock_headers) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, input_args) self.assertEqual( as_error( strip_margin("""|Error: Timed out: test wait timeout error |""")), self.output(stderr))
def base_test_success_long_ids(self): http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() args = self.default_args.copy() args.update({'long_ids': True}) input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, auth=self.conductr_auth, verify=self.server_verification_file, headers={'Host': '127.0.0.1'}) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, wait_for_is_active=True, args=input_args) self.assertEqual( self.default_output(bundle_id='45e0c477d3e5ea92aa8d85c0d8f3e25c'), self.output(stdout))
def base_test_failure_scale_timeout(self): http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock( side_effect=WaitTimeoutError('test wait timeout error')) stderr = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.put', http_method), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, err_output=stderr) result = conduct_run.run(input_args) self.assertFalse(result) http_method.assert_called_with(self.default_url, auth=self.conductr_auth, verify=self.server_verification_file, headers={'Host': '127.0.0.1'}) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, wait_for_is_active=True, args=input_args) self.assertEqual( as_error( strip_margin("""|Error: Timed out: test wait timeout error |""")), self.output(stderr))
def test_error_with_affinity_switch(self): args = { 'host': '127.0.0.1', 'port': 9005, 'api_version': '1', 'verbose': False, 'no_wait': False, 'long_ids': False, 'cli_parameters': '', 'bundle': self.bundle_id, 'scale': self.scale, 'affinity': 'other-bundle' } stderr = MagicMock() logging_setup.configure_logging(MagicMock(**args), err_output=stderr) result = conduct_run.run(MagicMock(**args)) self.assertFalse(result) self.assertEqual( as_error( strip_margin( """|Error: Affinity feature is only available for v1.1 onwards of ConductR |""")), self.output(stderr))
def base_test_success_with_configuration(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() args = self.default_args.copy() cli_parameters = ' --ip 127.0.1.1 --port 9006' args.update({'cli_parameters': cli_parameters}) input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, headers=self.mock_headers) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, input_args) self.assertEqual(self.default_output(params=cli_parameters), self.output(stdout))
def base_test_failure_invalid_address(self): http_method = self.raise_connection_error('test reason', self.default_url) stderr = MagicMock() with patch('requests.put', http_method): logging_setup.configure_logging(MagicMock(**self.default_args), err_output=stderr) result = conduct_run.run(MagicMock(**self.default_args)) self.assertFalse(result) http_method.assert_called_with(self.default_url) self.assertEqual( self.default_connection_error.format(self.default_url), self.output(stderr))
def base_test_failure(self): http_method = self.respond_with(404) stderr = MagicMock() with patch('requests.put', http_method): logging_setup.configure_logging(MagicMock(**self.default_args), err_output=stderr) result = conduct_run.run(MagicMock(**self.default_args)) self.assertFalse(result) http_method.assert_called_with(self.default_url) self.assertEqual( as_error(strip_margin("""|Error: 404 Not Found |""")), self.output(stderr))
def base_test_failure_invalid_address(self): http_method = self.raise_connection_error('test reason', self.default_url) stderr = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.put', http_method): logging_setup.configure_logging(input_args, err_output=stderr) result = conduct_run.run(input_args) self.assertFalse(result) http_method.assert_called_with(self.default_url, auth=self.conductr_auth, verify=self.server_verification_file, headers={'Host': '127.0.0.1'}) self.assertEqual( self.default_connection_error.format(self.default_url), self.output(stderr))
def base_test_success_no_wait(self): http_method = self.respond_with(200, self.default_response) stdout = MagicMock() args = self.default_args.copy() args.update({'no_wait': True}) input_args = MagicMock(**args) with patch('requests.put', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url) self.assertEqual(self.default_output(), self.output(stdout))
def test_success_with_affinity(self): args = { 'dcos_mode': False, 'command': 'conduct', 'scheme': 'http', 'host': '127.0.0.1', 'port': 9005, 'base_path': '/', 'api_version': '2', 'disable_instructions': False, 'verbose': False, 'quiet': False, 'no_wait': False, 'long_ids': False, 'cli_parameters': '', 'bundle': self.bundle_id, 'scale': self.scale, 'affinity': 'other-bundle', 'conductr_auth': self.conductr_auth, 'server_verification_file': self.server_verification_file } expected_url = \ 'http://127.0.0.1:9005/v2/bundles/45e0c477d3e5ea92aa8d85c0d8f3e25c?scale=3&affinity=other-bundle' http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) http_method.assert_called_with(expected_url, auth=self.conductr_auth, verify=self.server_verification_file, headers={'Host': '127.0.0.1'}) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, wait_for_is_active=True, args=input_args) self.assertEqual(self.default_output(), self.output(stdout))
def base_test_failure(self): http_method = self.respond_with(404) stderr = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.put', http_method): logging_setup.configure_logging(input_args, err_output=stderr) result = conduct_run.run(input_args) self.assertFalse(result) http_method.assert_called_with(self.default_url, auth=self.conductr_auth, verify=self.server_verification_file, headers={'Host': '127.0.0.1'}) self.assertEqual( as_error(strip_margin("""|Error: 404 Not Found |""")), self.output(stderr))
def base_test_success_no_wait(self): http_method = self.respond_with(200, self.default_response) stdout = MagicMock() args = self.default_args.copy() args.update({'no_wait': True}) input_args = MagicMock(**args) with patch('requests.put', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, auth=self.conductr_auth, verify=self.server_verification_file, headers={'Host': '127.0.0.1'}) self.assertEqual(self.default_output(), self.output(stdout))
def base_test_success(self): http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.put', http_method), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, input_args) self.assertEqual(self.default_output(), self.output(stdout))
def base_test_failure_invalid_address(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.raise_connection_error('test reason', self.default_url) stderr = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.put', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, err_output=stderr) result = conduct_run.run(input_args) self.assertFalse(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, headers=self.mock_headers) self.assertEqual( self.default_connection_error.format(self.default_url), self.output(stderr))
def base_test_failure(self): http_method = self.respond_with(404) stderr = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.put', http_method): logging_setup.configure_logging(input_args, err_output=stderr) result = conduct_run.run(input_args) self.assertFalse(result) http_method.assert_called_with(self.default_url, auth=self.conductr_auth, verify=self.server_verification_file, headers={'Host': '127.0.0.1'}) self.assertEqual( as_error( strip_margin("""|Error: 404 Not Found |""")), self.output(stderr))
def base_test_success_long_ids(self): http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() args = self.default_args.copy() args.update({'long_ids': True}) input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, input_args) self.assertEqual(self.default_output(bundle_id='45e0c477d3e5ea92aa8d85c0d8f3e25c'), self.output(stdout))
def base_test_failure(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with(404) stderr = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.put', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, err_output=stderr) result = conduct_run.run(input_args) self.assertFalse(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, headers=self.mock_headers) self.assertEqual( as_error(strip_margin("""|Error: 404 Not Found |""")), self.output(stderr))
def base_test_success_no_wait(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with(200, self.default_response) stdout = MagicMock() args = self.default_args.copy() args.update({'no_wait': True}) input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, headers=self.mock_headers) self.assertEqual(self.default_output(), self.output(stdout))
def base_test_failure(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with(404) stderr = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.put', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, err_output=stderr) result = conduct_run.run(input_args) self.assertFalse(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, headers=self.mock_headers) self.assertEqual( as_error( strip_margin("""|Error: 404 Not Found |""")), self.output(stderr))
def base_test_failure_scale_timeout(self): http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock(side_effect=WaitTimeoutError('test wait timeout error')) stderr = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.put', http_method), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, err_output=stderr) result = conduct_run.run(input_args) self.assertFalse(result) http_method.assert_called_with(self.default_url) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, input_args) self.assertEqual( as_error(strip_margin("""|Error: Timed out: test wait timeout error |""")), self.output(stderr))
def base_test_success_with_custom_ip_port(self): http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() args = self.default_args.copy() cli_parameters = ' --ip 127.0.1.1 --port 9006' args.update({'cli_parameters': cli_parameters}) input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, auth=self.conductr_auth, verify=self.server_verification_file, headers={'Host': '127.0.0.1'}) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, input_args) self.assertEqual( self.default_output(params=cli_parameters), self.output(stdout))
def base_test_success_ip(self): args = {} args.update(self.default_args) args.pop('host') args.update({'ip': '127.0.0.1'}) http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, auth=self.conductr_auth, verify=self.server_verification_file, headers={'Host': '127.0.0.1'}) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, input_args) self.assertEqual(self.default_output(), self.output(stdout))
def test_success_with_affinity(self): args = { 'ip': '127.0.0.1', 'port': 9005, 'api_version': '2', 'verbose': False, 'quiet': False, 'no_wait': False, 'long_ids': False, 'cli_parameters': '', 'bundle': self.bundle_id, 'scale': self.scale, 'affinity': 'other-bundle' } expected_url = \ 'http://127.0.0.1:9005/v2/bundles/45e0c477d3e5ea92aa8d85c0d8f3e25c?scale=3&affinity=other-bundle' request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with(200, self.default_response) wait_for_scale_mock = MagicMock() stdout = MagicMock() input_args = MagicMock(**args) with patch('requests.put', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock), \ patch('conductr_cli.bundle_scale.wait_for_scale', wait_for_scale_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_run.run(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(expected_url, headers=self.mock_headers) wait_for_scale_mock.assert_called_with(self.bundle_id, self.scale, input_args) self.assertEqual(self.default_output(), self.output(stdout))
def test_error_with_affinity_switch(self): args = { 'host': '127.0.0.1', 'port': 9005, 'api_version': '1', 'verbose': False, 'no_wait': False, 'long_ids': False, 'cli_parameters': '', 'bundle': self.bundle_id, 'scale': self.scale, 'affinity': 'other-bundle' } stderr = MagicMock() logging_setup.configure_logging(MagicMock(**args), err_output=stderr) result = conduct_run.run(MagicMock(**args)) self.assertFalse(result) self.assertEqual( as_error(strip_margin("""|Error: Affinity feature is only available for v1.1 onwards of ConductR |""")), self.output(stderr))