def test_final_with_message(capsys): check = Check() check.add_metric('Memory', 4500000, 'B', '4M:', '6M:', convert_metric=True, perf_data_precision=3) check.add_metric('CPU', 7, '%', '20:', '50:', perf_data_precision=3) check.add_message('CPU is OK') with pytest.raises(SystemExit) as e: check.final() assert e.value.code == 2 assert capsys.readouterr().out == ( 'METRIC CRITICAL - Memory is 4.29MB, CPU is OK | Memory=4500000.000B;4M:;6M: CPU=7.000%;20:;50:{0}' .format(os.linesep))
def test_final_with_obj(capsys): check = Check() check.add_metric_obj( Metric('Memory', 4500000, 'B', '4M:', '6M:', convert_metric=True)) check.add_metric_obj(Metric('CPU', 7, '%', '20:', '50:')) with pytest.raises(SystemExit) as e: check.final() assert e.value.code == 2 assert capsys.readouterr().out == ( 'METRIC CRITICAL - Memory is 4.29MB, CPU is 7% | Memory=4500000B;4M:;6M: CPU=7%;20:;50:{0}' .format(os.linesep))
def test_add_metric(): check = Check() check.add_metric('Memory', 4500000, 'bytes', '4M:', '6M:') check.add_metric('CPU', 7, '%', '20:', '50:') assert len(check.metrics) == 2 for metric in check.metrics: assert isinstance(metric, Metric)
def test_final_per_second_UOM(capsys): check = Check() check.add_metric('Outbound Objects', 100, 'per_second', '50', '150', summary_precision=0, perf_data_precision=0) with pytest.raises(SystemExit) as e: check.final() assert e.value.code == 1 assert capsys.readouterr().out == ( "METRIC WARNING - Outbound Objects is 100/s | 'Outbound Objects'=100per_second;50;150{0}" .format(os.linesep))
def test_exit(capsys, status, expected): with pytest.raises(SystemExit) as e: Check().__getattribute__('exit_{0}'.format(status))('something') assert e.value.code == expected assert capsys.readouterr().out == 'METRIC {0} - something{1}'.format( status.upper(), os.linesep)
def test_add_metric_invalid_metric_name(metric_name, expected): check = Check() with pytest.raises(InvalidMetricName) as ex: check.add_metric(metric_name, 4500000, 'B', '4M:', '6M:') assert str(ex.value) == expected