From: Salim Fadhley Date: Wed, 30 Jul 2014 23:33:59 +0000 (+0100) Subject: Proposed fix for #297 X-Git-Tag: v0.2.26^2~18 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=81a684c25aacf9f762ddd05bfb61e67972895754;p=tools%2Fpython-jenkinsapi.git Proposed fix for #297 --- diff --git a/jenkinsapi/result_set.py b/jenkinsapi/result_set.py index 15090c4..6962c07 100644 --- a/jenkinsapi/result_set.py +++ b/jenkinsapi/result_set.py @@ -42,10 +42,11 @@ class ResultSet(JenkinsBase): yield result.identifier(), result for report_set in self._data.get("childReports", []): - for suite in report_set["result"]["suites"]: - for case in suite["cases"]: - result = Result(**case) - yield result.identifier(), result + if report_set["result"]: + for suite in report_set["result"]["suites"]: + for case in suite["cases"]: + result = Result(**case) + yield result.identifier(), result def __len__(self): return len(self.items()) diff --git a/jenkinsapi_tests/unittests/test_result_set.py b/jenkinsapi_tests/unittests/test_result_set.py index 9aa310e..32fd3ec 100644 --- a/jenkinsapi_tests/unittests/test_result_set.py +++ b/jenkinsapi_tests/unittests/test_result_set.py @@ -16,33 +16,40 @@ class TestResultSet(unittest.TestCase): 'passCount': 0, 'skipCount': 0, 'suites': [{'cases': [{'age': 1, - 'className': ':setup', - 'skipped': False, - 'status': 'FAILED', - 'stderr': None, - 'stdout': None}, - {'age': 1, - 'className': 'nose.failure.Failure', - 'duration': 0.0, - 'errorDetails': 'No module named mock', - 'errorStackTrace': 'Traceback (most recent call last):\n File "/usr/lib/python2.7/unittest/case.py", line 332, in run\n testMethod()\n File "/usr/lib/python2.7/dist-packages/nose/loader.py", line 390, in loadTestsFromName\n addr.filename, addr.module)\n File "/usr/lib/python2.7/dist-packages/nose/importer.py", line 39, in importFromPath\n return self.importFromDir(dir_path, fqname)\n File "/usr/lib/python2.7/dist-packages/nose/importer.py", line 86, in importFromDir\n mod = load_module(part_fqname, fh, filename, desc)\n File "/var/lib/jenkins/jobs/test_jenkinsapi/workspace/jenkinsapi/src/jenkinsapi_tests/unittests/test_build.py", line 1, in \n import mock\nImportError: No module named mock\n', - 'failedSince': 88, - 'name': 'runTest', - 'skipped': False, - 'status': 'FAILED', - 'stderr': None, - 'stdout': None}], + 'className': ':setup', + 'skipped': False, + 'status': 'FAILED', + 'stderr': None, + 'stdout': None}, + {'age': 1, + 'className': 'nose.failure.Failure', + 'duration': 0.0, + 'errorDetails': 'No module named mock', + 'errorStackTrace': 'Traceback (most recent call last):\n File "/usr/lib/python2.7/unittest/case.py", line 332, in run\n testMethod()\n File "/usr/lib/python2.7/dist-packages/nose/loader.py", line 390, in loadTestsFromName\n addr.filename, addr.module)\n File "/usr/lib/python2.7/dist-packages/nose/importer.py", line 39, in importFromPath\n return self.importFromDir(dir_path, fqname)\n File "/usr/lib/python2.7/dist-packages/nose/importer.py", line 86, in importFromDir\n mod = load_module(part_fqname, fh, filename, desc)\n File "/var/lib/jenkins/jobs/test_jenkinsapi/workspace/jenkinsapi/src/jenkinsapi_tests/unittests/test_build.py", line 1, in \n import mock\nImportError: No module named mock\n', + 'failedSince': 88, + 'name': 'runTest', + 'skipped': False, + 'status': 'FAILED', + 'stderr': None, + 'stdout': None}], 'duration': 0.0, 'id': None, 'name': 'nosetests', 'stderr': None, 'stdout': None, - 'timestamp': None}]} + 'timestamp': None}], + 'childReports': [{ + "child": { + "number": 1915, + "url": "url1" + }, + "result": None + }, ]} @mock.patch.object(ResultSet, '_poll') def setUp(self, _poll): @@ -70,3 +77,6 @@ class TestResultSet(unittest.TestCase): self.assertIsInstance(k, str) self.assertIsInstance(v, Result) self.assertIsInstance(v.identifier(), str) + +if __name__ == '__main__': + unittest.main()