]> git.apps.os.sepia.ceph.com Git - teuthology.git/commitdiff
run: drop StringIO usage for py3 compatibility
authorKyr Shatskyy <kyrylo.shatskyy@suse.com>
Fri, 11 Oct 2019 18:59:20 +0000 (20:59 +0200)
committerKyr Shatskyy <kyrylo.shatskyy@suse.com>
Mon, 14 Oct 2019 16:24:28 +0000 (18:24 +0200)
Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
teuthology/run.py
teuthology/test/test_run.py

index 4d3099268ae4b0af5dfa52a8bad8ee7b50d83f43..8c59396b0e133898a17199a456c944afe492bc81 100644 (file)
@@ -1,7 +1,5 @@
 import os
 import yaml
-import StringIO
-import contextlib
 import sys
 import logging
 
@@ -258,20 +256,16 @@ def report_outcome(config, archive, summary, fake_ctx):
         with open(os.path.join(archive, 'summary.yaml'), 'w') as f:
             yaml.safe_dump(summary, f, default_flow_style=False)
 
-    with contextlib.closing(StringIO.StringIO()) as f:
-        yaml.safe_dump(summary, f)
-        log.info('Summary data:\n%s' % f.getvalue())
-
-    with contextlib.closing(StringIO.StringIO()) as f:
-        if ('email-on-error' in config
-                and not passed):
-            yaml.safe_dump(summary, f)
-            yaml.safe_dump(config, f)
-            emsg = f.getvalue()
-            subject = "Teuthology error -- %s" % summary[
-                'failure_reason']
-            email_results(subject, "Teuthology", config[
-                          'email-on-error'], emsg)
+    summary_dump = yaml.safe_dump(summary)
+    log.info('Summary data:\n%s' % summary_dump)
+
+    if ('email-on-error' in config
+            and not passed):
+        config_dump = yaml.safe_dump(config)
+        subject = "Teuthology error -- %s" % summary['failure_reason']
+        email_results(subject, "Teuthology", config['email-on-error'],
+            "\n".join([summary_dump, config_dump]))
+
 
     report.try_push_job_info(config, summary)
 
index 77f8b25883527c77586450824a7eca062cc581ac..0657309175b4651b08596620782eeac92fb03b33 100644 (file)
@@ -124,10 +124,13 @@ class TestRun(object):
     @patch("__builtin__.open")
     @patch("sys.exit")
     def test_report_outcome(self, m_sys_exit, m_open, m_email_results, m_try_push_job_info, m_safe_dump, m_nuke, m_get_status):
-        config = {"nuke-on-error": True, "email-on-error": True}
         m_get_status.return_value = "fail"
         fake_ctx = Mock()
         summary = {"failure_reason": "reasons"}
+        summary_dump = "failure_reason: reasons\n"
+        config = {"nuke-on-error": True, "email-on-error": True}
+        config_dump = "nuke-on-error: true\nemail-on-error: true\n"
+        m_safe_dump.side_effect = [None, summary_dump, config_dump]
         run.report_outcome(config, "the/archive/path", summary, fake_ctx)
         assert m_nuke.called
         m_try_push_job_info.assert_called_with(config, summary)