summaryrefslogtreecommitdiff
path: root/tests/goldtest.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2015-08-31 07:51:51 -0400
committerNed Batchelder <ned@nedbatchelder.com>2015-08-31 07:51:51 -0400
commit5164d566f03894f0fe9f29dc4e9721edfdf32818 (patch)
treeb111451d253cdd48500fce07c844d6aced8fedc0 /tests/goldtest.py
parent0c895c59e72c7972533a32add7a771b745fa2089 (diff)
downloadpython-coveragepy-git-5164d566f03894f0fe9f29dc4e9721edfdf32818.tar.gz
Convert farm html tests to goldtests.
Diffstat (limited to 'tests/goldtest.py')
-rw-r--r--tests/goldtest.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/goldtest.py b/tests/goldtest.py
new file mode 100644
index 00000000..f3b37710
--- /dev/null
+++ b/tests/goldtest.py
@@ -0,0 +1,42 @@
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+
+"""A test base class for tests based on gold file comparison."""
+
+import os
+import sys
+
+from tests.coveragetest import CoverageTest
+
+from coverage.test_helpers import change_dir
+from tests.test_farm import clean
+# Import helpers, eventually test_farm.py will go away.
+from tests.test_farm import ( # pylint: disable=unused-import
+ compare, contains, doesnt_contain, contains_any,
+)
+
+
+class CoverageGoldTest(CoverageTest):
+ """A test based on gold files."""
+
+ run_in_temp_dir = False
+
+ def setUp(self):
+ super(CoverageGoldTest, self).setUp()
+ self.chdir(self.root_dir)
+ # Modules should be importable from the current directory.
+ sys.path.insert(0, '')
+
+ def output_dir(self, the_dir):
+ """Declare where the output directory is.
+
+ The output directory is deleted at the end of the test, unless the
+ COVERAGE_KEEP_OUTPUT environment variable is set.
+
+ """
+ self.addCleanup(self.cleanup_output_dir, the_dir)
+
+ def cleanup_output_dir(self, the_dir):
+ """Clean up the output directory of the test."""
+ if not os.environ.get("COVERAGE_KEEP_OUTPUT"): # pragma: partial
+ clean(the_dir)