Esempio n. 1
0
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_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
Esempio n. 3
0
    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
Esempio n. 4
0
    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
Esempio n. 5
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