2015-04-24 15 views
0

我在加載py.test期間收到FATAL: database "xxxxxxxxx" does not exist。這是從的管理形式,裝載未來凡由我有一個查詢集被傳遞到ModelChoiceFielddjango admin中的Queryset中斷遷移和py.test

class CustomChoiceField(forms.ModelChoiceField): 
    def __init__(self, queryset=None, *args, **kwargs): 
     return super().__init__(SomeModel.objects.limited_qs(), *args, **kwargs) 


class SomeModelForm(forms.ModelForm): 
    some_model = CustomChoiceField() 

    class Meta: 
     model = SomeModel 


class SomeModelAdmin(admin.ModelAdmin): 
    form = SomeModelForm 

我與PY相同的問題

formfield_overrides = { models.ForiegnKey : {'queryset': ... } } 

所有結果試過這種。測試

編輯

具有查詢集無論是在__init__會見hod或formfield_overrides也打破了遷移。

注意:這些全部工作正是我想讓他們在服務器上 - 他們只是阻止我運行任何測試。

我如何獲得這個傳遞(W/O有條件註冊我的管理的東西; _;我喜歡TDD)

+0

什麼你測試代碼像? – skyline75489

+0

我有200個測試,從API集成測試運行到存根用戶模型上的單元測試。堆棧跟蹤來自創建queryset的'__init__''。它甚至不會自行加載測試 - 只是出錯。根是'''python3.4/site-packages/_pytest/config.py''' – yarbelk

回答

0

我也有類似的問題,在我的情況下,問題是,在我的SomeModel.objects .limited_qs(),我調用另一個查詢集,如:

self.filter(another_model=AnotherModel.objects.get(xxx=1)) 

因此,要建立數據庫調用的測試數據庫創建之前執行的查詢集,導致「致命的數據庫不存在」