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 step_token_login(self): with XRDSSTTest() as app: token_controller = TokenController() token_controller.app = app for security_server in self.config["security_server"]: configuration = token_controller.create_api_config(security_server, self.config) response = token_controller.remote_get_tokens(configuration) assert len(response) > 0 assert response[0].logged_in is False token_controller.remote_token_login(configuration, security_server) response = token_controller.remote_get_tokens(configuration) assert len(response) > 0 assert response[0].logged_in is True
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 for security_server in self.config["security_server"]: configuration = token_controller.create_api_config(security_server, self.config) response = token_controller.remote_get_tokens(configuration) assert len(response) > 0 assert len(response[0].keys) == 0 token_controller.remote_token_add_keys_with_csrs(configuration, security_server) if "clients" in security_server: for client in security_server["clients"]: if client["member_class"] != security_server["owner_member_class"] or client["member_code"] != \ security_server["owner_member_code"]: token_controller.remote_token_add_signing_key_new_member(configuration, security_server, client) response = token_controller.remote_get_tokens(configuration) assert len(response) > 0 assert len(response[0].keys) == 3 auth_key_label = security_server['name'] + '-default-auth-key' sign_key_label = security_server['name'] + '-default-sign-key' assert str(response[0].keys[0].label) == auth_key_label assert str(response[0].keys[1].label) == sign_key_label
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()