def test_duplicate_endpoints(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with_file_contents( 'data/bundle_with_acls/duplicate_endpoints_tcp.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.maxDiff = None self.assertEqual( as_warn( strip_margin( """|TCP/PORT SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |12001 dup-system 1 duplicate f804d64 dup-bundle-1 Running |12002 dup-system 1 duplicate a904d64 dup-bundle-2 Running | |Warning: Multiple endpoints found: dup-system/1/duplicate |Warning: Unable to expose these endpoint via ConductR HAProxy. |Warning: Please ensure the ENDPOINT NAME is unique within a particular SYSTEM and SYSTEM VERSION. |""")), self.output(stdout))
def test_display_with_long_id(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with_file_contents( 'data/bundle_with_acls/one_bundle_http.json') stdout = MagicMock() args = self.default_args.copy() args.update({'long_ids': True}) input_args = MagicMock(**args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.assertEqual( strip_margin( """|METHOD PATH REWRITE SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |* /foo multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d644a01a5ab9f679f76939f5c7e2 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_multiple_acls_sorted(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with_file_contents( 'data/bundle_with_acls/multiple_bundles_tcp.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.assertEqual( strip_margin( """|TCP/PORT SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |7101 other-bundle-1.0.0 1.0.0 tunnel aaa4d64 other-bundle-1.0.0 Starting |9006 my-bundle-1.0.0 1.0.0 bin-one f804d64 my-bundle-1.0.0 Starting |19001 some-bundle-1.0.0 1.0.0 streamer bbb4d64 some-bundle-1.0.0 Starting |"""), self.output(stdout))
def test_ip(self): args = {} args.update(self.default_args) args.pop('host') args.update({'ip': '10.0.0.1'}) default_url = 'http://10.0.0.1:9005/bundles' http_method = self.respond_with_file_contents( 'data/bundle_with_acls/one_bundle_tcp.json') stdout = MagicMock() input_args = MagicMock(**args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '10.0.0.1'}) self.assertEqual( strip_margin( """|TCP/PORT BUNDLE ID BUNDLE NAME STATUS |9001 f804d64 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_duplicate_endpoints(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with_file_contents('data/bundle_with_acls/duplicate_endpoints_tcp.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.maxDiff = None self.assertEqual( as_warn(strip_margin( """|TCP/PORT SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |12001 dup-system 1 duplicate f804d64 dup-bundle-1 Running |12002 dup-system 1 duplicate a904d64 dup-bundle-2 Running | |Warning: Multiple endpoints found: dup-system/1/duplicate |Warning: Unable to expose these endpoint via ConductR HAProxy. |Warning: Please ensure the ENDPOINT NAME is unique within a particular SYSTEM and SYSTEM VERSION. |""")), self.output(stdout))
def test_multiple_acls_sorted(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with_file_contents( 'data/bundle_with_acls/multiple_bundles_http.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.assertEqual( strip_margin( """|METHOD PATH REWRITE SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |* /user/(.*)/item/(.*) /my-items/\\1-\\2 my-endp-1.0.0 1.0.0 dostat bbb4d64 my-endp-1.0.0 Running |POST ^/baz/boom /foo multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d64 multi-comp-multi-endp-1.0.0 Starting |* ^/bar multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d64 multi-comp-multi-endp-1.0.0 Starting |* /foo multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d64 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_no_bundles(self): http_method = self.respond_with(200, '[]') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin( """|METHOD PATH REWRITE SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |"""), self.output(stdout))
def test_no_bundles(self): http_method = self.respond_with(200, '[]') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin("""|TCP/PORT BUNDLE ID BUNDLE NAME STATUS |"""), self.output(stdout))
def test_no_acls(self): http_method = self.respond_with_file_contents('data/bundle_with_services/one_bundle_starting.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin( """|TCP/PORT SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |"""), self.output(stdout))
def test_display(self): http_method = self.respond_with_file_contents('data/bundle_with_acls/one_bundle_http.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin( """|METHOD PATH REWRITE SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |* /foo multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d64 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_no_acls(self): http_method = self.respond_with_file_contents( 'data/bundle_with_services/one_bundle_starting.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin( """|METHOD PATH REWRITE BUNDLE ID BUNDLE NAME STATUS |"""), self.output(stdout))
def test_display(self): http_method = self.respond_with_file_contents( 'data/bundle_with_acls/one_bundle_http.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin( """|METHOD PATH REWRITE SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |* /foo multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d64 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_display_multiple_executions(self): http_method = self.respond_with_file_contents( 'data/bundle_with_acls/display_multiple_executions_tcp.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin( """|TCP/PORT BUNDLE ID BUNDLE NAME STATUS |9001 f804d64 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_no_bundles(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with(200, '[]') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.assertEqual( strip_margin( """|TCP/PORT SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |"""), self.output(stdout))
def test_no_acls(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with_file_contents('data/bundle_with_services/one_bundle_starting.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.assertEqual( strip_margin( """|METHOD PATH REWRITE SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |"""), self.output(stdout))
def test_display(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with_file_contents('data/bundle_with_acls/one_bundle_tcp.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.assertEqual( strip_margin( """|TCP/PORT SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |9001 multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d64 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_multiple_acls_sorted(self): http_method = self.respond_with_file_contents('data/bundle_with_acls/multiple_bundles_tcp.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin( """|TCP/PORT SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |7101 other-bundle-1.0.0 1.0.0 tunnel aaa4d64 other-bundle-1.0.0 Starting |9006 my-bundle-1.0.0 1.0.0 bin-one f804d64 my-bundle-1.0.0 Starting |19001 some-bundle-1.0.0 1.0.0 streamer bbb4d64 some-bundle-1.0.0 Starting |"""), self.output(stdout))
def test_no_bundles(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with(200, '[]') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.assertEqual( strip_margin( """|METHOD PATH REWRITE SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |"""), self.output(stdout))
def test_display_with_long_id(self): http_method = self.respond_with_file_contents('data/bundle_with_acls/one_bundle_tcp.json') stdout = MagicMock() args = self.default_args.copy() args.update({'long_ids': True}) input_args = MagicMock(**args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin( """|TCP/PORT SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |9001 multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d644a01a5ab9f679f76939f5c7e2 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_multiple_acls_sorted(self): http_method = self.respond_with_file_contents( 'data/bundle_with_acls/multiple_bundles_tcp.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin("""|TCP/PORT BUNDLE ID BUNDLE NAME STATUS |7101 aaa4d64 other-bundle-1.0.0 Starting |9006 f804d64 my-bundle-1.0.0 Starting |19001 bbb4d64 some-bundle-1.0.0 Starting |"""), self.output(stdout))
def test_no_acls(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with_file_contents( 'data/bundle_with_services/one_bundle_starting.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.assertEqual( strip_margin( """|TCP/PORT SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |"""), self.output(stdout))
def test_multiple_acls_sorted(self): http_method = self.respond_with_file_contents( 'data/bundle_with_acls/multiple_bundles_http.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin( """|METHOD PATH REWRITE BUNDLE ID BUNDLE NAME STATUS |* /user/(.*)/item/(.*) /my-items/\\1-\\2 bbb4d64 my-endp-1.0.0 Running |POST ^/baz/boom /foo f804d64 multi-comp-multi-endp-1.0.0 Starting |* ^/bar f804d64 multi-comp-multi-endp-1.0.0 Starting |* /foo f804d64 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_display_with_long_id(self): http_method = self.respond_with_file_contents( 'data/bundle_with_acls/one_bundle_http.json') stdout = MagicMock() args = self.default_args.copy() args.update({'long_ids': True}) input_args = MagicMock(**args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '127.0.0.1'}) self.assertEqual( strip_margin( """|METHOD PATH REWRITE BUNDLE ID BUNDLE NAME STATUS |* /foo f804d644a01a5ab9f679f76939f5c7e2 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_multiple_acls_sorted(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with_file_contents('data/bundle_with_acls/multiple_bundles_http.json') stdout = MagicMock() input_args = MagicMock(**self.default_args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.assertEqual( strip_margin( """|METHOD PATH REWRITE SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |* /user/(.*)/item/(.*) /my-items/\\1-\\2 my-endp-1.0.0 1.0.0 dostat bbb4d64 my-endp-1.0.0 Running |POST ^/baz/boom /foo multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d64 multi-comp-multi-endp-1.0.0 Starting |* ^/bar multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d64 multi-comp-multi-endp-1.0.0 Starting |* /foo multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d64 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_display_with_long_id(self): request_headers_mock = MagicMock(return_value=self.mock_headers) http_method = self.respond_with_file_contents('data/bundle_with_acls/one_bundle_http.json') stdout = MagicMock() args = self.default_args.copy() args.update({'long_ids': True}) input_args = MagicMock(**args) with patch('requests.get', http_method), \ patch('conductr_cli.conduct_url.request_headers', request_headers_mock): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) request_headers_mock.assert_called_with(input_args) http_method.assert_called_with(self.default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers=self.mock_headers) self.assertEqual( strip_margin( """|METHOD PATH REWRITE SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |* /foo multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d644a01a5ab9f679f76939f5c7e2 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))
def test_ip(self): args = {} args.update(self.default_args) args.pop('host') args.update({'ip': '10.0.0.1'}) default_url = 'http://10.0.0.1:9005/bundles' http_method = self.respond_with_file_contents('data/bundle_with_acls/one_bundle_tcp.json') stdout = MagicMock() input_args = MagicMock(**args) with patch('requests.get', http_method): logging_setup.configure_logging(input_args, stdout) result = conduct_acls.acls(input_args) self.assertTrue(result) http_method.assert_called_with(default_url, timeout=DEFAULT_HTTP_TIMEOUT, headers={'Host': '10.0.0.1'}) self.assertEqual( strip_margin( """|TCP/PORT SYSTEM SYSTEM VERSION ENDPOINT NAME BUNDLE ID BUNDLE NAME STATUS |9001 multi-comp-multi-endp-1.0.0 1.0.0 comp1-endp1 f804d64 multi-comp-multi-endp-1.0.0 Starting |"""), self.output(stdout))