Пример #1
0
def test_get_value_throws_if_nothing_is_stored():
    timespan_metric = metrics.TimespanMetricType(
        disabled=True,
        category="telemetry",
        lifetime=Lifetime.APPLICATION,
        name="timespan_metric",
        send_in_pings=["store1"],
        time_unit=TimeUnit.MILLISECOND,
    )

    with pytest.raises(ValueError):
        timespan_metric.test_get_value()
Пример #2
0
def test_disabled_timespans_must_not_record_data():
    timespan_metric = metrics.TimespanMetricType(
        disabled=True,
        category="telemetry",
        lifetime=Lifetime.APPLICATION,
        name="timespan_metric",
        send_in_pings=["store1"],
        time_unit=TimeUnit.MILLISECOND,
    )

    timespan_metric.start()
    timespan_metric.stop()

    assert not timespan_metric.test_has_value()
Пример #3
0
def test_set_raw_nanos():
    timespan_nanos = 6 * 1000000000

    timespan_metric = metrics.TimespanMetricType(
        disabled=False,
        category="telemetry",
        lifetime=Lifetime.APPLICATION,
        name="timespan_metric",
        send_in_pings=["store1"],
        time_unit=TimeUnit.SECOND,
    )

    timespan_metric.set_raw_nanos(timespan_nanos)
    assert 6 == timespan_metric.test_get_value()
Пример #4
0
def test_the_api_saves_to_secondary_pings():
    timespan_metric = metrics.TimespanMetricType(
        disabled=False,
        category="telemetry",
        lifetime=Lifetime.APPLICATION,
        name="timespan_metric",
        send_in_pings=["store1", "store2"],
        time_unit=TimeUnit.MILLISECOND,
    )

    timespan_metric.start()
    timespan_metric.stop()

    assert timespan_metric.test_has_value("store2")
    assert timespan_metric.test_get_value("store2") >= 0
Пример #5
0
def test_measure():
    timespan_metric = metrics.TimespanMetricType(
        disabled=False,
        category="telemetry",
        lifetime=Lifetime.APPLICATION,
        name="timespan_metric",
        send_in_pings=["store1"],
        time_unit=TimeUnit.NANOSECOND,
    )

    with timespan_metric.measure():
        time.sleep(0.1)

    assert timespan_metric.test_has_value()
    assert 0 < timespan_metric.test_get_value()
Пример #6
0
def test_measure_exception():
    timespan_metric = metrics.TimespanMetricType(
        disabled=False,
        category="telemetry",
        lifetime=Lifetime.APPLICATION,
        name="timespan_metric",
        send_in_pings=["store1"],
        time_unit=TimeUnit.NANOSECOND,
    )

    with pytest.raises(ValueError):
        with timespan_metric.measure():
            time.sleep(0.1)
            raise ValueError()

    assert not timespan_metric.test_has_value()
Пример #7
0
def test_the_api_must_correctly_cancel():
    timespan_metric = metrics.TimespanMetricType(
        disabled=False,
        category="telemetry",
        lifetime=Lifetime.APPLICATION,
        name="timespan_metric",
        send_in_pings=["store1"],
        time_unit=TimeUnit.MILLISECOND,
    )

    timespan_metric.start()
    timespan_metric.cancel()
    timespan_metric.stop()

    assert not timespan_metric.test_has_value()
    assert 1 == timespan_metric.test_get_num_recorded_errors(
        testing.ErrorType.INVALID_STATE)
Пример #8
0
def test_set_raw_nanos_does_nothing_when_timer_is_running():
    timespan_nanos = 6 * 1000000000

    timespan_metric = metrics.TimespanMetricType(
        disabled=False,
        category="telemetry",
        lifetime=Lifetime.APPLICATION,
        name="timespan_metric",
        send_in_pings=["store1"],
        time_unit=TimeUnit.SECOND,
    )

    timespan_metric.start()
    timespan_metric.set_raw_nanos(timespan_nanos)
    timespan_metric.stop()

    assert 6 != timespan_metric.test_get_value()
Пример #9
0
def test_records_an_error_if_started_twice():
    timespan_metric = metrics.TimespanMetricType(
        disabled=False,
        category="telemetry",
        lifetime=Lifetime.APPLICATION,
        name="timespan_metric",
        send_in_pings=["store1", "store2"],
        time_unit=TimeUnit.MILLISECOND,
    )

    timespan_metric.start()
    timespan_metric.start()
    timespan_metric.stop()

    assert timespan_metric.test_has_value("store2")
    assert timespan_metric.test_get_value("store2") >= 0
    assert 1 == timespan_metric.test_get_num_recorded_errors(
        testing.ErrorType.INVALID_STATE)
Пример #10
0
def test_value_unchanged_if_stopped_twice():
    timespan_metric = metrics.TimespanMetricType(
        disabled=False,
        category="telemetry",
        lifetime=Lifetime.APPLICATION,
        name="timespan_metric",
        send_in_pings=["store1"],
        time_unit=TimeUnit.MILLISECOND,
    )

    timespan_metric.start()
    timespan_metric.stop()

    assert timespan_metric.test_has_value()
    value = timespan_metric.test_get_value()
    assert value >= 0

    timespan_metric.stop()

    assert value == timespan_metric.test_get_value()