@@ -34,20 +34,27 @@ def integration_conf(request):
3434 return conftest .integration_conf (request )
3535
3636
37- @pytest .fixture (autouse = True , scope = 'module' )
38- def default_app (request ):
37+ @pytest .fixture (scope = 'module' )
38+ def app (request ):
3939 cred , project_id = integration_conf (request )
4040 ops = {
4141 'databaseURL' : 'https://{0}.firebaseio.com' .format (project_id ),
4242 }
43- return firebase_admin .initialize_app (cred , ops )
43+ return firebase_admin .initialize_app (cred , ops , name = 'integration-db' )
44+
45+
46+ @pytest .fixture (scope = 'module' , autouse = True )
47+ def default_app (request ):
48+ # Overwrites the default_app fixture in conftest.py.
49+ # This test suite should not use the default app. Use the app fixture instead.
50+ pass
4451
4552
4653@pytest .fixture (scope = 'module' )
47- def update_rules ():
54+ def update_rules (app ):
4855 with open (testutils .resource_filename ('dinosaurs_index.json' )) as rules_file :
4956 new_rules = json .load (rules_file )
50- client = db .reference ()._client
57+ client = db .reference ('' , app )._client
5158 rules = client .body ('get' , '/.settings/rules.json' )
5259 existing = rules .get ('rules' )
5360 if existing != new_rules :
@@ -60,7 +67,7 @@ def testdata():
6067 return json .load (dino_file )
6168
6269@pytest .fixture (scope = 'module' )
63- def testref (update_rules , testdata ):
70+ def testref (update_rules , testdata , app ):
6471 """Adds the necessary DB indices, and sets the initial values.
6572
6673 This fixture is attached to the module scope, and therefore is guaranteed to run only once
@@ -70,7 +77,7 @@ def testref(update_rules, testdata):
7077 Reference: A reference to the test dinosaur database.
7178 """
7279 del update_rules
73- ref = db .reference ('_adminsdk/python/dinodb' )
80+ ref = db .reference ('_adminsdk/python/dinodb' , app )
7481 ref .set (testdata )
7582 return ref
7683
@@ -347,18 +354,18 @@ def none_override_app(request, update_rules):
347354class TestAuthVariableOverride (object ):
348355 """Test cases for database auth variable overrides."""
349356
350- def init_ref (self , path ):
351- admin_ref = db .reference (path )
357+ def init_ref (self , path , app ):
358+ admin_ref = db .reference (path , app )
352359 admin_ref .set ('test' )
353360 assert admin_ref .get () == 'test'
354361
355362 def check_permission_error (self , excinfo ):
356363 assert isinstance (excinfo .value , db .ApiCallError )
357364 assert 'Reason: Permission denied' in str (excinfo .value )
358365
359- def test_no_access (self , override_app ):
366+ def test_no_access (self , app , override_app ):
360367 path = '_adminsdk/python/admin'
361- self .init_ref (path )
368+ self .init_ref (path , app )
362369 user_ref = db .reference (path , override_app )
363370 with pytest .raises (db .ApiCallError ) as excinfo :
364371 assert user_ref .get ()
@@ -368,18 +375,18 @@ def test_no_access(self, override_app):
368375 user_ref .set ('test2' )
369376 self .check_permission_error (excinfo )
370377
371- def test_read (self , override_app ):
378+ def test_read (self , app , override_app ):
372379 path = '_adminsdk/python/protected/user2'
373- self .init_ref (path )
380+ self .init_ref (path , app )
374381 user_ref = db .reference (path , override_app )
375382 assert user_ref .get () == 'test'
376383 with pytest .raises (db .ApiCallError ) as excinfo :
377384 user_ref .set ('test2' )
378385 self .check_permission_error (excinfo )
379386
380- def test_read_write (self , override_app ):
387+ def test_read_write (self , app , override_app ):
381388 path = '_adminsdk/python/protected/user1'
382- self .init_ref (path )
389+ self .init_ref (path , app )
383390 user_ref = db .reference (path , override_app )
384391 assert user_ref .get () == 'test'
385392 user_ref .set ('test2' )
@@ -391,9 +398,9 @@ def test_query(self, override_app):
391398 user_ref .order_by_key ().limit_to_first (2 ).get ()
392399 self .check_permission_error (excinfo )
393400
394- def test_none_auth_override (self , none_override_app ):
401+ def test_none_auth_override (self , app , none_override_app ):
395402 path = '_adminsdk/python/public'
396- self .init_ref (path )
403+ self .init_ref (path , app )
397404 public_ref = db .reference (path , none_override_app )
398405 assert public_ref .get () == 'test'
399406
0 commit comments