8000 Updating validation and test cases to be independent of top level `st… · Gurry-12/firebase-admin-python@aa3193f · GitHub
[go: up one dir, main page]

Skip to content

Commit aa3193f

Browse files
committed
Updating validation and test cases to be independent of top level state as that enables/disables all multi factor enrollments
1 parent b7ef5d3 commit aa3193f

File tree

3 files changed

+6
-18
lines changed

3 files changed

+6
-18
lines changed

firebase_admin/_auth_utils.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,9 +330,7 @@ def validate_mfa_config(mfa_config):
330330
mfa_config_payload['state'] = state
331331

332332
# validate factor_ids if MFA is enabled
333-
if state == 'ENABLED':
334-
if 'factorIds' not in mfa_config:
335-
raise ValueError('multiFactorConfig.factorIds must be defined')
333+
if 'factorIds' in mfa_config:
336334
factor_ids = mfa_config['factorIds']
337335
if not isinstance(factor_ids, list) or not factor_ids:
338336
raise ValueError(

tests/test_project_config_mgt.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,6 @@ def test_update_project_invalid_mfa_config_state(self, project_config_mgt_app, s
144144
project_config_mgt.update_project(mfa=mfa_config, app=project_config_mgt_app)
145145
assert str(excinfo.value).startswith('multiFactorConfig.state must be either "ENABLED" or "DISABLED"')
146146

147-
def test_update_project_undefined_mfa_config_factor_ids_enabled_state(self, project_config_mgt_app):
148-
mfa_config = {'state':'ENABLED'}
149-
with pytest.raises(ValueError) as excinfo:
150-
project_config_mgt.update_project(mfa=mfa_config, app=project_config_mgt_app)
151-
assert str(excinfo.value).startswith('multiFactorConfig.factorIds must be defined')
152-
153147
@pytest.mark.parametrize('factor_ids', [True, False, 1, 0, 'foo', {}, dict(), tuple(), list()])
154148
def test_invalid_mfa_config_factor_ids_type(self, factor_ids, project_config_mgt_app):
155149
mfa_config = {'state': 'ENABLED', 'factorIds': factor_ids}
@@ -298,9 +292,10 @@ def test_update_project_valid_mfa_configs(self, project_config_mgt_app):
298292
mfa=mfa_config_state_disabled,
299293
app=project_config_mgt_app)
300294

301-
mfa_config_state_disabled.pop('factorIds')
302295
_assert_project(project)
303-
mask = ['mfa.providerConfigs','mfa.state']
296+
mfa_config_state_disabled['enabledProviders'] = mfa_config_state_disabled['factorIds']
297+
mfa_config_state_disabled.pop('factorIds')
298+
mask = ['mfa.enabledProviders','mfa.providerConfigs','mfa.state']
304299
self._assert_request(recorder, {
305300
'mfa': mfa_config_state_disabled
306301
}, mask)

tests/test_tenant_mgt.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -304,12 +304,6 @@ def test_invalid_mfa_config_state(self, tenant_mgt_app, state):
304304
tenant_mgt.create_tenant(display_name='test', mfa_config=mfa_config, app=tenant_mgt_app)
305305
assert str(excinfo.value).startswith('multiFactorConfig.state must be either "ENABLED" or "DISABLED"')
306306

307-
def test_undefined_mfa_config_factor_ids_enabled_state(self, tenant_mgt_app):
308-
mfa_config = {'state':'ENABLED'}
309-
with pytest.raises(ValueError) as excinfo:
310-
tenant_mgt.create_tenant(display_name='test', mfa_config=mfa_config, app=tenant_mgt_app)
311-
assert str(excinfo.value).startswith('multiFactorConfig.factorIds must be defined')
312-
313307
@pytest.mark.parametrize('factor_ids', [True, False, 1, 0, 'foo', {}, dict(), tuple(), list()])
314308
def test_invalid_mfa_config_factor_ids_type(self, tenant_mgt_app, factor_ids):
315309
mfa_config = {'state': 'ENABLED', 'factorIds': factor_ids}
@@ -473,8 +467,9 @@ def test_create_tenant_valid_mfa_configs(self, tenant_mgt_app):
473467
display_name='test', mfa_config=mfa_config_state_disabled,
474468
app=tenant_mgt_app)
475469

476-
mfa_config_state_disabled.pop('factorIds')
477470
_assert_tenant(tenant)
471+
mfa_config_state_disabled['enabledProviders'] = mfa_config_state_disabled['factorIds']
472+
mfa_config_state_disabled.pop('factorIds')
478473
self._assert_request(recorder, {
479474
'displayName': 'test',
480475
'mfaConfig': mfa_config_state_disabled

0 commit comments

Comments
 (0)
0