def test_threshold(self, message="Hello"): """Test the threshold borking mechanism in the reporter.""" message = message.rstrip() threshold = 1 if message == '': return (handle, filename) = tempfile.mkstemp() os.unlink(filename) reporter = NagiosReporter('test_cache', filename, threshold, self.nagios_user) # redirect stdout old_stdout = sys.stdout buff = StringIO.StringIO() sys.stdout = buff nagios_exit = NAGIOS_EXIT_OK reporter.cache(nagios_exit, message) os.close(handle) try: reporter_test = NagiosReporter('test_cache', filename, threshold, self.nagios_user) reporter_test.report_and_exit() except SystemExit, err: pass
def test_cache(self): """Test the caching mechanism in the reporter.""" length = random.randint(1, 30) exit_code = random.randint(0, 3) threshold = random.randint(0, 10) message = ''.join(random.choice(string.printable) for x in range(length)) message = message.rstrip() (handle, filename) = tempfile.mkstemp() os.unlink(filename) os.close(handle) reporter = NagiosReporter('test_cache', filename, threshold, self.nagios_user) nagios_exit = [NAGIOS_EXIT_OK, NAGIOS_EXIT_WARNING, NAGIOS_EXIT_CRITICAL, NAGIOS_EXIT_UNKNOWN][exit_code] reporter.cache(nagios_exit, message) (handle, output_filename) = tempfile.mkstemp() os.close(handle) try: old_stdout = sys.stdout buffer = StringIO.StringIO() sys.stdout = buffer reporter_test = NagiosReporter('test_cache', filename, threshold, self.nagios_user) reporter_test.report_and_exit() except SystemExit, err: line = buffer.getvalue().rstrip() sys.stdout = old_stdout buffer.close() self.assertTrue(err.code == nagios_exit[0]) self.assertTrue(line == "%s %s" % (nagios_exit[1], message))
def test_cache(self, exit_code, message, threshold): """Test the caching mechanism in the reporter.""" message = message.rstrip() if message == '': return (handle, filename) = tempfile.mkstemp() os.unlink(filename) reporter = NagiosReporter('test_cache', filename, threshold, self.nagios_user) nagios_exit = [ NAGIOS_EXIT_OK, NAGIOS_EXIT_WARNING, NAGIOS_EXIT_CRITICAL, NAGIOS_EXIT_UNKNOWN ][exit_code] reporter.cache(nagios_exit, message) (handle, output_filename) = tempfile.mkstemp() os.close(handle) try: old_stdout = sys.stdout buffer = StringIO.StringIO() sys.stdout = buffer reporter_test = NagiosReporter('test_cache', filename, threshold, self.nagios_user) reporter_test.report_and_exit() except SystemExit, err: line = buffer.getvalue().rstrip() sys.stdout = old_stdout buffer.close() self.assertTrue(err.code == nagios_exit[0]) self.assertTrue(line == "%s %s" % (nagios_exit[1], message))
def test_cache(self): """Test the caching""" (handle, filename) = tempfile.mkstemp() os.unlink(filename) n = SimpleNagios(_cache=filename, _cache_user=self.nagios_user) message = "mywarning" n.warning(message) os.close(handle) self.buffo.seek(0) self.buffo.truncate(0) raised_exception = None try: reporter_test = NagiosReporter('test_cache', filename, -1, self.nagios_user) reporter_test.report_and_exit() except SystemExit as err: raised_exception = err bo = self.buffo.getvalue().rstrip() self.assertEqual(bo, "WARNING %s" % message) self.assertEqual(raised_exception.code, NAGIOS_EXIT_WARNING[0]) statres = os.stat(filename) self.assertFalse(statres.st_mode & stat.S_IROTH)
def test_threshold(self, message="Hello"): """Test the threshold borking mechanism in the reporter.""" message = message.rstrip() threshold = 1 if message == '': return (handle, filename) = tempfile.mkstemp() os.unlink(filename) reporter = NagiosReporter('test_cache', filename, threshold, self.nagios_user) nagios_exit = NAGIOS_EXIT_OK reporter.cache(nagios_exit, message) os.close(handle) try: reporter_test = NagiosReporter('test_cache', filename, threshold, self.nagios_user) reporter_test.report_and_exit() except SystemExit, err: self.assertEqual( err.code, NAGIOS_EXIT_OK[0], "Exit with status when the cached data is recent")
def test_cache(self): """Test the caching""" (handle, filename) = tempfile.mkstemp() os.unlink(filename) n = SimpleNagios(_cache=filename, _cache_user=self.nagios_user) message = "mywarning" n.warning(message) os.close(handle) self.buffo.seek(0) self.buffo.truncate(0) try: reporter_test = NagiosReporter('test_cache', filename, -1, self.nagios_user) reporter_test.report_and_exit() except SystemExit, e: pass
def test_world_readable(self): """Test world readable cache""" (handle, filename) = tempfile.mkstemp() os.unlink(filename) n = SimpleNagios(_cache=filename, _cache_user=self.nagios_user, _world_readable=True) n.ok("test") os.close(handle) try: reporter_test = NagiosReporter('test_cache', filename, -1, self.nagios_user) reporter_test.report_and_exit() except SystemExit: pass statres = os.stat(filename) self.assertTrue(statres.st_mode & stat.S_IROTH)
nagios_exit = NAGIOS_EXIT_OK reporter.cache(nagios_exit, message) os.close(handle) try: reporter_test = NagiosReporter('test_cache', filename, threshold, self.nagios_user) reporter_test.report_and_exit() except SystemExit, err: pass self.assertEqual(err.code, NAGIOS_EXIT_OK[0], "Exit with status when the cached data is recent") # restore stdout buff.close() sys.stdout = old_stdout reporter = NagiosReporter('test_cache', filename, threshold, self.nagios_user) reporter.cache(nagios_exit, message) time.sleep(threshold + 1) # redirect stdout old_stdout = sys.stdout buff = StringIO.StringIO() sys.stdout = buff try: reporter_test = NagiosReporter('test_cache', filename, threshold, self.nagios_user) reporter_test.report_and_exit() except SystemExit, err: pass line = buff.getvalue().rstrip() # restore stdout buff.close()
def test_threshold(self, message="Hello"): """Test the threshold borking mechanism in the reporter.""" message = message.rstrip() threshold = 1 if message == '': return (handle, filename) = tempfile.mkstemp() os.unlink(filename) reporter = NagiosReporter('test_cache', filename, threshold, self.nagios_user) # redirect stdout old_stdout = sys.stdout buff = StringIO() sys.stdout = buff nagios_exit = NAGIOS_EXIT_OK reporter.cache(nagios_exit, message) os.close(handle) raised_exception = None try: reporter_test = NagiosReporter('test_cache', filename, threshold, self.nagios_user) reporter_test.report_and_exit() except SystemExit as err: raised_exception = err self.assertEqual(raised_exception.code, NAGIOS_EXIT_OK[0], "Exit with status when the cached data is recent") # restore stdout buff.close() sys.stdout = old_stdout reporter = NagiosReporter('test_cache', filename, threshold, self.nagios_user) reporter.cache(nagios_exit, message) time.sleep(threshold + 1) # redirect stdout old_stdout = sys.stdout buff = StringIO() sys.stdout = buff raised_exception = None try: reporter_test = NagiosReporter('test_cache', filename, threshold, self.nagios_user) reporter_test.report_and_exit() except SystemExit as err: raised_exception = err line = buff.getvalue().rstrip() # restore stdout buff.close() sys.stdout = old_stdout self.assertEqual(raised_exception.code, NAGIOS_EXIT_UNKNOWN[0], "Too old caches lead to unknown status") self.assertTrue( line.startswith( "%s test_cache gzipped JSON file too old (timestamp =" % (NAGIOS_EXIT_UNKNOWN[1]))) os.unlink(filename)