As the framework tests grow the number of duplicated functions in each module also grow. Adding a utilities module to store those shared functions in makes a lot of sense.
Signed-off-by: Dylan Baker <[email protected]> --- framework/tests/utils.py | 61 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 framework/tests/utils.py diff --git a/framework/tests/utils.py b/framework/tests/utils.py new file mode 100644 index 0000000..4b7746d --- /dev/null +++ b/framework/tests/utils.py @@ -0,0 +1,61 @@ +# Copyright (c) 2014 Intel Coporation + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +""" Common helpers for framework tests + +This module collects common tools that are needed in more than one test module +in a single place. + +""" + +import os +import tempfile +from contextlib import contextmanager + + +__all__ = ['with_tempfile'] + + +class UtilsException(Exception): + """ An exception to be raised by utils """ + pass + + +@contextmanager +def with_tempfile(contents): + """ Provides a context manager for a named tempfile + + This contextmanager creates a named tempfile, writes data into that + tempfile, then closes it and yields the filepath. After the context is + returned it closes and removes the tempfile. + + Arguments: + contests -- This should be a string (unicode or str), in which case it is + written directly into the file. + + """ + # Do not delete the tempfile as soon as it is closed + temp = tempfile.NamedTemporaryFile(delete=False) + temp.write(contents) + temp.close() + + yield temp.name + + os.remove(temp.name) -- 1.9.0 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
