Skip to content

Commit 8b87e10

Browse files
committed
Addressing feedback
Importing configs directly fix warnings fix warnings fix warnings
1 parent 160f983 commit 8b87e10

8 files changed

+56
-45
lines changed

firebase_admin/multi_factor_config_mgt.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -44,25 +44,25 @@ class MultiFactorServerConfig:
4444
def __init__(self, data):
4545
if not isinstance(data, dict):
4646
raise ValueError(
47-
'Invalid data argument in MultiFactorConfig constructor: {0}'.format(data))
47+
'Invalid data argument in MultiFactorServerConfig constructor: {0}'.format(data))
4848
self._data = data
4949

5050
@property
5151
def provider_configs(self):
5252
data = self._data.get('providerConfigs', None)
5353
if data is not None:
54-
return [self.ProviderConfigServerConfig(d) for d in data]
54+
return [self.ProviderServerConfig(d) for d in data]
5555
return None
5656

57-
class ProviderConfigServerConfig:
57+
class ProviderServerConfig:
5858
"""Represents provider configuration response received from the server and converts
5959
it to user format.
6060
"""
6161

6262
def __init__(self, data):
6363
if not isinstance(data, dict):
6464
raise ValueError(
65-
'Invalid data argument in ProviderConfig constructor: {0}'.format(data))
65+
'Invalid data argument in ProviderServerConfig constructor: {0}'.format(data))
6666
self._data = data
6767

6868
@property
@@ -84,7 +84,8 @@ class TOTPProviderServerConfig:
8484
def __init__(self, data):
8585
if not isinstance(data, dict):
8686
raise ValueError(
87-
'Invalid data argument in TOTPProviderConfig constructor: {0}'.format(data))
87+
'Invalid data argument in TOTPProviderServerConfig'
88+
' constructor: {0}'.format(data))
8889
self._data = data
8990

9091
@property

firebase_admin/project_config_mgt.py

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929

3030
__all__ = [
3131
'ProjectConfig',
32-
3332
'get_project_config',
3433
'update_project_config',
3534
]

firebase_admin/tenant_mgt.py

+19-13
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@
2525

2626
import firebase_admin
2727
from firebase_admin import auth
28-
from firebase_admin import multi_factor_config_mgt
2928
from firebase_admin import _auth_utils
3029
from firebase_admin import _http_client
3130
from firebase_admin import _utils
31+
from firebase_admin.multi_factor_config_mgt import MultiFactorConfig
32+
from firebase_admin.multi_factor_config_mgt import MultiFactorServerConfig
3233

3334

3435
_TENANT_MGT_ATTRIBUTE = '_tenant_mgt'
@@ -93,7 +94,7 @@ def get_tenant(tenant_id, app=None):
9394

9495
def create_tenant(
9596
display_name, allow_password_sign_up=None, enable_email_link_sign_in=None,
96-
multi_factor_config: multi_factor_config_mgt.MultiFactorConfig = None, app=None):
97+
multi_factor_config: MultiFactorConfig = None, app=None):
9798
"""Creates a new tenant from the given options.
9899
99100
Args:
@@ -122,7 +123,7 @@ def create_tenant(
122123

123124
def update_tenant(
124125
tenant_id, display_name=None, allow_password_sign_up=None, enable_email_link_sign_in=None,
125-
multi_factor_config: multi_factor_config_mgt.MultiFactorConfig = None, app=None):
126+
multi_factor_config: MultiFactorConfig = None, app=None):
126127
"""Updates an existing tenant with the given options.
127128
128129
Args:
@@ -189,6 +190,7 @@ def list_tenants(page_token=None, max_results=_MAX_LIST_TENANTS_RESULTS, app=Non
189190
FirebaseError: If an error occurs while retrieving the user accounts.
190191
"""
191192
tenant_mgt_service = _get_tenant_mgt_service(app)
193+
192194
def download(page_token, max_results):
193195
return tenant_mgt_service.list_tenants(page_token, max_results)
194196
return ListTenantsPage(download, page_token, max_results)
@@ -211,7 +213,8 @@ class Tenant:
211213

212214
def __init__(self, data):
213215
if not isinstance(data, dict):
214-
raise ValueError('Invalid data argument in Tenant constructor: {0}'.format(data))
216+
raise ValueError(
217+
'Invalid data argument in Tenant constructor: {0}'.format(data))
215218
if not 'name' in data:
216219
raise ValueError('Tenant response missing required keys.')
217220

@@ -238,7 +241,7 @@ def enable_email_link_sign_in(self):
238241
def multi_factor_config(self):
239242
data = self._data.get('mfaConfig', None)
240243
if data is not None:
241-
return multi_factor_config_mgt.MultiFactorServerConfig(data)
244+
return MultiFactorServerConfig(data)
242245
return None
243246

244247

@@ -250,7 +253,8 @@ class _TenantManagementService:
250253
def __init__(self, app):
251254
credential = app.credential.get_credential()
252255
version_header = 'Python/Admin/{0}'.format(firebase_admin.__version__)
253-
base_url = '{0}/projects/{1}'.format(self.TENANT_MGT_URL, app.project_id)
256+
base_url = '{0}/projects/{1}'.format(
257+
self.TENANT_MGT_URL, app.project_id)
254258
self.app = app
255259
self.client = _http_client.JsonHttpClient(
256260
credential=credential, base_url=base_url, headers={'X-Client-Version': version_header})
@@ -269,7 +273,7 @@ def auth_for_tenant(self, tenant_id):
269273

270274
client = auth.Client(self.app, tenant_id=tenant_id)
271275
self.tenant_clients[tenant_id] = client
272-
return client
276+
return client
273277

274278
def get_tenant(self, tenant_id):
275279
"""Gets the tenant corresponding to the given ``tenant_id``."""
@@ -286,7 +290,7 @@ def get_tenant(self, tenant_id):
286290

287291
def create_tenant(
288292
self, display_name, allow_password_sign_up=None, enable_email_link_sign_in=None,
289-
multi_factor_config: multi_factor_config_mgt.MultiFactorConfig = None):
293+
multi_factor_config: MultiFactorConfig = None):
290294
"""Creates a new tenant from the given parameters."""
291295

292296
payload = {'displayName': _validate_display_name(display_name)}
@@ -297,7 +301,7 @@ def create_tenant(
297301
payload['enableEmailLinkSignin'] = _auth_utils.validate_boolean(
298302
enable_email_link_sign_in, 'enableEmailLinkSignin')
299303
if multi_factor_config is not None:
300-
if not isinstance(multi_factor_config, multi_factor_config_mgt.MultiFactorConfig):
304+
if not isinstance(multi_factor_config, MultiFactorConfig):
301305
raise ValueError(
302306
'multi_factor_config must be of type MultiFactorConfig.')
303307
payload['mfaConfig'] = multi_factor_config.build_server_request()
@@ -311,7 +315,7 @@ def create_tenant(
311315
def update_tenant(
312316
self, tenant_id, display_name=None, allow_password_sign_up=None,
313317
enable_email_link_sign_in=None,
314-
multi_factor_config: multi_factor_config_mgt.MultiFactorConfig = None):
318+
multi_factor_config: MultiFactorConfig = None):
315319
"""Updates the specified tenant with the given parameters."""
316320
if not isinstance(tenant_id, str) or not tenant_id:
317321
raise ValueError('Tenant ID must be a non-empty string.')
@@ -326,12 +330,14 @@ def update_tenant(
326330
payload['enableEmailLinkSignin'] = _auth_utils.validate_boolean(
327331
enable_email_link_sign_in, 'enableEmailLinkSignin')
328332
if multi_factor_config is not None:
329-
if not isinstance(multi_factor_config, multi_factor_config_mgt.MultiFactorConfig):
330-
raise ValueError('multi_factor_config must be of type MultiFactorConfig.')
333+
if not isinstance(multi_factor_config, MultiFactorConfig):
334+
raise ValueError(
335+
'multi_factor_config must be of type MultiFactorConfig.')
331336
payload['mfaConfig'] = multi_factor_config.build_server_request()
332337

333338
if not payload:
334-
raise ValueError('At least one parameter must be specified for update.')
339+
raise ValueError(
340+
'At least one parameter must be specified for update.')
335341

336342
url = '/tenants/{0}'.format(tenant_id)
337343
update_mask = ','.join(_auth_utils.build_update_mask(payload))

integration/test_project_config_mgt.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from firebase_admin import project_config_mgt
2020
from firebase_admin import multi_factor_config_mgt
2121

22+
ADJACENT_INTERVALS = 5
2223

2324
@pytest.fixture(scope='module')
2425
def sample_mfa_config():
@@ -27,7 +28,7 @@ def sample_mfa_config():
2728
{
2829
'state': 'ENABLED',
2930
'totpProviderConfig': {
30-
'adjacentIntervals': 5
31+
'adjacentIntervals': ADJACENT_INTERVALS
3132
}
3233
}
3334
]
@@ -61,9 +62,9 @@ def _assert_multi_factor_config(multi_factor_config):
6162
assert isinstance(multi_factor_config.provider_configs, list)
6263
for provider_config in multi_factor_config.provider_configs:
6364
assert isinstance(provider_config, multi_factor_config_mgt.MultiFactorServerConfig
64-
.ProviderConfigServerConfig)
65+
.ProviderServerConfig)
6566
assert provider_config.state == 'ENABLED'
6667
assert isinstance(provider_config.totp_provider_config,
67-
multi_factor_config_mgt.MultiFactorServerConfig.ProviderConfigServerConfig
68+
multi_factor_config_mgt.MultiFactorServerConfig.ProviderServerConfig
6869
.TOTPProviderServerConfig)
69-
assert provider_config.totp_provider_config.adjacent_intervals == 5
70+
assert provider_config.totp_provider_config.adjacent_intervals == ADJACENT_INTERVALS

integration/test_tenant_mgt.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ def _assert_multi_factor_config(mfa_config):
5858
assert isinstance(mfa_config.provider_configs, list)
5959
for provider_config in mfa_config.provider_configs:
6060
assert isinstance(provider_config, multi_factor_config_mgt.MultiFactorServerConfig.\
61-
ProviderConfigServerConfig)
61+
ProviderServerConfig)
6262
assert provider_config.state == 'ENABLED'
6363
assert isinstance(provider_config.totp_provider_config,
64-
multi_factor_config_mgt.MultiFactorServerConfig.ProviderConfigServerConfig
64+
multi_factor_config_mgt.MultiFactorServerConfig.ProviderServerConfig
6565
.TOTPProviderServerConfig)
6666
assert provider_config.totp_provider_config.adjacent_intervals == 5
6767

tests/test_multi_factor_config.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -135,22 +135,22 @@ def test_invalid_multi_factor_config_response(self):
135135
test_config = 'invalid'
136136
with pytest.raises(ValueError) as excinfo:
137137
multi_factor_config_mgt.MultiFactorServerConfig(test_config)
138-
assert str(excinfo.value).startswith('Invalid data argument in MultiFactorConfig'
138+
assert str(excinfo.value).startswith('Invalid data argument in MultiFactorServerConfig'
139139
' constructor: {0}'.format(test_config))
140140

141141
def test_invalid_provider_config_response(self):
142142
test_config = 'invalid'
143143
with pytest.raises(ValueError) as excinfo:
144-
multi_factor_config_mgt.MultiFactorServerConfig.ProviderConfigServerConfig(test_config)
145-
assert str(excinfo.value).startswith('Invalid data argument in ProviderConfig'
144+
multi_factor_config_mgt.MultiFactorServerConfig.ProviderServerConfig(test_config)
145+
assert str(excinfo.value).startswith('Invalid data argument in ProviderServerConfig'
146146
' constructor: {0}'.format(test_config))
147147

148148
def test_invalid_totp_provider_config_response(self):
149149
test_config = 'invalid'
150150
with pytest.raises(ValueError) as excinfo:
151-
multi_factor_config_mgt.MultiFactorServerConfig.ProviderConfigServerConfig.\
151+
multi_factor_config_mgt.MultiFactorServerConfig.ProviderServerConfig.\
152152
TOTPProviderServerConfig(test_config)
153-
assert str(excinfo.value).startswith('Invalid data argument in TOTPProviderConfig'
153+
assert str(excinfo.value).startswith('Invalid data argument in TOTPProviderServerConfig'
154154
' constructor: {0}'.format(test_config))
155155

156156
def test_valid_server_response(self):
@@ -173,9 +173,9 @@ def _assert_multi_factor_config(mfa_config):
173173
for provider_config in mfa_config.provider_configs:
174174
assert isinstance(
175175
provider_config,
176-
multi_factor_config_mgt.MultiFactorServerConfig.ProviderConfigServerConfig)
176+
multi_factor_config_mgt.MultiFactorServerConfig.ProviderServerConfig)
177177
assert provider_config.state == 'ENABLED'
178178
assert isinstance(provider_config.totp_provider_config,
179-
multi_factor_config_mgt.MultiFactorServerConfig.ProviderConfigServerConfig
179+
multi_factor_config_mgt.MultiFactorServerConfig.ProviderServerConfig
180180
.TOTPProviderServerConfig)
181181
assert provider_config.totp_provider_config.adjacent_intervals == 5

tests/test_project_config_mgt.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
from firebase_admin import multi_factor_config_mgt
2626

2727

28+
ADJACENT_INTERVALS = 5
29+
2830
GET_PROJECT_RESPONSE = """{
2931
"mfaConfig":{
3032
"providerConfigs":[
@@ -75,7 +77,7 @@ def test_project_config(self):
7577
{
7678
'state': 'ENABLED',
7779
'totpProviderConfig': {
78-
'adjacentIntervals': 5,
80+
'adjacentIntervals': ADJACENT_INTERVALS,
7981
}
8082
}
8183
]
@@ -129,7 +131,7 @@ def test_update_project_config(self, project_config_mgt_app):
129131
multi_factor_config_mgt.ProviderConfig(
130132
state=multi_factor_config_mgt.ProviderConfig.State.ENABLED,
131133
totp_provider_config=multi_factor_config_mgt.TOTPProviderConfig(
132-
adjacent_intervals=5
134+
adjacent_intervals=ADJACENT_INTERVALS
133135
)
134136
)
135137
]
@@ -146,7 +148,7 @@ def test_update_project_config(self, project_config_mgt_app):
146148
{
147149
'state': 'ENABLED',
148150
'totpProviderConfig': {
149-
'adjacentIntervals': 5,
151+
'adjacentIntervals': ADJACENT_INTERVALS,
150152
}
151153
}
152154
]
@@ -168,12 +170,12 @@ def _assert_multi_factor_config(multi_factor_config):
168170
assert isinstance(multi_factor_config.provider_configs, list)
169171
for provider_config in multi_factor_config.provider_configs:
170172
assert isinstance(provider_config, multi_factor_config_mgt.MultiFactorServerConfig
171-
.ProviderConfigServerConfig)
173+
.ProviderServerConfig)
172174
assert provider_config.state == 'ENABLED'
173175
assert isinstance(provider_config.totp_provider_config,
174-
multi_factor_config_mgt.MultiFactorServerConfig.ProviderConfigServerConfig
176+
multi_factor_config_mgt.MultiFactorServerConfig.ProviderServerConfig
175177
.TOTPProviderServerConfig)
176-
assert provider_config.totp_provider_config.adjacent_intervals == 5
178+
assert provider_config.totp_provider_config.adjacent_intervals == ADJACENT_INTERVALS
177179

178180
def _assert_project_config(project_config):
179181
if project_config.multi_factor_config is not None:

tests/test_tenant_mgt.py

+9-7
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
from tests import test_token_gen
3232

3333

34+
ADJACENT_INTERVALS = 5
35+
3436
GET_TENANT_RESPONSE = """{
3537
"name": "projects/mock-project-id/tenants/tenant-id",
3638
"displayName": "Test Tenant",
@@ -260,7 +262,7 @@ def test_create_tenant(self, tenant_mgt_app):
260262
multi_factor_config_mgt.ProviderConfig(
261263
state=multi_factor_config_mgt.ProviderConfig.State.ENABLED,
262264
totp_provider_config=multi_factor_config_mgt.TOTPProviderConfig(
263-
adjacent_intervals=5
265+
adjacent_intervals=ADJACENT_INTERVALS
264266
)
265267
)
266268
]
@@ -279,7 +281,7 @@ def test_create_tenant(self, tenant_mgt_app):
279281
{
280282
'state': 'ENABLED',
281283
'totpProviderConfig': {
282-
'adjacentIntervals': 5
284+
'adjacentIntervals': ADJACENT_INTERVALS
283285
}
284286
}
285287
]
@@ -379,7 +381,7 @@ def test_update_tenant(self, tenant_mgt_app):
379381
multi_factor_config_mgt.ProviderConfig(
380382
state=multi_factor_config_mgt.ProviderConfig.State.ENABLED,
381383
totp_provider_config=multi_factor_config_mgt.TOTPProviderConfig(
382-
adjacent_intervals=5
384+
adjacent_intervals=ADJACENT_INTERVALS
383385
)
384386
)
385387
]
@@ -399,7 +401,7 @@ def test_update_tenant(self, tenant_mgt_app):
399401
{
400402
'state': 'ENABLED',
401403
'totpProviderConfig': {
402-
'adjacentIntervals': 5
404+
'adjacentIntervals': ADJACENT_INTERVALS
403405
}
404406
}
405407
]
@@ -1068,12 +1070,12 @@ def _assert_multi_factor_config(mfa_config):
10681070
assert isinstance(mfa_config.provider_configs, list)
10691071
for provider_config in mfa_config.provider_configs:
10701072
assert isinstance(provider_config, multi_factor_config_mgt.MultiFactorServerConfig.\
1071-
ProviderConfigServerConfig)
1073+
ProviderServerConfig)
10721074
assert provider_config.state == 'ENABLED'
10731075
assert isinstance(provider_config.totp_provider_config,
1074-
multi_factor_config_mgt.MultiFactorServerConfig.ProviderConfigServerConfig
1076+
multi_factor_config_mgt.MultiFactorServerConfig.ProviderServerConfig
10751077
.TOTPProviderServerConfig)
1076-
assert provider_config.totp_provider_config.adjacent_intervals == 5
1078+
assert provider_config.totp_provider_config.adjacent_intervals == ADJACENT_INTERVALS
10771079

10781080
def _assert_tenant(tenant, tenant_id='tenant-id'):
10791081
assert isinstance(tenant, tenant_mgt.Tenant)

0 commit comments

Comments
 (0)