The model fixture doesn't appear to respect when a self attribute is used within a sub factory declaration. This does work as expected when using the factory fixture, however.
pytest-factoryboy version 2.8.1
factory-boy version 3.3.3
Here is an example that demonstrates the problem:
import factory
from pytest_factoryboy import register
class Foo:
def __init__(self, c):
self.c = c
class Bar:
def __init__(self, a, b):
self.a = a
self.b = b
class FooFactory(factory.Factory):
class Meta:
model = Foo
c = "blah"
class BarFactory(factory.Factory):
class Meta:
model = Bar
a = "foozgooz"
b = factory.SubFactory(FooFactory, c=factory.SelfAttribute("..a"))
register(FooFactory)
register(BarFactory)
def test_that_works(bar_factory):
bar = bar_factory()
assert bar.a == bar.b.c
def test_that_fails(bar):
assert bar.a == bar.b.c