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
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
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()