Beispiel #1
0
def test_duration(metrics_session,
                  duration_metric,
                  mock_task):
    entry1 = Duration(duration_metric, mock_task, timedelta(hours=1))
    entry2 = Duration(duration_metric, mock_task, timedelta(hours=2))

    metrics_session.add(entry1)
    metrics_session.add(entry2)

    metrics_session.commit()

    # Test aggregation
    total_duration = Duration.total(duration_metric, mock_task, metrics_session)
    assert isinstance(total_duration, timedelta)
    assert total_duration == timedelta(hours=3)

    # Test individual metrics
    persisted_1 = metrics_session.query(Duration)\
        .filter_by(metric_id=duration_metric.id,
                   task_id=mock_task.id,
                   id=entry1.id)\
        .one()
    persisted_2 = metrics_session.query(Duration) \
        .filter_by(metric_id=duration_metric.id,
                   task_id=mock_task.id,
                   id=entry2.id) \
        .one()

    assert persisted_1.value == timedelta(hours=1)
    assert persisted_2.value == timedelta(hours=2)