mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-05-11 02:21:33 +00:00
Leverage defaultdict to simplify some code
Notable omissions are "pending_tests" and "tests_results". This is omission is due to these (some times) being initialized from the output of "json.load" (so we cannot assume defaultdict semantics without manually imported the data into one). Signed-off-by: Niels Thykier <niels@thykier.net>
This commit is contained in:
parent
641df09570
commit
d7045af2b7
@ -16,6 +16,7 @@
|
|||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
import collections
|
||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
import tarfile
|
import tarfile
|
||||||
@ -209,7 +210,7 @@ class AutopkgtestPolicy(BasePolicy):
|
|||||||
# results per architecture for technical/efficiency reasons, but we
|
# results per architecture for technical/efficiency reasons, but we
|
||||||
# want to evaluate and present the results by tested source package
|
# want to evaluate and present the results by tested source package
|
||||||
# first
|
# first
|
||||||
pkg_arch_result = {}
|
pkg_arch_result = collections.defaultdict(dict)
|
||||||
for arch in self.adt_arches:
|
for arch in self.adt_arches:
|
||||||
if arch in excuse.missing_builds:
|
if arch in excuse.missing_builds:
|
||||||
verdict = PolicyVerdict.REJECTED_TEMPORARILY
|
verdict = PolicyVerdict.REJECTED_TEMPORARILY
|
||||||
@ -228,7 +229,7 @@ class AutopkgtestPolicy(BasePolicy):
|
|||||||
for (testsrc, testver) in tests:
|
for (testsrc, testver) in tests:
|
||||||
self.pkg_test_request(testsrc, arch, trigger, huge=is_huge)
|
self.pkg_test_request(testsrc, arch, trigger, huge=is_huge)
|
||||||
(result, real_ver, run_id, url) = self.pkg_test_result(testsrc, testver, arch, trigger)
|
(result, real_ver, run_id, url) = self.pkg_test_result(testsrc, testver, arch, trigger)
|
||||||
pkg_arch_result.setdefault((testsrc, real_ver), {})[arch] = (result, run_id, url)
|
pkg_arch_result[(testsrc, real_ver)][arch] = (result, run_id, url)
|
||||||
|
|
||||||
# add test result details to Excuse
|
# add test result details to Excuse
|
||||||
cloud_url = self.options.adt_ci_url + "packages/%(h)s/%(s)s/%(r)s/%(a)s"
|
cloud_url = self.options.adt_ci_url + "packages/%(h)s/%(s)s/%(r)s/%(a)s"
|
||||||
@ -485,10 +486,10 @@ class AutopkgtestPolicy(BasePolicy):
|
|||||||
continue
|
continue
|
||||||
if run_id > latest_run_id:
|
if run_id > latest_run_id:
|
||||||
latest_run_id = run_id
|
latest_run_id = run_id
|
||||||
self.latest_run_for_package._cache.setdefault(src, {})[arch] = latest_run_id
|
self.latest_run_for_package._cache[arch] = latest_run_id
|
||||||
return latest_run_id
|
return latest_run_id
|
||||||
|
|
||||||
latest_run_for_package._cache = {}
|
latest_run_for_package._cache = collections.defaultdict(dict)
|
||||||
|
|
||||||
def fetch_swift_results(self, swift_url, src, arch):
|
def fetch_swift_results(self, swift_url, src, arch):
|
||||||
'''Download new results for source package/arch from swift'''
|
'''Download new results for source package/arch from swift'''
|
||||||
@ -753,7 +754,7 @@ class AutopkgtestPolicy(BasePolicy):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
self.logger.info('Found NO result for src %s in reference: pass=%s', src, passed_reference)
|
self.logger.info('Found NO result for src %s in reference: pass=%s', src, passed_reference)
|
||||||
pass
|
pass
|
||||||
self.passed_in_baseline._cache.setdefault(src, {})[arch] = passed_reference
|
self.passed_in_baseline._cache[arch] = passed_reference
|
||||||
return passed_reference
|
return passed_reference
|
||||||
|
|
||||||
passed_ever = False
|
passed_ever = False
|
||||||
@ -765,11 +766,11 @@ class AutopkgtestPolicy(BasePolicy):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
self.passed_in_baseline._cache.setdefault(src, {})[arch] = passed_ever
|
self.passed_in_baseline._cache[arch] = passed_ever
|
||||||
self.logger.info('Result for src %s ever: pass=%s', src, passed_ever)
|
self.logger.info('Result for src %s ever: pass=%s', src, passed_ever)
|
||||||
return passed_ever
|
return passed_ever
|
||||||
|
|
||||||
passed_in_baseline._cache = {}
|
passed_in_baseline._cache = collections.defaultdict(dict)
|
||||||
|
|
||||||
def pkg_test_result(self, src, ver, arch, trigger):
|
def pkg_test_result(self, src, ver, arch, trigger):
|
||||||
'''Get current test status of a particular package
|
'''Get current test status of a particular package
|
||||||
|
Loading…
x
Reference in New Issue
Block a user