def test_use_primary_db(): local = amo_models.multidb.pinning._locals assert not getattr(local, 'pinned', False) with amo_models.use_primary_db(): assert local.pinned with amo_models.use_primary_db(): assert local.pinned assert local.pinned assert not local.pinned
def test_translations_reading_from_multiple_db_pinning(self): with patch.object(django.db.connections, 'databases', self.mocked_dbs): # Make sure we are in a clean environnement. self.reset_queries() with use_primary_db(): TranslatedModel.objects.get(pk=1) assert len(connections['default'].queries) == 2 assert len(connections['slave-1'].queries) == 0 assert len(connections['slave-2'].queries) == 0
def database(): # check database connection from olympia.addons.models import Addon status = '' try: Addon.unfiltered.exists() except Exception as e: status = f'Failed to connect to replica database: {e}' monitor_log.critical(status) else: with use_primary_db(): try: Addon.unfiltered.exists() except Exception as e: status = f'Failed to connect to primary database: {e}' monitor_log.critical(status) return status, None