def setUp(self, _poll): _poll.return_value = self.DATA # def __init__(self, url, build ): self.b = mock.MagicMock() # Build object self.b.__str__.return_value = 'FooBuild' self.rs = ResultSet('http://', self.b)
def get_resultset(self): """ Obtain detailed results for this build. """ result_url = self.get_result_url() if self.STR_TOTALCOUNT not in self.get_actions(): raise NoResults("%s does not have any published results" % str(self)) buildstatus = self.get_status() if not self.get_actions()[self.STR_TOTALCOUNT]: raise NoResults(self.STR_TPL_NOTESTS_ERR % (str(self), buildstatus)) obj_results = ResultSet(result_url, build=self) return obj_results
def test_poll_cache(self, _poll): # only gets called once in interval rs = ResultSet('http://', self.b, poll_cache_timeout=1) for i in range(2): rs.poll() self.assertEquals(_poll.call_count, 1) rs.poll(True) # test force poll self.assertEquals(_poll.call_count, 2) # ensure it gets called again after cache timeout _poll.reset_mock() time.sleep(1.1) rs.poll() self.assertTrue(_poll.called) # ensure it is disabled by default _poll.reset_mock() for i in range(2): self.rs.poll() self.assertEquals(_poll.call_count, 2) self.assertIsNone(self.rs.poll_cache_expires)
class TestResultSet(unittest.TestCase): DATA = { 'duration': 0.0, 'failCount': 2, 'passCount': 0, 'skipCount': 0, 'suites': [{ 'cases': [{ 'age': 1, 'className': '<nose.suite.ContextSuite context=jenkinsapi_tests', 'duration': 0.0, 'errorDetails': 'Timeout error occured while waiting for Jenkins start.', 'errorStackTrace': 'Traceback (most recent call last):\n File "/usr/lib/python2.7/dist-packages/nose/suite.py", line 208, in run\n self.setUp()\n File "/usr/lib/python2.7/dist-packages/nose/suite.py", line 291, in setUp\n self.setupContext(ancestor)\n File "/usr/lib/python2.7/dist-packages/nose/suite.py", line 314, in setupContext\n try_run(context, names)\n File "/usr/lib/python2.7/dist-packages/nose/util.py", line 478, in try_run\n return func()\n File "/var/lib/jenkins/jobs/test_jenkinsapi/workspace/jenkinsapi/src/jenkinsapi_tests/systests/__init__.py", line 54, in setUpPackage\n launcher = JenkinsLauncher(update_war=True, launch=True)\n File "/var/lib/jenkins/jobs/test_jenkinsapi/workspace/jenkinsapi/src/jenkinsapi_tests/systests/__init__.py", line 20, in __init__\n self.launch()\n File "/var/lib/jenkins/jobs/test_jenkinsapi/workspace/jenkinsapi/src/jenkinsapi_tests/systests/__init__.py", line 41, in launch\n raise Timeout(\'Timeout error occured while waiting for Jenkins start.\')\nTimeout: Timeout error occured while waiting for Jenkins start.\n', 'failedSince': 88, 'name': 'systests>: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 <module>\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 }] } @mock.patch.object(ResultSet, '_poll') def setUp(self, _poll): _poll.return_value = self.DATA # def __init__(self, url, build ): self.b = mock.MagicMock() # Build object self.b.__str__.return_value = 'FooBuild' self.rs = ResultSet('http://', self.b) def testRepr(self): # Can we produce a repr string for this object repr(self.rs) def testName(self): with self.assertRaises(AttributeError): self.rs.id() self.assertEquals(self.rs.name, 'Test Result for FooBuild') def testBuildComponents(self): self.assertTrue(self.rs.items()) for k, v in self.rs.items(): self.assertIsInstance(k, str) self.assertIsInstance(v, Result) self.assertIsInstance(v.identifier(), str)
class TestResultSet(unittest.TestCase): DATA = {'duration': 0.0, 'failCount': 2, 'passCount': 0, 'skipCount': 0, 'suites': [{'cases': [{'age': 1, 'className': '<nose.suite.ContextSuite context=jenkinsapi_tests', 'duration': 0.0, 'errorDetails': 'Timeout error occured while waiting for Jenkins start.', 'errorStackTrace': 'Traceback (most recent call last):\n File "/usr/lib/python2.7/dist-packages/nose/suite.py", line 208, in run\n self.setUp()\n File "/usr/lib/python2.7/dist-packages/nose/suite.py", line 291, in setUp\n self.setupContext(ancestor)\n File "/usr/lib/python2.7/dist-packages/nose/suite.py", line 314, in setupContext\n try_run(context, names)\n File "/usr/lib/python2.7/dist-packages/nose/util.py", line 478, in try_run\n return func()\n File "/var/lib/jenkins/jobs/test_jenkinsapi/workspace/jenkinsapi/src/jenkinsapi_tests/systests/__init__.py", line 54, in setUpPackage\n launcher = JenkinsLauncher(update_war=True, launch=True)\n File "/var/lib/jenkins/jobs/test_jenkinsapi/workspace/jenkinsapi/src/jenkinsapi_tests/systests/__init__.py", line 20, in __init__\n self.launch()\n File "/var/lib/jenkins/jobs/test_jenkinsapi/workspace/jenkinsapi/src/jenkinsapi_tests/systests/__init__.py", line 41, in launch\n raise Timeout(\'Timeout error occured while waiting for Jenkins start.\')\nTimeout: Timeout error occured while waiting for Jenkins start.\n', 'failedSince': 88, 'name': 'systests>: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 <module>\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}], 'childReports': [{ "child": { "number": 1915, "url": "url1" }, "result": None }, ]} @mock.patch.object(ResultSet, '_poll') def setUp(self, _poll): _poll.return_value = self.DATA # def __init__(self, url, build ): self.b = mock.MagicMock() # Build object self.b.__str__.return_value = 'FooBuild' self.rs = ResultSet('http://', self.b) def testRepr(self): # Can we produce a repr string for this object repr(self.rs) def testName(self): with self.assertRaises(AttributeError): self.rs.id() self.assertEquals(self.rs.name, 'Test Result for FooBuild') def testBuildComponents(self): self.assertTrue(self.rs.items()) for k, v in self.rs.items(): self.assertIsInstance(k, str) self.assertIsInstance(v, Result) self.assertIsInstance(v.identifier(), str)