Skip to content

Commit 00dff8c

Browse files
author
Pijush Chakraborty
committed
Updating ServerConfig methods
1 parent f22ef5b commit 00dff8c

File tree

5 files changed

+82
-10
lines changed

5 files changed

+82
-10
lines changed

bug-bash-test.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import firebase_admin
2+
from firebase_admin import credentials
3+
from firebase_admin import remote_config
4+
import asyncio
5+
6+
# [Bug Bash 101] Credentials
7+
# Load creds for authentication - Update the json key from the one downloaded from the console.
8+
cred = credentials.Certificate('firebase_admin/rc-custom-test-firebase-adminsdk-elxq9-bf8684bef7.json')
9+
default_app = firebase_admin.initialize_app(cred)
10+
11+
# [Bug Bash 101] Default Config
12+
# Create default template for initializing ServerTemplate
13+
# For bug bash, update the default config to any config that you want to initialize
14+
# the app with. The configs will be cached and might get updated during evaluation of the template.
15+
default_config = {
16+
'default_key_str': 'default_val_str',
17+
'default_key_number': 123
18+
}
19+
20+
# Create initial template
21+
template = remote_config.init_server_template(app=default_app, default_config=default_config)
22+
23+
# Load the template from the backend
24+
asyncio.run(template.load())
25+
26+
# [Bug Bash 101] Custom Signals
27+
# Evaluate template - pass custom signals
28+
# Update the custom signals being passed in evaluate to test how variations of the
29+
# signals cause changes to the config evaluation.
30+
config = template.evaluate(
31+
# Update custom vars
32+
{
33+
'custom_key_str': 'custom_val_str',
34+
'version_key': '12.1.3.-1'
35+
}
36+
)
37+
38+
# [Bug Bash 101] Verify Evaluation
39+
# Update the following print statements to verify if config is being created properly.
40+
# Print default config values
41+
# print('[Default Config] default_key_str: ', config.get_string('default_key_str'))
42+
# print('[Default Config] default_key_number: ', config.get_int('default_key_number'))
43+
44+
# Verify evaluated config
45+
print('[Evluated Config] Config values:', config.get_string('test_server'))
46+
47+
# Verify value and source for configs
48+
print('Config Value:', config.get_value('test_server').as_string(),
49+
'Value Source:', config.get_value('test_server').get_source())
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"type": "service_account",
3+
"project_id": "pijushc-dev",
4+
"private_key_id": "ea587598b57a2516b1f215330a298c58f25d80cd",
5+
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCcPWs5k8RO4zU4\nB2ISSNfkiJM/hoRZ48Fgb8X7/DkxBR7CgDpnZdarl/9P1POLIf+SLDarvWLTd5Qs\n4fkeat5h1MDMetUAqsfZ43kUFdOISwLxzbfHfXloRn6q/qzJQlLHlkjAvi8i0LbN\n1epy3v36I7OIL7+ACdY/HVEEJdjUjWxBq2QNEqOLCDXtEVDgXlLecHGGg8jkqtXT\nHx2dWCLJogfRVmLhVKMtma4l2CVDWke2cBQV+M6suzSZxjgx5ORqCMd3ZIbyxaf7\nuaW6qYPOuKjmx1zm+xQAgzuv1F49tr8yQ3MUFtdvbA63oeRfi0p0VbAD6+F8kS0t\nTbjX45qrAgMBAAECggEABk8qodAYSNE/CGyv5qofYcCsJZASjyi12eWZmqPkUVjy\nFYulECDaKuK/8iLY1OECF46GhKfosj5tcuSLMVHCejPjtz4slNLQsDlR3eBFwwa4\nbzhN+BXWjcHvAou3QYdWnW2xsWrcr2y7PROq3ImpuuyvJsw60PpUtwbBi0fV+jtN\nn7EVRPTprhRTlnaObaX38MS5zNffA54x1p83MnBGB4mCZrlg4tCZIbehjhj6CHaP\nwu2QNYbYB8+iZkN7fcWze8ytvTxAZJD0IBVU/jJQFIJfdw8XyKlilKvTcdS7eTF8\nv9lNTyBAYPQdRRK/axjARzYhL1T1f/Kb9LH56H5V+QKBgQDNro1qGjBcyd+ij4Fv\nu7Ryst8o28tIJVaofSGV/QnQcLnhuTSMqIIks603EvgtpHX0NEseSTiUcyJtrgEP\nHzm1QWHvy/rwLPMAmFp8ArbBRdPog14YYRNzZD+CECLYW8RvvrRDFhgArXFnFe53\nXhtnEU7yXs4p5JlgSKxjvIvlWQKBgQDCdmqLCs6szpqCXG+IhHAR6mcaLkJPj3mR\nbCL7fuNW9dmYvzV2cGVi1DJ48BjIzvVUSIJjufrXWbIZr0aoyEN2mFAFrHo24Y0i\nO9AKkXfJkKL5/6CEPpjpr4XtNwNHsQERRNVBEn8nHy49TjhJkYz32WLjOpnKqKTE\nA0CXRivLowKBgQCnhNBWp2fWWvES1HCmkSmh9X9+Jq3FX+vZpLizEXlp1DYA2zgq\ni6Abxl+AqKmLexQ6xlCcJSS4+6EB1aO1LkhxEQR0Kx2Begqc5Hll4Uv51CaIjF4Z\n2w7df7ud8gh/URaHsLneneMEwj7Hp/wmKnaFFnrHOmINistEuUv2m30RWQKBgFiv\nKGfAxgCJOG27OiJIQ9Pn0p1d+1/NTuPDLTEE7Sj7dgDzMq6RE6u+mkYNOUBbIgcO\nCmjwqDUN8utDxDW1Hw8250evIQ1mT7cNEBPBw59pFupsagflhFcOdUV5kUVgs9vs\nSFUk2lg9IBlVUtY6Ss+9lBuM3hZOUtYRpaNXnSGBAoGBAL3zFdEjgmwNnpnZkNna\nFdSXX78gNGg1zQfgiLntLgY7Sf5dVYTU5+j6RLs7/3WTFbcrhJ14AMgdW7CgM5Gs\nkMoVFOjjyrC/CaVzmCpFRHY9Q191R/dFnfIRQBTCEIs/vWlI+Nu9TG1u4lA9EPxb\nzhTi3qfs/XPLiuA1ZiOI0u4E\n-----END PRIVATE KEY-----\n",
6+
"client_email": "firebase-adminsdk-j8pmi@pijushc-dev.iam.gserviceaccount.com",
7+
"client_id": "104705823758570910458",
8+
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
9+
"token_uri": "https://oauth2.googleapis.com/token",
10+
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
11+
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-j8pmi%40pijushc-dev.iam.gserviceaccount.com",
12+
"universe_domain": "googleapis.com"
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"type": "service_account",
3+
"project_id": "rc-custom-test",
4+
"private_key_id": "bf8684bef7ee2778a34c022b9a3d00eb4ebf5f1b",
5+
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC3lEaoxzEjPZdM\nkkyuHDeldit6asqLbm71k5VwdZKN1Upur4rCZO99fe8nNoYoj4w5513jP0fBQPeM\nU57W2SguGq05+5I1Df7p0WwN7+QQLOh7KcGPxnIOd8EzF+HY2JfW2Cs3+02Rs5ZR\nDeAN706YcmzNyzwyoX4it+EEHF0JS0b6divcVH8U1Hx8fR2TdNVggB5LbrBZohKT\nQi9JFOWh+3eDnbSAX7iCwM/rOW2UgwtrmHiSesB8ohPzgmehUt53NzkJJiucK0ba\nd7gebOxU7RzxZpfT5WZw8H1wlkuJoBgMaXaRgbzhECTG9oWuqtnFsjP8HEcfkBg5\nPqRa8lx3AgMBAAECggEAHLua8Zi3sqXVs/jkAo5NEVs1A+SKDhe7SzmNtrvYM9XR\n4BAenj1xFIms8EzC479P+dIiKkrBvtgdxrthzYvQk6K+QSiEYkRuBQevq2DEJ9n3\niytmbcvoFyacORSAV1HTNh/AZ/Mv2WGr4cTTsCqn+QlTyUQJiH0pQmLYV63ey/DV\nuHgjwzDQlPMGW9lcuiaXUz/DeOKEnDG+VUXrZyDZdIMAuToi58kay4tU5iWUpHBc\nbh9gfryIWdRAJUC74aCBjobwHjGzdcOTWMzNLetI/fEuQwcLVFBjPlH/bGC9yMvq\nXB29m1WtFsD0aF1Eg7VIs7EVCbZwtyY3T/EQcBpZ6QKBgQDqrRF2oePWyt3LhNwr\nMBGoeSKek1I3+I9lQvYwYVn4J3aI2bjDVSiHONbWUnS2lV4oUjt22Dv6lr1vfmFn\n/uMQ5RhKzbfbnVPtz8sDK3OSKb1B3JImv5qv8RJj3HZJlGaNX0QUnosJ6c0r+Fw1\nuIrBSTlXCbV0SmgpeByfbiy9fwKBgQDIQp2EfaX1oAnzXpWwbPaMlO3L+QAkzeDP\nwR9q4ci26a4rHfl0JZzHhzsjQEhbjW0EYU7EAVKzBW/K8RHyKTjBR0lN9xoqOTDK\nzObIeQVVfvoXspPePwnShXoaKxAeRWUwLiK05Jf5sl2iglD3Oebu3tWcf+kNhIIN\n+N2gat/NCQKBgElLtrmbxKKQiAeJvo5KnClHdFWc48ARhQ/2gxgHP+duw+noPnnb\nviXFzevwov1n15m2XVY4ITuaGx6YlWm6xUbAlv6+E9+m2tDa5qhdyOHs4WyRrKAn\nlfO/0qOX9uXyULl0+LmL7xcwi+Fg18P7mHLYIO2bXa4tkyzok+ADtDuXAoGBALPL\n21CQ3ufggA6Y5Rw5OEKPk9CGBrMEhMsCQQrdHC/dLhpYFxdIjbI2n8nOdSh9mVtN\nYkJoTa+dOfmi5tHcYLBnKFFvgXZXUo9B2BI1VaylDDUqh8gKIO96F15XO2lyNJ9F\nTLPMaQYuNhMpnTfaLJRaTL7tuHgCeCHDRng4fCbBAoGAD2oPTQWkTN/m2iAA9EJP\n0VCWwiVHacd1vc5zJT7D+d7ot5um35oX3Lw6UDlaqM+ehPh1wAOriI15rFZSwmLV\nYXGS5LU5BvOruE4TtOFX5sr8B1esEq3KWoX15+3irOLx4Q7NdBIx+6IrRtp8CZWS\nRVqMnC+hroOAG2MneZ5plOA=\n-----END PRIVATE KEY-----\n",
6+
"client_email": "firebase-adminsdk-elxq9@rc-custom-test.iam.gserviceaccount.com",
7+
"client_id": "103984069070765900583",
8+
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
9+
"token_uri": "https://oauth2.googleapis.com/token",
10+
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
11+
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-elxq9%40rc-custom-test.iam.gserviceaccount.com",
12+
"universe_domain": "googleapis.com"
13+
}

firebase_admin/remote_config.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -185,21 +185,19 @@ def __init__(self, config_values):
185185
self._config_values = config_values # dictionary of param key to values
186186

187187
def get_boolean(self, key):
188-
return self.get_value(key).as_boolean()
188+
return self._get_value(key).as_boolean()
189189

190190
def get_string(self, key):
191-
return self.get_value(key).as_string()
191+
return self._get_value(key).as_string()
192192

193193
def get_int(self, key):
194-
return self.get_value(key).as_int()
194+
return self._get_value(key).as_int()
195195

196196
def get_float(self, key):
197-
return self.get_value(key).as_float()
197+
return self._get_value(key).as_float()
198198

199-
def get_value(self, key):
200-
if key in self._config_values:
201-
return self._config_values[key]
202-
return _Value('static')
199+
def _get_value(self, key):
200+
return self._config_values.get(key, _Value('static'))
203201

204202

205203
class _RemoteConfigService:

tests/test_remote_config.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,8 +331,7 @@ def test_evaluate_default_when_defined(self):
331331
template_data=ServerTemplateData('etag', template_data)
332332
)
333333
server_config = server_template.evaluate()
334-
assert server_config.get_value('dog_type').as_string() == 'shiba'
335-
assert server_config.get_value('dog_type').get_source() == 'default'
334+
assert server_config.get_string('dog_type') == 'shiba'
336335

337336
def test_evaluate_return_numeric_value(self):
338337
app = firebase_admin.get_app()

0 commit comments

Comments
 (0)