2010-11-03 7 views
11

У меня есть две базы данных, которые использует мой сайт, и у меня есть приложение, которое использует их оба. Мне нужно написать TestCase, который загружает приборы для обеих баз данных. Я использую маршрутизатор DB, который отлично работает в процессе производства, но в рамках тестирования Django настаивает на использовании базы данных по умолчанию для всех приборов, даже для моделей, которые указывают другую базу данных. Как я могу сказать Django, чтобы запустить прибор против другой базы данных?django - указать базу данных для приборов TestCase

Мой TestCase определен список:

class VerifierTestCase(TestCase): 
    fixtures = ['zipcodes_test.json', 'all_states.json', 'wtf.json'] 
    multi_db = True 
+0

Неужели кто-нибудь нашел ответ для этого? Не удается получить привязки, чтобы не вся загрузка в «default» – zenWeasel

+0

Неужели кто-нибудь нашел ответ на это? –

ответ

4

Существует на самом деле ошибка в Django, которая заставляет его игнорировать имя на основе БД конкретных указателей, если указать полное имя арматуры.

так что если вы fixtures = ["mydata.default.yaml", "mydata.myotherdatabase.yaml"]

Она будет загружать оба приспособления в базу данных по умолчанию.

Но если вы fixtures = ['mydata']

Это будет правильно загрузить. Это справедливо и для имен файлов, специфичных для dbengine (например, mydata.default.postgresql.sql).

+0

К сожалению, это не относится к Django 1.6. Я получаю сообщение об ошибке «UserWarning: нет привязки с именем« migration_test_data »found», когда я пытаюсь это сделать. – CoreDumpError

+0

@CoreDumpError, я также получил предупреждение, но, приборы были загружены правильно. Я думаю, что предупреждения являются своего рода ошибкой. Я выпустил билет об этом: https://code.djangoproject.com/ticket/24680#ticket – ZZY