def test_sign_with_discovered_service_account(self): request = testutils.MockRequest(200, 'discovered-service-account') options = {'projectId': 'mock-project-id'} app = firebase_admin.initialize_app(testutils.MockCredential(), name='iam-signer-app', options=options) try: _overwrite_iam_request(app, request) # Force initialization of the signing provider. This will invoke the Metadata service. client = auth._get_client(app) assert client._token_generator.signing_provider is not None # Now invoke the IAM signer. signature = base64.b64encode(b'test').decode() request.response = testutils.MockResponse( 200, '{{"signature": "{0}"}}'.format(signature)) custom_token = auth.create_custom_token(MOCK_UID, app=app).decode() assert custom_token.endswith('.' + signature.rstrip('=')) self._verify_signer(custom_token, 'discovered-service-account') assert len(request.log) == 2 assert request.log[0][1]['headers'] == { 'Metadata-Flavor': 'Google' } finally: firebase_admin.delete_app(app)
def _instrument_provider_mgt(app, status, payload): client = auth._get_client(app) provider_manager = client._provider_manager recorder = [] provider_manager.http_client.session.mount( _auth_providers.ProviderConfigClient.PROVIDER_CONFIG_URL, testutils.MockAdapter(payload, status, recorder)) return recorder
def _instrument_user_manager(app, status, payload): client = auth._get_client(app) user_manager = client._user_manager recorder = [] user_manager.http_client.session.mount( _token_gen.TokenGenerator.ID_TOOLKIT_URL, testutils.MockAdapter(payload, status, recorder)) return user_manager, recorder
def test_init_request(self, options, timeout): app = firebase_admin.initialize_app(MOCK_CREDENTIAL, options=options) client = auth._get_client(app) request = client._token_verifier.request assert isinstance(request, _token_gen.CertificateFetchRequest) assert request.timeout_seconds == timeout
def _instrument_user_manager(app, status, payload): client = auth._get_client(app) user_manager = client._user_manager recorder = [] user_manager.http_client.session.mount( TOKEN_MGT_URLS['ID_TOOLKIT'], testutils.MockAdapter(payload, status, recorder)) return user_manager, recorder
def _instrument_provider_mgt(app, status, payload): client = auth._get_client(app) provider_manager = client._provider_manager recorder = [] provider_manager.http_client.session.mount( USER_MGT_URLS['ID_TOOLKIT'], testutils.MockAdapter(payload, status, recorder)) return recorder
def _instrument_session(self, app): client = auth._get_client(app) request = client._token_verifier.request recorder = [] request.session.mount( 'https://', testutils.MockAdapter(MOCK_PUBLIC_CERTS, 200, recorder)) return recorder
def _overwrite_iam_request(app, request): client = auth._get_client(app) client._token_generator.request = request
def _overwrite_cert_request(app, request): client = auth._get_client(app) client._token_verifier.request = request
class UserFirebase: certeficate = credentials.Certificate(firebaseConfig) app_firebase = firebase_admin.initialize_app(certeficate) client = auth._get_client(app_firebase)