diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2015-08-31 07:51:51 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2015-08-31 07:51:51 -0400 |
commit | 5164d566f03894f0fe9f29dc4e9721edfdf32818 (patch) | |
tree | b111451d253cdd48500fce07c844d6aced8fedc0 /tests/goldtest.py | |
parent | 0c895c59e72c7972533a32add7a771b745fa2089 (diff) | |
download | python-coveragepy-git-5164d566f03894f0fe9f29dc4e9721edfdf32818.tar.gz |
Convert farm html tests to goldtests.
Diffstat (limited to 'tests/goldtest.py')
-rw-r--r-- | tests/goldtest.py | 42 |
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) |