def test_token_init_keys(self): with XRDSSTTest() as app: with mock.patch( 'xrdsst.api.certificate_authorities_api.CertificateAuthoritiesApi.get_approved_certificate_authorities' ) as mock_get_cas: mock_get_cas.return_value.__enter__.return_value = TokenTestData.ca_list_response with mock.patch( 'xrdsst.api.security_servers_api.SecurityServersApi.get_security_servers', return_value=TokenTestData. security_servers_current_server_response): token_controller = TokenController() token_controller.app = app token_controller.load_config = (lambda: self.ss_config) token_controller.get_server_status = ( lambda x, y: StatusTestData. server_status_essentials_complete) token_controller.init_keys() out, err = self.capsys.readouterr() assert 2 == out.count("Created AUTHENTICATION CSR") assert 2 == out.count("Created SIGNING CSR") with self.capsys.disabled(): sys.stdout.write(out) sys.stderr.write(err)
def test_token_init_keys_without_token_logged_in(self): with XRDSSTTest() as app: with mock.patch( 'xrdsst.api.certificate_authorities_api.CertificateAuthoritiesApi.get_approved_certificate_authorities' ) as mock_get_cas: mock_get_cas.return_value.__enter__.return_value = TokenTestData.ca_list_response with mock.patch( 'xrdsst.api.security_servers_api.SecurityServersApi.get_security_servers', return_value=TokenTestData. security_servers_current_server_response): with mock.patch( 'xrdsst.api.tokens_api.TokensApi.get_token', return_value=TokenTestData.token_login_response): with mock.patch( 'xrdsst.api.tokens_api.TokensApi.add_key_and_csr', return_value=TokenTestData. add_auth_key_with_csr_response): token_controller = TokenController() token_controller.app = app token_controller.load_config = ( lambda: self.ss_config) token_controller.get_server_status = ( lambda x, y: StatusTestData. server_status_essentials_complete_token_logged_out( )) token_controller.init_keys() out, err = self.capsys.readouterr() assert 1 == out.count( "SKIPPED 'ssX': has ['init', 'client add'] performed but also needs ['token login'] completion before continuing with requested ['token init-keys']" ) with self.capsys.disabled(): sys.stdout.write(out) sys.stderr.write(err)
def test_token_list(self): with XRDSSTTest() as app: with mock.patch('xrdsst.api.tokens_api.TokensApi.get_tokens', return_value=TokenTestData.token_list_response): token_controller = TokenController() token_controller.app = app token_controller.load_config = (lambda: self.ss_config) token_controller.list()
def test_get_tokens_exception(self): with XRDSSTTest() as app: with mock.patch('xrdsst.api.tokens_api.TokensApi.get_tokens', side_effect=ApiException): token_controller = TokenController() token_controller.app = app token_controller.load_config = (lambda: self.ss_config) for security_server in self.ss_config["security_server"]: configuration = token_controller.create_api_config( security_server, self.ss_config) token_controller.remote_get_tokens(configuration) self.assertRaises(ApiException)
def test_get_tokens(self): with XRDSSTTest() as app: with mock.patch('xrdsst.api.tokens_api.TokensApi.get_tokens', return_value=TokenTestData.token_list_response): token_controller = TokenController() token_controller.app = app token_controller.load_config = (lambda: self.ss_config) for security_server in self.ss_config["security_server"]: configuration = token_controller.create_api_config( security_server, self.ss_config) response = token_controller.remote_get_tokens( configuration) assert response == TokenTestData.token_list_response
def test_token_login_already_logged_in(self, tokens_api_mock): with XRDSSTTest() as app: token_controller = TokenController() token_controller.app = app token_controller.load_config = (lambda: self.ss_config) token_controller.get_server_status = ( lambda x, y: StatusTestData.server_status_essentials_complete) token_controller.login() out, err = self.capsys.readouterr() assert 1 == out.count("Token 0 already logged in for 'ssX'") with self.capsys.disabled(): sys.stdout.write(out) sys.stderr.write(err)
def test_token_init_keys_without_cas_available(self): with XRDSSTTest() as app: with mock.patch( 'xrdsst.api.certificate_authorities_api.CertificateAuthoritiesApi.get_approved_certificate_authorities' ) as mock_get_cas: mock_get_cas.return_value.__enter__.return_value = [] with mock.patch( 'xrdsst.api.security_servers_api.SecurityServersApi.get_security_servers', return_value=TokenTestData. security_servers_current_server_response): token_controller = TokenController() token_controller.app = app token_controller.load_config = (lambda: self.ss_config) token_controller.get_server_status = ( lambda x, y: StatusTestData. server_status_essentials_complete) self.assertRaises(IndexError, lambda: token_controller.init_keys())
def test_token_login(self): with XRDSSTTest() as app: with mock.patch('xrdsst.api.tokens_api.TokensApi.login_token', return_value=TokenTestData.token_login_response): token_controller = TokenController() token_controller.app = app token_controller.load_config = (lambda: self.ss_config) token_controller.get_server_status = ( lambda x, y: StatusTestData. server_status_essentials_complete) token_controller.login() out, err = self.capsys.readouterr() assert 1 == out.count( "Security server 'ssX' token 0 logged in.") with self.capsys.disabled(): sys.stdout.write(out) sys.stderr.write(err)
def step_token_init_keys(self): with XRDSSTTest() as app: token_controller = TokenController() token_controller.app = app token_controller.load_config = (lambda: self.config) token_controller.init_keys()
def test_token_list_nonresolving_url(self): urllib3.util.retry.Retry.DEFAULT = urllib3.util.retry.Retry(0) token_controller = TokenController() token_controller.load_config = (lambda: self.ss_config) self.assertRaises(urllib3.exceptions.MaxRetryError, lambda: token_controller.list())