[Piglit] [PATCH 01/16] summary.py: replace multiple attributes with a single dict attribute
Dylan Baker
baker.dylan.c at gmail.com
Wed Jun 26 14:00:22 PDT 2013
I'm bumping this series hoping to get some review, since I feel it's too
big to 'just push'
Brian and Jose, I'd specifically appreciate if you would look at the later
set of patches, since they change/replace code that you originally wrote.
Thanks.
On Thu, Jun 13, 2013 at 8:36 AM, Dylan Baker <baker.dylan.c at gmail.com>wrote:
> Replaces self.alltests, self.changes, self.problems, self.regressions,
> self.fixes, and self.skipped with self.test, a dictionary containing all
> of the same information. This cleans the namespace for the NewSummary
> object, as well as allowing for some other code simplification
>
> Signed-off-by: Dylan Baker <baker.dylan.c at gmail.com>
> ---
> framework/summary.py | 35 +++++++++++++++--------------------
> 1 file changed, 15 insertions(+), 20 deletions(-)
>
> diff --git a/framework/summary.py b/framework/summary.py
> index b5ddd95..bd0f4cd 100644
> --- a/framework/summary.py
> +++ b/framework/summary.py
> @@ -360,7 +360,7 @@ class HTMLIndex(list):
> self._endRow()
>
> # Add the groups and tests to the out list
> - for key in sorted(getattr(summary, page)):
> + for key in sorted(page):
>
> # Split the group names and test names, then determine
> # which groups to close and which to open
> @@ -628,12 +628,8 @@ class NewSummary:
>
> self.status = {}
> self.fractions = {}
> - self.alltests = []
> - self.changes = []
> - self.problems = []
> - self.skipped = []
> - self.regressions = []
> - self.fixes = []
> + self.tests = {'all': [], 'changes': [], 'problems': [],
> 'skipped': [],
> + 'regressions': [], 'fixes': []}
>
> for each in self.results:
> # Build a dict of the status output of all of the tests, with
> the
> @@ -644,12 +640,11 @@ class NewSummary:
> self.status.update({each.name: status})
>
> # Create a list with all the test names in it
> - self.alltests = list(set(self.alltests) | set(each.tests))
> + self.tests['all'] = list(set(self.tests['all']) |
> set(each.tests))
>
> - # Create lists similar to self.alltests, but for the other root
> pages,
> - # (regressions, skips, ect). Special is used to makr things that
> cannot
> - # be comapred (like 'not run')
> - for test in self.alltests:
> + # Create lists similar to self.tests['all'], but for the other
> root
> + # pages, (regressions, skips, ect)
> + for test in self.tests['all']:
> status = []
> for each in self.results:
> try:
> @@ -657,23 +652,23 @@ class NewSummary:
> except KeyError:
> status.append(status_to_number("special"))
>
> - # Check and append self.changes
> + # Check and append self.tests['changes']
> # A set cannot contain duplicate entries, so creating a set
> out
> # the list will reduce it's length to 1 if all entries are the
> # same, meaning it is not a change
> if len(set(status)) > 1:
> - self.changes.append(test)
> + self.tests['changes'].append(test)
>
> # Problems
> # If the result contains a value other than 1 (pass) or 4
> (skip)
> # it is a problem. Skips are not problems becasuse they have
> # Their own page.
> if [i for e in [2, 3, 5] for i in status if e is i]:
> - self.problems.append(test)
> + self.tests['problems'].append(test)
>
> # skipped
> if 4 in status:
> - self.skipped.append(test)
> + self.tests['skipped'].append(test)
>
> # fixes and regressions
> # check each member against the next member. If the second
> member
> @@ -683,9 +678,9 @@ class NewSummary:
> # a value of 1
> for i in xrange(len(status) - 1):
> if status[i] < status[i + 1] and status[i] != 0:
> - self.regressions.append(test)
> + self.tests['regressions'].append(test)
> if status[i] > 1 and status[i + 1] == 1:
> - self.fixes.append(test)
> + self.tests['fixes'].append(test)
>
> def generateHTML(self, destination, exclude):
> """
> @@ -768,7 +763,7 @@ class NewSummary:
> # alltests, where the other pages all use the same name. ie,
> # changes.html, self.changes, and page=changes.
> file = open(path.join(destination, "index.html"), 'w')
> - file.write(index.render(results=HTMLIndex(self, 'alltests'),
> + file.write(index.render(results=HTMLIndex(self,
> self.tests['all']),
> page='all',
> colnum=len(self.results),
> exclude=exclude))
> @@ -777,7 +772,7 @@ class NewSummary:
> # Generate the rest of the pages
> for page in pages:
> file = open(path.join(destination, page + '.html'), 'w')
> - file.write(index.render(results=HTMLIndex(self, page),
> + file.write(index.render(results=HTMLIndex(self,
> self.tests[page]),
> page=page,
> colnum=len(self.results),
> exclude=exclude))
> --
> 1.8.1.4
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20130626/6a620ff9/attachment.html>
More information about the Piglit
mailing list