Ejemplo n.º 1
0
def test_default_verbose_and_timeout():
    Check.verbose = 0
    Check.timeout = 5
    c = Check()
    c.run()
    assert 0 == c.verbose
    assert 5 == c.timeout
Ejemplo n.º 2
0
def test_run():
    c = Check()
    output, exitcode = c.run(2, 20)
    assert 2 == c.verbose
    assert 20 == c.timeout
    assert 'UNKNOWN - no check results\n' == output
    assert 3 == exitcode
Ejemplo n.º 3
0
    def test_first_resource_sets_name(self):
        class MyResource(nagiosplugin.Resource):
            pass

        c = Check()
        self.assertEqual('', c.name)
        c.add(MyResource())
        self.assertEqual('MyResource', c.name)
Ejemplo n.º 4
0
    def test_evaluate_resource_looks_up_context(self):
        class R2_MetricCustomContext(nagiosplugin.Resource):
            def probe(self):
                return [nagiosplugin.Metric('bar', 2)]

        ctx = nagiosplugin.ScalarContext('bar', '1', '1')
        c = Check(ctx)
        c._evaluate_resource(R2_MetricCustomContext())
        self.assertEqual(c.results[0].metric.contextobj, ctx)
Ejemplo n.º 5
0
    def test_evaluate_resource_looks_up_context(self):
        class R2_MetricCustomContext(nagiosplugin.Resource):
            def probe(self):
                return [nagiosplugin.Metric('bar', 2)]

        ctx = nagiosplugin.ScalarContext('bar', '1', '1')
        c = Check(ctx)
        c._evaluate_resource(R2_MetricCustomContext())
        self.assertEqual(c.results[0].metric.contextobj, ctx)
Ejemplo n.º 6
0
    def test_first_resource_sets_name(self):

        class MyResource(nagiosplugin.Resource):
            pass

        c = Check()
        self.assertEqual('', c.name)
        c.add(MyResource())
        self.assertEqual('MyResource', c.name)
Ejemplo n.º 7
0
    def test_evaluate_resource_catches_checkerror(self):
        class R3_Faulty(nagiosplugin.Resource):
            def probe(self):
                raise nagiosplugin.CheckError('problem')

        c = Check()
        c._evaluate_resource(R3_Faulty())
        result = c.results[0]
        self.assertEqual(nagiosplugin.Unknown, result.state)
        self.assertEqual('problem', result.hint)
Ejemplo n.º 8
0
    def test_evaluate_resource_catches_checkerror(self):
        class R3_Faulty(nagiosplugin.Resource):
            def probe(self):
                raise nagiosplugin.CheckError('problem')

        c = Check()
        c._evaluate_resource(R3_Faulty())
        result = c.results[0]
        self.assertEqual(nagiosplugin.Unknown, result.state)
        self.assertEqual('problem', result.hint)
Ejemplo n.º 9
0
 def test_execute(self):
     def fake_execute(_runtime_obj, verbose, timeout):
         self.assertEqual(2, verbose)
         self.assertEqual(20, timeout)
     r = nagiosplugin.Runtime()
     r.execute = fake_execute
     Check().main(2, 20)
Ejemplo n.º 10
0
 def test_check_should_accept_resource_returning_bare_metric(self):
     class R_ReturnsBareMetric(nagiosplugin.Resource):
         def probe(self):
             return nagiosplugin.Metric('foo', 0, context='default')
     res = R_ReturnsBareMetric()
     c = Check(res)
     c()
     self.assertIn(res, c.resources)
Ejemplo n.º 11
0
    def test_call_evaluates_resources_and_compacts_perfdata(self):
        class R4_NoPerfdata(nagiosplugin.Resource):
            def probe(self):
                return [nagiosplugin.Metric('m4', 4, context='null')]

        c = Check(R1_MetricDefaultContext(), R4_NoPerfdata())
        c()
        self.assertEqual(['foo', 'm4'], [res.metric.name for res in c.results])
        self.assertEqual(['foo=1'], c.perfdata)
Ejemplo n.º 12
0
 def test_utf8(self):
     class UTF8(nagiosplugin.Resource):
         def probe(self):
             return nagiosplugin.Metric('utf8', 8, context='utf8')
     c = Check(
         UTF8(), nagiosplugin.ScalarContext(
             'utf8', '1:1', fmt_metric='über {value}'))
     c()
     self.assertEqual('über 8 (outside range 1:1)', c.summary_str)
     self.assertEqual(['warning: über 8 (outside range 1:1)'],
                      c.verbose_str)
Ejemplo n.º 13
0
    def test_evaluate_bare_state_is_autowrapped_in_result(self):
        metric = nagiosplugin.Metric('m5', 0)

        class R5_DefaultMetric(nagiosplugin.Resource):
            def probe(self):
                return [metric]

        class BareStateContext(nagiosplugin.Context):
            def evaluate(self, metric, resource):
                return nagiosplugin.Ok

        c = Check(R5_DefaultMetric(), BareStateContext('m5'))
        c()
        self.assertEqual(c.results[0].state, nagiosplugin.Ok)
        self.assertEqual(c.results[0].metric.name, 'm5')
Ejemplo n.º 14
0
 def test_check_without_results_is_unkown(self):
     self.assertEqual(nagiosplugin.Unknown, Check().state)
Ejemplo n.º 15
0
 def test_add_resource(self):
     c = Check()
     r1 = nagiosplugin.Resource()
     r2 = nagiosplugin.Resource()
     c.add(r1, r2)
     self.assertEqual([r1, r2], c.resources)
Ejemplo n.º 16
0
 def test_evaluate_resource_populates_results_perfdata(self):
     c = Check()
     c._evaluate_resource(R1_MetricDefaultContext())
     self.assertEqual(1, len(c.results))
     self.assertEqual('foo', c.results[0].metric.name)
     self.assertEqual(['foo=1'], c.perfdata)
Ejemplo n.º 17
0
 def test_state_if_resource_has_no_metrics(self):
     c = Check(nagiosplugin.Resource())
     c()
     self.assertEqual(nagiosplugin.Unknown, c.state)
     self.assertEqual(3, c.exitcode)
Ejemplo n.º 18
0
 def test_default_summary_if_no_results(self):
     c = Check()
     self.assertEqual('no check results', c.summary_str)
Ejemplo n.º 19
0
 def test_add_results(self):
     r = nagiosplugin.Results()
     c = Check(r)
     self.assertEqual(r, c.results)
Ejemplo n.º 20
0
def test_set_verbose():
    c = Check()
    for param, exp in [(None, 1), (3, 3), ('vv', 2)]:
        c.set_verbose(param)
        assert exp == c.verbose
Ejemplo n.º 21
0
 def test_summary_str_calls_ok_if_state_ok(self):
     c = Check(FakeSummary())
     c._evaluate_resource(R1_MetricDefaultContext())
     self.assertEqual("I'm feelin' good", c.summary_str)
Ejemplo n.º 22
0
 def test_set_explicit_name(self):
     c = Check()
     c.name = 'mycheck'
     c.add(nagiosplugin.Resource())
     self.assertEqual('mycheck', c.name)
Ejemplo n.º 23
0
 def test_verbose_str(self):
     self.assertEqual('', Check().verbose_str)
Ejemplo n.º 24
0
 def test_summary_str_calls_problem_if_state_not_ok(self):
     c = Check(FakeSummary())
     c.results.add(nagiosplugin.Result(nagiosplugin.Critical))
     self.assertEqual('Houston, we have a problem', c.summary_str)
Ejemplo n.º 25
0
 def test_evaluate_resource_populates_results_perfdata(self):
     c = Check()
     c._evaluate_resource(R1_MetricDefaultContext())
     self.assertEqual(1, len(c.results))
     self.assertEqual('foo', c.results[0].metric.name)
     self.assertEqual(['foo=1'], c.perfdata)
Ejemplo n.º 26
0
 def test_add_resource(self):
     c = Check()
     r1 = nagiosplugin.Resource()
     r2 = nagiosplugin.Resource()
     c.add(r1, r2)
     self.assertEqual([r1, r2], c.resources)
Ejemplo n.º 27
0
 def test_add_context(self):
     ctx = nagiosplugin.ScalarContext('ctx1', '', '')
     c = Check(ctx)
     self.assertIn(ctx.name, c.contexts)
Ejemplo n.º 28
0
 def test_set_explicit_name(self):
     c = Check()
     c.name = 'mycheck'
     c.add(nagiosplugin.Resource())
     self.assertEqual('mycheck', c.name)
Ejemplo n.º 29
0
 def test_summary_str_calls_ok_if_state_ok(self):
     c = Check(FakeSummary())
     c._evaluate_resource(R1_MetricDefaultContext())
     self.assertEqual("I'm feelin' good", c.summary_str)
Ejemplo n.º 30
0
 def test_add_unknown_type_should_raise_typeerror(self):
     with self.assertRaises(TypeError):
         Check(object())
Ejemplo n.º 31
0
 def test_add_summary(self):
     s = nagiosplugin.Summary()
     c = Check(s)
     self.assertEqual(s, c.summary)