Django-тестирование нескольких баз данных с автоматической маршрутизацией

Простая проблема: я успешно использую multi-db с настройкой автоматической маршрутизации, как описано на устаревшая БД (которая неуправляемая). Теперь хочу протестировать. Я уже установил testrunner, чтобы обойти управляемые проблема, и я могу подтвердить, что создаю базы данных, как и ожидалось.

Моя проблема в том, что маршрутизация базы данных все еще пытается просмотреть нетестовую базу данных. Как настроить файл routers.py для просмотра базы данных test_ в тестовом режиме и нетестовой базы данных в любое другое время.

Должно быть просто, но я бьюсь головой об стену из-за этого..

ВНЕШНЯЯ ПОМОЩЬ:

class PmCatalogRouter(object):
    """A router to control all database operations on models in
    the PmCatalog application"""

    def db_for_read(self, model, **hints):
        "Point all operations on pmCatalog models to 'catalog'"
        if model._meta.app_label == 'pmCatalog':
            return 'catalog'
        return None

    def db_for_write(self, model, **hints):
        "Point all operations on pmCatalog models to 'catalog'"
        if model._meta.app_label == 'pmCatalog':
            return 'catalog'
        return None

    def allow_syncdb(self, db, model):
        "Make sure the pmCatalog app only appears on the 'catalog' db"
        if db == 'catalog':
            return model._meta.app_label == 'pmCatalog'
        elif model._meta.app_label == 'pmCatalog':
            return False
        return None

Очень ценю дополнительные глазные яблоки на этом;)

Спасибо


person rh0dium    schedule 30.06.2011    source источник


Ответы (1)


Итак, вот что произошло. Оказывается, все это время он полностью работал, но две отдельные проблемы привели к тому, что мои тесты не прошли. В этом случае я тестирую методы запроса django против устаревших методов. Я не проходил свой тест, потому что устаревшие методы не смотрели на тестовую базу данных, а скорее на исходную базу данных. Я исправил эту проблему, а потом понял, что процедуры не создаются в testrunner.

Как только эти две проблемы были исправлены, все как по волшебству сошлось...

ХТХ кто-то.

person rh0dium    schedule 05.07.2011