summaryrefslogtreecommitdiffstats
path: root/testing/mozharness/test/test_mozilla_buildbot.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/mozharness/test/test_mozilla_buildbot.py')
-rw-r--r--testing/mozharness/test/test_mozilla_buildbot.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/testing/mozharness/test/test_mozilla_buildbot.py b/testing/mozharness/test/test_mozilla_buildbot.py
new file mode 100644
index 000000000..afc715026
--- /dev/null
+++ b/testing/mozharness/test/test_mozilla_buildbot.py
@@ -0,0 +1,62 @@
+import gc
+import unittest
+
+
+import mozharness.base.log as log
+from mozharness.base.log import ERROR
+import mozharness.base.script as script
+from mozharness.mozilla.buildbot import BuildbotMixin, TBPL_SUCCESS, \
+ TBPL_FAILURE, EXIT_STATUS_DICT
+
+
+class CleanupObj(script.ScriptMixin, log.LogMixin):
+ def __init__(self):
+ super(CleanupObj, self).__init__()
+ self.log_obj = None
+ self.config = {'log_level': ERROR}
+
+
+def cleanup():
+ gc.collect()
+ c = CleanupObj()
+ for f in ('test_logs', 'test_dir', 'tmpfile_stdout', 'tmpfile_stderr'):
+ c.rmtree(f)
+
+
+class BuildbotScript(BuildbotMixin, script.BaseScript):
+ def __init__(self, **kwargs):
+ super(BuildbotScript, self).__init__(**kwargs)
+
+
+# TestBuildbotStatus {{{1
+class TestBuildbotStatus(unittest.TestCase):
+ # I need a log watcher helper function, here and in test_log.
+ def setUp(self):
+ cleanup()
+ self.s = None
+
+ def tearDown(self):
+ # Close the logfile handles, or windows can't remove the logs
+ if hasattr(self, 's') and isinstance(self.s, object):
+ del(self.s)
+ cleanup()
+
+ def test_over_max_log_size(self):
+ self.s = BuildbotScript(config={'log_type': 'multi',
+ 'buildbot_max_log_size': 200},
+ initial_config_file='test/test.json')
+ self.s.info("foo!")
+ self.s.buildbot_status(TBPL_SUCCESS)
+ self.assertEqual(self.s.return_code, EXIT_STATUS_DICT[TBPL_FAILURE])
+
+ def test_under_max_log_size(self):
+ self.s = BuildbotScript(config={'log_type': 'multi',
+ 'buildbot_max_log_size': 20000},
+ initial_config_file='test/test.json')
+ self.s.info("foo!")
+ self.s.buildbot_status(TBPL_SUCCESS)
+ self.assertEqual(self.s.return_code, EXIT_STATUS_DICT[TBPL_SUCCESS])
+
+# main {{{1
+if __name__ == '__main__':
+ unittest.main()