[Piglit] [PATCH 10/13] results.py: Simplify TestrunResult.write()
Ilia Mirkin
imirkin at alum.mit.edu
Sat Jun 21 07:04:58 PDT 2014
On Sat, Jun 21, 2014 at 8:06 AM, Dylan Baker <baker.dylan.c at gmail.com> wrote:
> This simplifies TestrunResult.write() to use a generator expression.
> This method isn't currently used, but it will be useful in a patch later
> in this series.
>
> This also adds a testcase for this function to ensure that what it
> writes is equivalent to what it reads.
>
> Signed-off-by: Dylan Baker <baker.dylan.c at gmail.com>
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
> framework/results.py | 9 +++++----
> framework/tests/results_tests.py | 18 ++++++++++++++++++
> 2 files changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/framework/results.py b/framework/results.py
> index ab736fc..9823fc5 100644
> --- a/framework/results.py
> +++ b/framework/results.py
> @@ -291,10 +291,11 @@ class TestrunResult(object):
> return new_file
>
> def write(self, file_):
> - # Serialize only the keys in serialized_keys.
> - keys = set(self.__dict__.keys()).intersection(self.serialized_keys)
> - raw_dict = dict([(k, self.__dict__[k]) for k in keys])
> - json.dump(raw_dict, file_, indent=JSONWriter.INDENT)
> + """ Write only values of the serialized_keys out to file """
> + with open(file_, 'w') as f:
> + json.dump(dict((k, v) for k, v in self.__dict__.iteritems()
> + if k in self.serialized_keys),
> + f, default=_piglit_encoder, indent=JSONWriter.INDENT)
>
>
> def load_results(filename):
> diff --git a/framework/tests/results_tests.py b/framework/tests/results_tests.py
> index d4be74c..b31c505 100644
> --- a/framework/tests/results_tests.py
> +++ b/framework/tests/results_tests.py
> @@ -24,6 +24,7 @@
> import os
> import tempfile
> import json
> +import nose.tools as nt
> import framework.tests.utils as utils
> import framework.results as results
> import framework.status as status
> @@ -89,3 +90,20 @@ def test_testresult_to_status():
> result = results.TestResult({'result': 'pass'})
> assert isinstance(result['result'], status.Status), \
> "Result key not converted to a status object"
> +
> +
> +def test_testrunresult_write():
> + """ TestrunResult.write() works
> +
> + This tests for a bug where TestrunResult.write() wrote a file containing
> + {}, essentially if it dumps a file that is equal to what was provided then
> + it's probably working
> +
> + """
> + with utils.resultfile() as f:
> + result = results.load_results(f.name)
> + with utils.tempdir() as tdir:
> + result.write(os.path.join(tdir, 'results.json'))
> + new = results.load_results(os.path.join(tdir, 'results.json'))
> +
> + nt.assert_dict_equal(result.__dict__, new.__dict__)
> --
> 2.0.0
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
More information about the Piglit
mailing list