[evolution] tests: store the screenshot for failed tests



commit 17cd7112467f15c33ed9957a5f560178eb1c7385
Author: Vadim Rutkovsky <vrutkovs redhat com>
Date:   Thu Apr 24 12:23:52 2014 +0200

    tests: store the screenshot for failed tests

 tests/environment.py |   15 +++++++++++++++
 tests/steps/steps.py |    2 +-
 2 files changed, 16 insertions(+), 1 deletions(-)
---
diff --git a/tests/environment.py b/tests/environment.py
index 2d6a09f..76fe686 100644
--- a/tests/environment.py
+++ b/tests/environment.py
@@ -7,6 +7,7 @@ if not isA11yEnabled():
 
 from common_steps import App, dummy, cleanup
 from dogtail.config import config
+import os
 
 
 def before_all(context):
@@ -31,6 +32,20 @@ def before_all(context):
         print("Error in before_all: %s" % e.message)
 
 
+def after_step(context, step):
+    try:
+        if step.status == 'failed' and hasattr(context, "embed"):
+            # Embed screenshot if HTML report is used
+            os.system("dbus-send --print-reply --session --type=method_call " +
+                      "--dest='org.gnome.Shell.Screenshot' " +
+                      "'/org/gnome/Shell/Screenshot' " +
+                      "org.gnome.Shell.Screenshot.Screenshot " +
+                      "boolean:true boolean:false string:/tmp/screenshot.png")
+            context.embed('image/png', open("/tmp/screenshot.png", 'r').read())
+    except Exception as e:
+        print("Error in after_step: %s" % str(e))
+
+
 def after_scenario(context, scenario):
     """Teardown for each scenario
     Kill evolution (in order to make this reliable we send sigkill)
diff --git a/tests/steps/steps.py b/tests/steps/steps.py
index dac984f..6a600e1 100644
--- a/tests/steps/steps.py
+++ b/tests/steps/steps.py
@@ -119,4 +119,4 @@ def task_editor_with_title_is_opened(context, title):
 
 @step(u'Event editor with title "{name}" is displayed')
 def event_editor_with_name_displayed(context, name):
-    context.app.event_editor = context.app.window(name)
\ No newline at end of file
+    context.app.event_editor = context.app.window(name)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]