diff options
author | azul <azul@riseup.net> | 2014-04-18 14:34:32 +0200 |
---|---|---|
committer | azul <azul@riseup.net> | 2014-04-18 14:34:32 +0200 |
commit | 8078cf0f853310cfb0d0681db45effb96850efc9 (patch) | |
tree | 86fb496091a772cefd0e07d1558f6b7fe0636963 /test/nagios/support/nagios_test.py | |
parent | 3513ad74f950b113af1ba1e3d06bc6a55c48fde5 (diff) | |
parent | d639e0a48599b30777b80c2809ded1efb3a6d926 (diff) |
Merge pull request #147 from azul/test/nagios-test-signup0.5.1-rc
Test/nagios test signup
Diffstat (limited to 'test/nagios/support/nagios_test.py')
-rw-r--r-- | test/nagios/support/nagios_test.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/test/nagios/support/nagios_test.py b/test/nagios/support/nagios_test.py new file mode 100644 index 0000000..3eb8d55 --- /dev/null +++ b/test/nagios/support/nagios_test.py @@ -0,0 +1,49 @@ +import __main__ as main +import os +import sys +import nagios_report + +def run(test): + """ + run takes a function and tries it out. + If it returns nothing or 0 everything is fine and run prints an OK message + with the function name. + >>> def this_works_fine(): return + >>> run(this_works_fine) + 0 nagios_test.py - OK - this_works_fine + 0 + >>> def this_also_works_fine(): return 0 + >>> run(this_also_works_fine) + 0 nagios_test.py - OK - this_also_works_fine + 0 + + If the function returns something else it will be printed as a warning. + >>> run(lambda : "this is a warning") + 1 nagios_test.py - WARNING - this is a warning + 1 + + Errors raised will result in a CRITICAL nagios string. + >>> def failure(): raise Exception("something went wrong") + >>> run(failure) + 2 nagios_test.py - CRITICAL - something went wrong + 2 + """ + try: + name = os.path.basename(main.__file__) + except AttributeError: + name = sys.argv[0] + ok, warn, fail, unknown = nagios_report.functions_for_system(name) + try: + warning = test() + if warning and warning != 0: + code = warn(warning) + else: + code = ok(test.__name__) + except Exception as exc: + code = fail(exc.message or str(exc)) + return code + + +if __name__ == "__main__": + import doctest + doctest.testmod() |