def test_extend_factory_with_differing_associations(self):
        Factory.define(Tomato, color=None)
        Factory.define(Vine, tomatoes=Factory.many(
            Factory.association(Tomato),
            Factory.association(Tomato)
        ))

        Factory.extend(Vine) (
            "with special tomatoes",
            tomatoes=Factory.many(
                Factory.association(Tomato, color="red"),
                Factory.association(Tomato, color="green")
            )
        )

        pure_vine = Factory(Vine)
        rich_vine = Factory(Vine, "with special tomatoes")

        assert_equals("green", rich_vine.tomatoes[1].color)
        assert_equals(None, pure_vine.tomatoes[1].color)
    def test_association_many_to_one(self):
        Factory.define(Vine, tomatoes=Factory.many(
            Factory.association(Tomato, color="red"),
            Factory.association(Tomato, color="green")
        ))

        Factory.define(Tomato)
        
        v = Factory(Vine)
        tomato = v.tomatoes[0]
        assert_is_instance(tomato, Tomato)
        assert_true(tomato is tomato)
        assert_equals("red", tomato.color)

        tomato = v.tomatoes[1]
        assert_is_instance(tomato, Tomato)
        assert_true(tomato is tomato)
        assert_equals("green", tomato.color)

        assert_false(tomato is Factory(Vine).tomatoes[1])