Django тестирование multi-db с автоматической маршрутизацией - PullRequest
1 голос
/ 01 июля 2011

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

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

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

FWIW:

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

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

Спасибо

1 Ответ

3 голосов
/ 05 июля 2011

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

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

HTH кто-то.

...