def retrieve_related_attribute(self, region, srid, attribute, limit=None): entitytype = helpers.get_entitytype_by_id(self.conn, attribute["entitytype_id"]) datasource = helpers.get_datasource_by_id(self.conn, attribute["datasource_id"]) return retrieve_related_attribute(self.conn, self.site_srid, region, srid, datasource, entitytype, attribute["name"], limit)
def retrieve_related_trend(self, region, srid, trend, timestamp, limit=None): entitytype = helpers.get_entitytype_by_id(self.conn, trend["entitytype_id"]) datasource = helpers.get_datasource_by_id(self.conn, trend["datasource_id"]) return retrieve_related_trend(self.conn, self.site_srid, region, srid, datasource, entitytype, trend["name"], trend["granularity"], timestamp, limit)
def get_related_entities_by_query(conn, minerva_query, relation_group_name, target_entitytype_id): # Quick Hack: get_entities_by_query -> get_related_entities on result entities = get_entities_by_query(conn, minerva_query, relation_group_name) attr_names = ("id", "dn", "entitytype_id") related_entities = [] target_entitytype = get_entitytype_by_id(conn, target_entitytype_id) for entity in entities: if entity["entitytype_id"] == target_entitytype_id: related_entities.append(entity) else: source_entitytype = get_entitytype_by_id(conn, entity["entitytype_id"]) relationtype_name = "{}->{}".format(source_entitytype.name, target_entitytype.name) try: get_relationtype_id(conn, relationtype_name) except NoSuchRelationTypeError: continue else: query = ( " SELECT target_id, e.dn, e.entitytype_id" " FROM relation.\"{0}\"" " JOIN directory.entity e ON e.id = target_id" " AND e.entitytype_id = %s" " WHERE source_id = %s").format(relationtype_name) with closing(conn.cursor()) as cursor: cursor.execute(query, (target_entitytype_id, entity["id"])) rows = cursor.fetchall() if rows is not None: related_entities.extend([dict(zip(attr_names, row)) for row in rows]) return related_entities
def store_raw(self, datasource, raw_datapackage): if not raw_datapackage.is_empty(): with closing(self.conn.cursor()) as cursor: datapackage = raw_datapackage.refine(cursor) self.conn.commit() dn = raw_datapackage.rows[0][0] entity = get_entity(self.conn, dn) entitytype = get_entitytype_by_id(self.conn, entity.entitytype_id) self.store(datasource, entitytype, datapackage)
def test_get_entitytype_by_id(): """ Check normal functioning of get_entitytype_by_id, with an existing entitytype. """ entitytype_id = 42 entitytype_name = "Dummy1" entitytype_descr = "Description of Dummy1" mock_conn = mock.Mock() mock_cursor = mock.Mock() mock_cursor.fetchone.return_value = (entitytype_name, entitytype_descr) mock_conn.cursor.return_value = mock_cursor entitytype = helpers.get_entitytype_by_id(mock_conn, entitytype_id) assert entitytype.id == entitytype_id assert entitytype.name == entitytype_name assert entitytype.description == entitytype_descr