예제 #1
0
def test_metric():
    conn = Model.setup_db()
    Metric.create_table(conn)
    metric = Metric.create(conn,
            created_at = datetime.now(),
            name = "mood",
            description = "On a scale of 1 to 10, 10 being best, rate your mood."
            )
    assert metric.id > 0

    MetricData.create_table(conn)

    p1 = MetricData.create(conn,
            created_at = datetime.now(),
            value = 7,
            metric_id = metric.id
            )
    assert p1.id > 0

    p2 = MetricData.create(conn,
            created_at = datetime.now(),
            value = 8,
            metric_id = metric.id
            )
    assert p2.id > 0

    latest = metric.latest(conn)
    assert latest.value == 8
    assert latest.id == p2.id

    datetimes, values = metric.ts(conn)

    assert values == [7, 8]
예제 #2
0
파일: metric.py 프로젝트: ananelson/ado
    def latest(self, conn=None):
        """
        Returns most recent MetricData point available.
        """
        if not conn:
            conn = self.conn

        sql = "select * from %s where metric_id = %s ORDER BY created_at DESC LIMIT 1"
        rows = conn.execute(sql % (MetricData.table_name(), self.id))
        row = rows.fetchone()
        if row:
            return MetricData.load(conn, row)
예제 #3
0
파일: metric.py 프로젝트: ananelson/ado
    def ts(self, conn=None):
        """
        Returns time series of all data points.
        """
        sql = "select * from %s where metric_id = %s ORDER BY created_at"

        datetimes = []
        values = []
        rows = conn.execute(sql % (MetricData.table_name(), self.id))
        for row in rows:
            datetimes.append(row['created_at'])
            values.append(row['value'])
        return datetimes, values
예제 #4
0
파일: survey.py 프로젝트: ananelson/ado
def record_metric(m, value="None"):
    c = ado.commands.conn()
    if m < 0:
        Metric.printall(c)
        raw_m = ado.commands.clean_input("Choose a metric number: ")
        if raw_m:
            m = int(raw_m)
        else:
            sys.stderr.write("No metric chosen.\n")
            sys.exit(1)

    if value == "None":
        metric = Metric.get(c, m)
        print "Record Metric %s) %s" % (metric.id, metric.name)
        print metric.description
        value = float(ado.commands.clean_input("> "))

    md = MetricData.create(c, metric_id=m, value=value, created_at=datetime.now())
    print md.display_line()