Skip to content
This repository has been archived by the owner on May 24, 2018. It is now read-only.

Commit

Permalink
CDSK-568 - move add_css_classes_to_results and tests to separate files
Browse files Browse the repository at this point in the history
  • Loading branch information
warcholprzemo committed Mar 28, 2018
1 parent c97a0a2 commit 0d5ee19
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 31 deletions.
12 changes: 3 additions & 9 deletions master/buildbot/status/web/mybuilds.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
from twisted.internet import defer

from buildbot.status.web.base import HtmlResource
from buildbot.status.results import RESULT_TO_CSS, Results
from buildbot.config import MasterConfig
from buildbot.util.build import add_css_classes_to_results


class MybuildsResource(HtmlResource):
pageTitle = "MyBuilds"
Expand All @@ -22,7 +22,7 @@ def content(self, req, cxt):
master.config.myBuildDaysCount,
)

self.add_css_classes_to_results(builds)
builds = add_css_classes_to_results(builds)
builds_by_ssid = self.prepare_builds_by_ssid(builds)
sourcestamps = yield master.db.sourcestamps.getSourceStampsForManyIds(builds_by_ssid.keys())

Expand All @@ -42,12 +42,6 @@ def content(self, req, cxt):
template.autoescape = True
defer.returnValue(template.render(**cxt))

@staticmethod
def add_css_classes_to_results(builds):
for build in builds:
build['result_css_class'] = RESULT_TO_CSS.get(build['results'], "")
build['result_name'] = Results[build['results']] if build['results'] >= 0 else "running"

@staticmethod
def prepare_display_repositories(status):
""" return {repository: display_repository} from all projects"""
Expand Down
22 changes: 0 additions & 22 deletions master/buildbot/test/unit/test_mybuilds.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,25 +52,3 @@ def test_prepare_display_repositories(self):
'https://github.com/stxunityproject/second-test-repository3.git': 'https://github.com/stxunityproject/second-test-repository3.git',
}
self.assertEqual(display_repositories, expected_properties)

def test_add_css_classes_to_results(self):
builds = [{'results': i} for i in range(-1, 12)]
expected_builds = [
{'results': -1, 'result_css_class': 'running', 'result_name': 'running'},
{'results': 0, 'result_css_class': 'success', 'result_name': 'success'},
{'results': 1, 'result_css_class': 'warnings', 'result_name': 'warnings'},
{'results': 2, 'result_css_class': 'failure', 'result_name': 'failure'},
{'results': 3, 'result_css_class': 'skipped', 'result_name': 'skipped'},
{'results': 4, 'result_css_class': 'exception', 'result_name': 'exception'},
{'results': 5, 'result_css_class': 'retry', 'result_name': 'retry'},
{'results': 6, 'result_css_class': 'canceled', 'result_name': 'canceled'},
{'results': 7, 'result_css_class': 'not-rebuilt', 'result_name': 'not-rebuilt'},
{'results': 8, 'result_css_class': 'dependency-failure', 'result_name': 'dependency-failure'},
{'results': 9, 'result_css_class': 'waiting-for-dependency', 'result_name': 'resume'},
{'results': 10, 'result_css_class': 'not-started', 'result_name': 'merged'},
{'results': 11, 'result_css_class': 'interrupted', 'result_name': 'interrupted'},
]

self.mybuilds.add_css_classes_to_results(builds)

self.assertEqual(builds, expected_builds)
26 changes: 26 additions & 0 deletions master/buildbot/test/unit/test_util_build.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from twisted.trial import unittest
from buildbot.util.build import add_css_classes_to_results


class TestUtilBuild(unittest.TestCase):
def test_add_css_classes_to_results(self):
builds = [{'results': i} for i in range(-1, 12)]
expected_builds = [
{'results': -1, 'result_css_class': 'running', 'result_name': 'running'},
{'results': 0, 'result_css_class': 'success', 'result_name': 'success'},
{'results': 1, 'result_css_class': 'warnings', 'result_name': 'warnings'},
{'results': 2, 'result_css_class': 'failure', 'result_name': 'failure'},
{'results': 3, 'result_css_class': 'skipped', 'result_name': 'skipped'},
{'results': 4, 'result_css_class': 'exception', 'result_name': 'exception'},
{'results': 5, 'result_css_class': 'retry', 'result_name': 'retry'},
{'results': 6, 'result_css_class': 'canceled', 'result_name': 'canceled'},
{'results': 7, 'result_css_class': 'not-rebuilt', 'result_name': 'not-rebuilt'},
{'results': 8, 'result_css_class': 'dependency-failure', 'result_name': 'dependency-failure'},
{'results': 9, 'result_css_class': 'waiting-for-dependency', 'result_name': 'resume'},
{'results': 10, 'result_css_class': 'not-started', 'result_name': 'merged'},
{'results': 11, 'result_css_class': 'interrupted', 'result_name': 'interrupted'},
]

builds_with_css = add_css_classes_to_results(builds)

self.assertEqual(builds_with_css, expected_builds)
19 changes: 19 additions & 0 deletions master/buildbot/util/build.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from buildbot.status.results import RESULT_TO_CSS, Results


def add_css_classes_to_results(builds):
"""
Change build['results'] <int> to human name and suitable CSS class
Add new information as new keys and values in build <dict>
Use new copy of dicts instead in-place update.
@param builds: list of builds (dicts)
@return: new list of builds with CSS data (name, class)
"""
builds_with_css = []
for build_ in builds:
build = build_.copy()
build['result_css_class'] = RESULT_TO_CSS.get(build['results'], "")
build['result_name'] = Results[build['results']] if build['results'] >= 0 else "running"
builds_with_css.append(build)
return builds_with_css

0 comments on commit 0d5ee19

Please sign in to comment.