def test_delete(app): with app.app_context(): model = ops.create_product(type_id=1, name="to_be_deleted") ops.commit() product_id = model.product_id with app.app_context(): count = Product.query.count() model = ops.delete_product(product_id=product_id) ops.commit() with app.app_context(): model = Product.query.filter_by(product_id=product_id).one_or_none() assert model is None assert Product.query.count() == (count - 1)
def app(app_users): y = app_users # map1 -> beam1 # | # +---> beam2 # # map2 # map3 with y.app_context(): ops.create_product_relation_type( type_={ "type_id": 1, "name": "parent" }, reverse={ "type_id": 2, "name": "child" }, ) ops.create_product_type(type_id=1, name="map") ops.create_product_type(type_id=2, name="beam") ops.commit() with y.app_context(): ops.create_product( product_id=1, type_id=1, name="map1", ) ops.create_product( product_id=2, type_id=1, name="map2", ) ops.create_product( product_id=3, type_id=1, name="map3", ) ops.create_product( product_id=4, type_id=2, name="beam1", ) ops.create_product( product_id=5, type_id=2, name="beam2", ) ops.commit() with y.app_context(): ops.create_product_relation( relation_id=2, type_id=1, self_product_id=4, other_product_id=1, ) ops.create_product_relation( relation_id=4, type_id=1, self_product_id=5, other_product_id=4, ) ops.commit() yield y
def _test_create( app, paths=None, relations=None, attributes=None, posting_git_hub_user_id=None, ): kwargs = {"type_id": 1, "name": "new-product"} if paths is not None: kwargs["paths"] = paths if relations is not None: kwargs["relations"] = relations if attributes is not None: kwargs["attributes"] = attributes if posting_git_hub_user_id: kwargs["posting_git_hub_user_id"] = posting_git_hub_user_id with app.app_context(): count = Product.query.count() model = ops.create_product(**kwargs) assert model.name == "new-product" ops.commit() product_id = model.product_id assert product_id with app.app_context(): assert Product.query.count() == (count + 1) model = Product.query.filter_by(product_id=product_id).one() assert model.name == "new-product" if posting_git_hub_user_id: posting_git_hub_user = GitHubUser.query.filter_by( user_id=posting_git_hub_user_id).one() assert model.posting_git_hub_user == posting_git_hub_user else: assert model.posting_git_hub_user is None if paths is not None: expected = _normalize_paths(paths) actual = [p.path for p in model.paths] assert actual == expected else: assert model.paths == [] if relations is not None: expected = [(r["type_id"], r["product_id"]) for r in relations] actual = [(r.type_id, r.other_product_id) for r in model.relations] assert actual == expected else: assert model.relations == [] if attributes is None: attributes = {} expected_ids = [(a.iid, a.field_id) for a in model.type_.fields] # list of (type_field_association.iid, field.field_id) expected = { fid: (aid, attributes.get(fid)) for aid, fid in expected_ids } actual = _extract_attributes(model) # actual_field_ids = list(actual.keys()) assert actual == expected
def app(app_empty): y = app_empty user1 = GitHubUser(login="******", git_hub_id="04:User1") token1 = GitHubToken(token="39d86487d76a84087f1da599c872dac4473e5f07", scope="", user=user1) with y.app_context(): sa.session.add(user1) sa.session.add(token1) sa.session.commit() # map1 -> beam1 # | | # +--------+---> beam2 # # map2 # map3 with y.app_context(): ops.create_product_relation_type( type_={ "type_id": 1, "name": "parent", }, reverse={ "type_id": 2, "name": "child", }, ) ops.commit() with y.app_context(): ops.create_field( field_id=1, name="contact", type_=ops.FieldType.UnicodeText, ) ops.create_field( field_id=2, name="produced_by", type_=ops.FieldType.UnicodeText, ) ops.create_field( field_id=3, name="date_produced", type_=ops.FieldType.Date, ) ops.commit() with y.app_context(): ops.create_product_type( type_id=1, name="map", field_ids=[1, 2, 3], ) ops.create_product_type( type_id=2, name="beam", field_ids=[1, 2, 3], ) ops.commit() with y.app_context(): ops.create_product( type_id=1, product_id=1, name="map1", attributes={3: datetime.date(2020, 2, 1)}, paths=["site1:/path/to/map1", "site2:/another/way/map1"], ) ops.create_product( type_id=1, product_id=2, name="map2", attributes={3: datetime.date(2020, 2, 10)}, paths=["site1:/path/to/map2"], ) ops.create_product( type_id=1, product_id=3, name="map3", attributes={3: datetime.date(2020, 3, 19)}, paths=["site1:/path/to/map3", "site2:/another/way/map3"], ) ops.create_product( type_id=2, product_id=4, name="beam1", attributes={3: datetime.date(2020, 2, 5)}, paths=["site1:/path/to/beam1", "site2:/another/way/beam1"], ) ops.create_product( type_id=2, product_id=5, name="beam2", attributes={3: datetime.date(2020, 3, 4)}, paths=["site1:/path/to/beam2"], ) ops.commit() with y.app_context(): ops.create_product_relation( type_id=1, self_product_id=4, other_product_id=1, ) ops.create_product_relation( type_id=1, self_product_id=5, other_product_id=1, ) ops.create_product_relation( type_id=1, self_product_id=5, other_product_id=4, ) ops.commit() yield y
def app(app_users): y = app_users # Relation types: # parent <-> child # plaintiff <-> defendant # Products and Relations: # map1 -> beam1 # | | # +--------+---> beam2 # # map2 # map3 with y.app_context(): ops.create_product_relation_type( type_={ "type_id": 1, "name": "parent", "indef_article": "a", "singular": "parent", "plural": "parents", }, reverse={ "type_id": 2, "name": "child", "indef_article": "a", "singular": "child", "plural": "children", }, ) ops.create_product_relation_type( type_={ "type_id": 3, "name": "plaintiff", "indef_article": "a", "singular": "plaintiff", "plural": "plaintiffs", }, reverse={ "type_id": 4, "name": "defendant", "indef_article": "a", "singular": "defendant", "plural": "defendants", }, ) ops.commit() with y.app_context(): ops.create_field( field_id=1, name="contact", type_=ops.FieldType.UnicodeText, ) ops.create_field( field_id=2, name="produced_by", type_=ops.FieldType.UnicodeText, ) ops.create_field( field_id=3, name="date_produced", type_=ops.FieldType.Date, ) ops.commit() with y.app_context(): ops.create_product_type( type_id=1, name="map", order=2, indef_article="a", singular="map", plural="maps", icon="mdi-map", field_ids=[1, 2, 3], ) ops.create_product_type( type_id=2, name="beam", order=1, indef_article="a", singular="beam", plural="beams", icon="mdi-spotlight-beam", field_ids=[1, 2, 3], ) ops.commit() with y.app_context(): ops.create_product( type_id=1, product_id=1, name="map1", attributes={3: datetime.date(2020, 2, 1)}, paths=["site2:/another/way/map1"], ) ops.create_product( type_id=1, product_id=2, name="map2", attributes={3: datetime.date(2020, 2, 10)}, paths=["site1:/path/to/map2"], ) ops.create_product( type_id=1, product_id=3, name="map3", attributes={3: datetime.date(2020, 3, 19)}, paths=["site1:/path/to/map3", "site2:/another/way/map3"], ) ops.create_product( type_id=2, product_id=4, name="beam1", attributes={3: datetime.date(2020, 2, 5)}, paths=["site1:/path/to/beam1", "site2:/another/way/beam1"], ) ops.create_product( type_id=2, product_id=5, name="beam2", attributes={3: datetime.date(2020, 3, 4)}, paths=["site1:/path/to/beam2"], ) ops.commit() with y.app_context(): ops.create_product_file_path( product_id=1, path="site1:/path/to/map1", note="sample comment", ) ops.commit() with y.app_context(): ops.create_product_relation( type_id=1, self_product_id=4, other_product_id=1, ) ops.create_product_relation( type_id=1, self_product_id=5, other_product_id=1, ) ops.create_product_relation( type_id=1, self_product_id=5, other_product_id=4, ) ops.commit() yield y
def app(app_users): y = app_users with y.app_context(): ops.create_field( field_id=1, name="contact", type_=ops.FieldType.UnicodeText, ) ops.create_field( field_id=2, name="produced_by", type_=ops.FieldType.UnicodeText, ) ops.create_field( field_id=3, name="date_produced", type_=ops.FieldType.Date, ) ops.create_field( field_id=4, name="field_four", type_=ops.FieldType.UnicodeText, ) ops.create_field( field_id=5, name="field_five", type_=ops.FieldType.UnicodeText, ) ops.commit() with y.app_context(): ops.create_product_type( type_id=1, name="map", order=2, indef_article="a", singular="map", plural="maps", icon="mdi-map", field_ids=[1, 2, 3], ) ops.create_product_type( type_id=2, name="beam", order=1, indef_article="a", singular="beam", plural="beams", icon="mdi-spotlight-beam", field_ids=[1, 2, 3], ) ops.commit() with y.app_context(): ops.create_product( type_id=1, name="map1", attributes={3: datetime.date(2020, 2, 1)}, ) ops.create_product( type_id=1, name="map2", attributes={3: datetime.date(2020, 2, 10)}, ) ops.create_product( type_id=1, name="map3", attributes={3: datetime.date(2020, 3, 3)}, ) ops.commit() yield y
def app(app_users): y = app_users # Relation types: # parent <-> child # plaintiff <-> defendant # Relations: # map1 -> beam1 # | | # +--------+---> beam2 with y.app_context(): ops.create_product_relation_type( type_={ "type_id": 1, "name": "parent", "indef_article": "a", "singular": "parent", "plural": "parents", }, reverse={ "type_id": 2, "name": "child", "indef_article": "a", "singular": "child", "plural": "children", }, ) ops.create_product_relation_type( type_={ "type_id": 3, "name": "plaintiff", "indef_article": "a", "singular": "plaintiff", "plural": "plaintiffs", }, reverse={ "type_id": 4, "name": "defendant", "indef_article": "a", "singular": "defendant", "plural": "defendants", }, ) ops.create_product_type(type_id=1, name="map") ops.create_product_type(type_id=2, name="beam") ops.commit() with y.app_context(): ops.create_product( product_id=1, type_id=1, name="map1", ) ops.create_product( product_id=4, type_id=2, name="beam1", ) ops.create_product( product_id=5, type_id=2, name="beam2", ) ops.commit() with y.app_context(): ops.create_product_relation( type_id=1, self_product_id=4, other_product_id=1, ) ops.create_product_relation( type_id=1, self_product_id=5, other_product_id=1, ) ops.create_product_relation( type_id=1, self_product_id=5, other_product_id=4, ) ops.commit() yield y