From 4897336b8c2929cb7287c5d89380de2807cfbce3 Mon Sep 17 00:00:00 2001
From: Joao Pereira and Tira Odhner <pair+jpereira+aodhner@pivotal.io>
Date: Wed, 1 Mar 2017 13:53:35 -0500
Subject: [PATCH 2/3] Take screenshots all of the time in feature tests

---
 .../feature_tests/connect_to_server_feature_test.py      |  2 +-
 .../feature_tests/template_selection_feature_test.py     |  2 +-
 web/regression/.gitignore                                |  1 +
 web/regression/feature_utils/base_feature_test.py        | 16 +++++++++++-----
 web/regression/screenshots/.keep                         |  0
 5 files changed, 14 insertions(+), 7 deletions(-)
 create mode 100644 web/regression/screenshots/.keep

diff --git a/web/pgadmin/feature_tests/connect_to_server_feature_test.py b/web/pgadmin/feature_tests/connect_to_server_feature_test.py
index 9a7558d8..00fada81 100644
--- a/web/pgadmin/feature_tests/connect_to_server_feature_test.py
+++ b/web/pgadmin/feature_tests/connect_to_server_feature_test.py
@@ -38,7 +38,7 @@ class ConnectsToServerFeatureTest(BaseFeatureTest):
         self._connects_to_server()
         self._tables_node_expandable()
 
-    def tearDown(self):
+    def after(self):
         self.page.remove_server(self.server)
 
         connection = test_utils.get_db_connection(self.server['db'],
diff --git a/web/pgadmin/feature_tests/template_selection_feature_test.py b/web/pgadmin/feature_tests/template_selection_feature_test.py
index 4c37ebb4..56e2d59e 100644
--- a/web/pgadmin/feature_tests/template_selection_feature_test.py
+++ b/web/pgadmin/feature_tests/template_selection_feature_test.py
@@ -40,7 +40,7 @@ class TemplateSelectionFeatureTest(BaseFeatureTest):
 
         self.page.find_by_xpath("//*[contains(@class,'CodeMirror-lines') and contains(.,'LEAKPROOF')]")
 
-    def tearDown(self):
+    def after(self):
         self.page.find_by_xpath("//button[contains(.,'Cancel')]").click()
         self.page.remove_server(self.server)
         connection = test_utils.get_db_connection(self.server['db'],
diff --git a/web/regression/.gitignore b/web/regression/.gitignore
index 723fce7e..ce544781 100644
--- a/web/regression/.gitignore
+++ b/web/regression/.gitignore
@@ -3,3 +3,4 @@ regression.log
 test_greenplum_config.json
 test_advanced_config.json
 test_config.json
+screenshots/
\ No newline at end of file
diff --git a/web/regression/feature_utils/base_feature_test.py b/web/regression/feature_utils/base_feature_test.py
index b88e0ebe..2d275a05 100644
--- a/web/regression/feature_utils/base_feature_test.py
+++ b/web/regression/feature_utils/base_feature_test.py
@@ -1,9 +1,11 @@
 import config as app_config
 from pgadmin.utils.route import BaseTestGenerator
 from regression.feature_utils.pgadmin_page import PgadminPage
+import os
 
 
 class BaseFeatureTest(BaseTestGenerator):
+    CURRENT_PATH = os.path.dirname(os.path.realpath(__file__))
     def setUp(self):
         if app_config.SERVER_MODE:
             self.skipTest("Currently, config is set to start pgadmin in server mode. "
@@ -15,9 +17,13 @@ class BaseFeatureTest(BaseTestGenerator):
         self.page.reset_layout()
         self.page.wait_for_spinner_to_disappear()
 
-    def failureException(self, *args, **kwargs):
-        self.page.driver.save_screenshot('/tmp/feature_test_failure.png')
-        return AssertionError(*args, **kwargs)
-
     def runTest(self):
-        pass
\ No newline at end of file
+        pass
+
+    def after(self):
+        pass
+
+    def tearDown(self):
+        self.page.driver.save_screenshot('{0}/../screenshots/{1}.png'.format(self.CURRENT_PATH, self.__class__.__name__))
+        self.after()
+
diff --git a/web/regression/screenshots/.keep b/web/regression/screenshots/.keep
new file mode 100644
index 00000000..e69de29b
-- 
2.11.0

