Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
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