3

2 つの ~Factory factory_boy クラスから継承しようとしていますが、最初のクラスのみが継承されているようで、2 番目のクラスは無視されます。(彼らは共通の親を持っています。)

class BasicFactory(factory.DjangoModelFactory):
    # Meta class, some SubFactories and RelatedFactoriues, a post_generation method

class BasicFactoryWithExtraRelatedFactories(BasicFactory):
    another_related = factory.RelatedFactory(SomethingElseFactory, 'basic', etc)

class BasicFactoryWithExtraPostGeneration(BasicFactory):
    @factory.post_generation
    def post(self, create, extracted, **kwargs):
        """
        A replacement post_generation method
        """

class ExtraRelatedAndExtraPostGenerationFactory(BasicFactoryWithExtraRelatedFactories, BasicFactoryWithExtraPostGeneration)
    """
    This seems to inherit the extra RelatedFactories, but not the extra post_generation method.
    """

class ExtraRelatedAndExtraPostGenerationFactory(BasicFactoryWithExtraPostGeneration, BasicFactoryWithExtraRelatedFactories)
    """
    This seems to inherit the extra post_generation method, but not the extra RelatedFactories.
    """

両方を継承する方法はありますか?

これは困難な注文であることは承知していますが、これにより、私が抱えている問題に対する非常に素晴らしいソリューションが可能になり、必要なテスト ケースのすべての組み合わせを多重継承だけで簡単に作成できるようになります。(factory_boy でサポートするのはおそらく「単純」ではないことを認識しています。)

4

1 に答える 1