Exemple #1
0
def data():
    metric_names = set(widget_metrics)
    diff = flask.request.form['diff'].encode('UTF-8')

    metric_config = GenerateOptions.from_yaml(
        yaml.load(io.open('generate_config.yaml').read()), )
    parsers = get_metric_parsers_from_args(
        metric_config.metric_package_names,
        skip_defaults=False,
    )
    metrics = get_metrics(diff, parsers)
    metrics = [
        metric for metric in metrics
        if metric.value and metric.name in metric_names
    ]

    commit_deltas = sorted([
        CommitDeltaPresenter.from_data(
            metric.name,
            DeltaPresenter('javascript:;', metric.value),
        ) for metric in metrics
    ])
    return simplejson.dumps({
        'metrics':
        render_template('widget.mako', commit_deltas=commit_deltas)
    })
Exemple #2
0
def show(metric_name, start_timestamp, end_timestamp):
    start_timestamp = int(start_timestamp)
    end_timestamp = int(end_timestamp)

    metric_changes = sorted(
        logic.get_major_changes_for_metric(
            flask.g.db,
            start_timestamp,
            end_timestamp,
            metric_name,
        ))
    metric_changes = [(datetime.datetime.fromtimestamp(timestamp).strftime(
        '%Y-%m-%d %H:%M:%S', ), sha,
                       CommitDeltaPresenter.from_data(
                           metric_name,
                           DeltaPresenter('javascript:;', value),
                       )) for timestamp, sha, value in metric_changes]

    override_classname = ('color-override' if metric_name
                          in metric_config.color_overrides else '')

    rendered_template = render_template(
        'changes.mako',
        changes=metric_changes,
        override_classname=override_classname,
    )

    return simplejson.dumps({'body': rendered_template})
 def from_data(
     cls,
     metric_name,
     today_timestamp,
     offsets,
     current_values,
     metric_data,
 ):
     return cls(
         metric_name,
         metric_name in color_overrides,
         current_values[metric_name],
         tuple(
             DeltaPresenter(
                 flask.url_for(
                     'graph.show',
                     metric_name=metric_name,
                     start=str(timestamp),
                     end=str(today_timestamp),
                 ),
                 (current_values[metric_name] -
                  metric_data[time_name][metric_name]),
             ) for time_name, timestamp in offsets),
         flask.url_for('graph.all_data', metric_name=metric_name),
     )
Exemple #4
0
def show(sha):
    changes = logic.get_metric_changes(flask.g.db, sha)

    commit_deltas = sorted([
        CommitDeltaPresenter.from_data(
            metric_name, DeltaPresenter('javascript:;', change),
        )
        for metric_name, change in changes
    ])

    links = [
        (link_name, link.format(sha=sha))
        for link_name, link in metric_config.commit_links
    ]

    return render_template(
        'commit.mako',
        sha=sha,
        short_sha=sha[:8],
        commit_deltas=commit_deltas,
        links=links,
    )
def test_delta_classname_negative():
    delta = DeltaPresenter('url', -9001)
    assert delta.classname == 'metric-down'
def test_delta_classname_positive():
    delta = DeltaPresenter('url', 9001)
    assert delta.classname == 'metric-up'
def test_delta_classname_zero():
    delta = DeltaPresenter('url', 0)
    assert delta.classname == 'metric-none'