Пример #1
0
    def test_product_belongs_to_many_worker(self):
        product = Product(name="foo")

        p1 = Paintwork(name="p1")
        p2 = Paintwork(name="p2")

        s1 = Sculptor(name="s1")
        s2 = Sculptor(name="s2")

        product.sculptors.append(s1)
        product.sculptors.append(s2)
        product.paintworks.append(p1)
        product.paintworks.append(p2)

        product.save()
        assert isinstance(product.sculptors, list)
        assert len(product.sculptors) == 2
        assert isinstance(product.paintworks, list)
        assert len(product.paintworks) == 2
Пример #2
0
    def test_worker_has_many_products(self):
        paintwork = Paintwork(name="someone")
        sculptor = Sculptor(name="somebody")
        products = [Product(name="a"), Product(name="b")]

        paintwork.products.extend(products)
        sculptor.products.extend(products)
        paintwork.save()
        sculptor.save()
        assert isinstance(paintwork.products, list)
        assert len(paintwork.products) == 2
        assert isinstance(sculptor.products, list)
        assert len(sculptor.products) == 2
Пример #3
0
    def test_delete_product_and_association_but_not_effect_worker(self, session):
        from figure_hook.Models.relation_table import (product_paintwork_table,
                                                       product_sculptor_table)
        p = Product(name="foo")
        master = Sculptor(name="master")
        newbie = Paintwork(name="newbie")

        p.paintworks.append(newbie)
        p.sculptors.append(master)
        p.save()
        session.commit()

        Product.destroy([p.id])
        session.commit()

        s_asso = session.query(product_sculptor_table).all()
        p_asso = session.query(product_paintwork_table).all()
        assert not s_asso
        assert not p_asso
        assert Sculptor.all()
        assert Paintwork.all()