16
16
import collections
17
17
import datetime
18
18
import json
19
+ import sys
19
20
20
21
import pytest
21
22
from requests import adapters
@@ -148,6 +149,7 @@ def test_get_value(self, data):
148
149
assert recorder [0 ].method == 'GET'
149
150
assert recorder [0 ].url == 'https://test.firebaseio.com/test.json'
150
151
assert recorder [0 ].headers ['Authorization' ] == 'Bearer mock-token'
152
+ assert recorder [0 ].headers ['User-Agent' ] == db ._USER_AGENT
151
153
152
154
@pytest .mark .parametrize ('data' , valid_values )
153
155
def test_order_by_query (self , data ):
@@ -233,7 +235,7 @@ def test_update_children_default(self):
233
235
assert len (recorder ) is 0
234
236
235
237
@pytest .mark .parametrize ('update' , [
236
- None , {}, {None :'foo' }, {'foo' : None }, '' , 'foo' , 0 , 1 , list (), tuple ()
238
+ None , {}, {None :'foo' }, {'foo' : None }, '' , 'foo' , 0 , 1 , list (), tuple (), _Object ()
237
239
])
238
240
def test_set_invalid_update (self , update ):
239
241
ref = db .reference ('/test' )
@@ -253,6 +255,7 @@ def test_push(self, data):
253
255
assert recorder [0 ].url == 'https://test.firebaseio.com/test.json'
254
256
assert json .loads (recorder [0 ].body .decode ()) == data
255
257
assert recorder [0 ].headers ['Authorization' ] == 'Bearer mock-token'
258
+ assert recorder [0 ].headers ['User-Agent' ] == db ._USER_AGENT
256
259
257
260
def test_push_default (self ):
258
261
ref = db .reference ('/test' )
@@ -263,6 +266,7 @@ def test_push_default(self):
263
266
assert recorder [0 ].url == 'https://test.firebaseio.com/test.json'
264
267
assert json .loads (recorder [0 ].body .decode ()) == ''
265
268
assert recorder [0 ].headers ['Authorization' ] == 'Bearer mock-token'
269
+ assert recorder [0 ].headers ['User-Agent' ] == db ._USER_AGENT
266
270
267
271
def test_push_none_value (self ):
268
272
ref = db .reference ('/test' )
@@ -278,6 +282,7 @@ def test_delete(self):
278
282
assert recorder [0 ].method == 'DELETE'
279
283
assert recorder [0 ].url == 'https://test.firebaseio.com/test.json'
280
284
assert recorder [0 ].headers ['Authorization' ] == 'Bearer mock-token'
285
+ assert recorder [0 ].headers ['User-Agent' ] == db ._USER_AGENT
281
286
282
287
def test_get_root_reference (self ):
283
288
ref = db .reference ()
@@ -344,6 +349,7 @@ def test_get_value(self):
344
349
assert recorder [0 ].method == 'GET'
345
350
assert recorder [0 ].url == 'https://test.firebaseio.com/test.json?' + query_str
346
351
assert recorder [0 ].headers ['Authorization' ] == 'Bearer mock-token'
352
+ assert recorder [0 ].headers ['User-Agent' ] == db ._USER_AGENT
347
353
348
354
def test_set_value (self ):
349
355
ref = db .reference ('/test' )
@@ -356,6 +362,7 @@ def test_set_value(self):
356
362
assert recorder [0 ].url == 'https://test.firebaseio.com/test.json?' + query_str
357
363
assert json .loads (recorder [0 ].body .decode ()) == data
358
364
assert recorder [0 ].headers ['Authorization' ] == 'Bearer mock-token'
365
+ assert recorder [0 ].headers ['User-Agent' ] == db ._USER_AGENT
359
366
360
367
def test_order_by_query (self ):
361
368
ref = db .reference ('/test' )
@@ -367,6 +374,7 @@ def test_order_by_query(self):
367
374
assert recorder [0 ].method == 'GET'
368
375
assert recorder [0 ].url == 'https://test.firebaseio.com/test.json?' + query_str
369
376
assert recorder [0 ].headers ['Authorization' ] == 'Bearer mock-token'
377
+ assert recorder [0 ].headers ['User-Agent' ] == db ._USER_AGENT
370
378
371
379
def test_range_query (self ):
372
380
ref = db .reference ('/test' )
@@ -379,6 +387,7 @@ def test_range_query(self):
379
387
assert recorder [0 ].method == 'GET'
380
388
assert recorder [0 ].url == 'https://test.firebaseio.com/test.json?' + query_str
381
389
assert recorder [0 ].headers ['Authorization' ] == 'Bearer mock-token'
390
+ assert recorder [0 ].headers ['User-Agent' ] == db ._USER_AGENT
382
391
383
392
384
393
class TestDatabseInitialization (object ):
@@ -407,7 +416,7 @@ def test_valid_db_url(self, url):
407
416
408
417
@pytest .mark .parametrize ('url' , [
409
418
None , '' , 'foo' , 'http://test.firebaseio.com' , 'https://google.com' ,
410
- True , False , 1 , 0 , dict (), list (), tuple (),
419
+ True , False , 1 , 0 , dict (), list (), tuple (), _Object ()
411
420
])
412
421
def test_invalid_db_url (self , url ):
413
422
firebase_admin .initialize_app (credentials .Base (), {'databaseURL' : url })
@@ -428,7 +437,8 @@ def test_valid_auth_override(self, override):
428
437
encoded = json .dumps (override , separators = (',' , ':' ))
429
438
assert ref ._client ._auth_override == 'auth_variable_override={0}' .format (encoded )
430
439
431
- @pytest .mark .parametrize ('override' , ['' , 'foo' , 0 , 1 , True , False , list (), tuple ()])
440
+ @pytest .mark .parametrize ('override' , [
441
+ '' , 'foo' , 0 , 1 , True , False , list (), tuple (), _Object ()])
432
442
def test_invalid_auth_override (self , override ):
433
443
firebase_admin .initialize_app (credentials .Base (), {
434
444
'databaseURL' : 'https://test.firebaseio.com' ,
@@ -448,6 +458,11 @@ def test_app_delete(self):
448
458
with pytest .raises (ValueError ):
449
459
db .reference ()
450
460
461
+ def test_user_agent_format (self ):
462
+ expected = 'Firebase/HTTP/{0}/{1}.{2}/AdminPython' .format (
463
+ firebase_admin .__version__ , sys .version_info .major , sys .version_info .minor )
464
+ assert db ._USER_AGENT == expected
465
+
451
466
452
467
@pytest .fixture (params = ['foo' , '$key' , '$value' ])
453
468
def initquery (request ):
@@ -472,7 +487,7 @@ class TestQuery(object):
472
487
ref = db .Reference (path = 'foo' )
473
488
474
489
@pytest .mark .parametrize ('path' , [
475
- '' , None , '/' , '/foo' , 0 , 1 , True , False , dict (), list (), tuple (),
490
+ '' , None , '/' , '/foo' , 0 , 1 , True , False , dict (), list (), tuple (), _Object (),
476
491
'$foo' , '.foo' , '#foo' , '[foo' , 'foo]' , '$key' , '$value' , '$priority'
477
492
])
478
493
def test_invalid_path (self , path ):
@@ -519,7 +534,7 @@ def test_multiple_limits(self):
519
534
with pytest .raises (ValueError ):
520
535
query .limit_to_first (1 )
521
536
522
- @pytest .mark .parametrize ('limit' , [None , - 1 , 'foo' , 1.2 , list (), dict (), tuple ()])
537
+ @pytest .mark .parametrize ('limit' , [None , - 1 , 'foo' , 1.2 , list (), dict (), tuple (), _Object () ])
523
538
def test_invalid_limit (self , limit ):
524
539
query = self .ref .order_by_child ('foo' )
525
540
with pytest .raises (ValueError ):
0 commit comments