Viele-zu-viele-Beziehung in factory_boy?

8

Ich versuche, eine Viele-zu-Viele-Beziehung zwischen zwei Django-Modellen mit factory_boy zu testen. Die factory_boy-Dokumentation scheint das nicht zu diskutieren und ich habe Probleme herauszufinden, was ich falsch mache. Wenn ich den ersten Test ausführe, bekomme ich den Fehler "AttributeError: 'Pizza' Objekt hat kein Attribut 'topping'". Ich bekomme einen ähnlichen Fehler für den zweiten Test.

Wenn ich die Tests im Debugger durchführe, sehe ich ein "toppings" -Objekt, aber es versteht nicht, wie man den Namen daraus abruft. Habe ich die _prepare-Methode von PizzaFactory richtig definiert? Wie greifen Sie auf den Namen in einer Tabelle aus der anderen Tabelle zu, wenn Sie eine Viele-zu-Viele-Beziehung haben?

Danke.

models.py:

%Vor%

factories.py:

%Vor%

tests.py

%Vor%     
William 24.01.2013, 22:26
quelle

2 Antworten

12

Ich glaube, Sie müssen den @factory.post_generation Dekorator verwenden:

%Vor%

Dann würden Sie es in tests.py pizza = PizzaFactory.create(toppings=(topping1, topping2, tooping3))

nennen

Von Ссылка .

    
Bees 20.11.2013 10:41
quelle
3
___ tag123unittesting ___ Unit Testing ist eine Methode, bei der einzelne Quellcode-Einheiten auf ihre Tauglichkeit getestet werden. ___ qstnhdr ___ Viele-zu-viele-Beziehung in factory_boy? ___ tag123djangotesting ___ Django ist ein High-Level-Python-Web-Framework, das schnelle Entwicklung und sauberes, pragmatisches Design fördert. In diesem Tag werden Tests für Ihre Django-Apps geschrieben und ausgeführt. ___ tag123factoryboy ___ Ein Test Fixtures Ersatz für Python basierend auf Factory_Girl von thoughtbot für Ruby (Python). ___ answer20093655 ___

Ich glaube, Sie müssen den %code% Dekorator verwenden:

%Vor%

Dann würden Sie es in tests.py %code%

nennen

Von Ссылка .

    
___ qstntxt ___

Ich versuche, eine Viele-zu-Viele-Beziehung zwischen zwei Django-Modellen mit factory_boy zu testen. Die factory_boy-Dokumentation scheint das nicht zu diskutieren und ich habe Probleme herauszufinden, was ich falsch mache. Wenn ich den ersten Test ausführe, bekomme ich den Fehler "AttributeError: 'Pizza' Objekt hat kein Attribut 'topping'". Ich bekomme einen ähnlichen Fehler für den zweiten Test.

Wenn ich die Tests im Debugger durchführe, sehe ich ein "toppings" -Objekt, aber es versteht nicht, wie man den Namen daraus abruft. Habe ich die _prepare-Methode von PizzaFactory richtig definiert? Wie greifen Sie auf den Namen in einer Tabelle aus der anderen Tabelle zu, wenn Sie eine Viele-zu-Viele-Beziehung haben?

Danke.

models.py:

%Vor%

factories.py:

%Vor%

tests.py

%Vor%     
___
klen 30.04.2014 12:24
quelle