Fixed problem with get_build_number (Issue #158)
authorAleksey Maksimov <ctpeko3a@gmail.com>
Sun, 4 Aug 2013 16:00:50 +0000 (00:00 +0800)
committerAleksey Maksimov <ctpeko3a@gmail.com>
Sun, 4 Aug 2013 16:00:50 +0000 (00:00 +0800)
jenkinsapi/invocation.py
jenkinsapi_tests/systests/test_invocation.py

index f014ff2..6ab1800 100644 (file)
@@ -47,6 +47,9 @@ class Invocation(object):
         """
         If this job is building or complete then provide it's build-number
         """
+        # print '\nDEBUG: job.get_last_build_or_none=', self.job.get_last_build_or_none()
+        if not self.job.is_queued_or_running():
+            self.build_number = self.job.get_last_buildnumber()
         return self.build_number
 
     def get_build(self):
index 8d9bfb7..0e220fe 100644 (file)
@@ -6,7 +6,8 @@ from jenkinsapi.build import Build
 from jenkinsapi.invocation import Invocation
 from jenkinsapi_tests.systests.base import BaseSystemTest
 from jenkinsapi_tests.test_utils.random_strings import random_string
-from jenkinsapi_tests.systests.job_configs import LONG_RUNNING_JOB, SHORTISH_JOB, EMPTY_JOB
+from jenkinsapi_tests.systests.job_configs import LONG_RUNNING_JOB
+from jenkinsapi_tests.systests.job_configs import SHORTISH_JOB, EMPTY_JOB
 
 
 class TestInvocation(BaseSystemTest):
@@ -56,6 +57,16 @@ class TestInvocation(BaseSystemTest):
         build = job.get_build(build_number)
         self.assertIsInstance(build, Build)
 
+    def test_multiple_invocations_and_get_build_number(self):
+        job_name = 'create_%s' % random_string()
+
+        job = self.jenkins.create_job(job_name, EMPTY_JOB)
+
+        for invocation in range(3):
+            ii = job.invoke()
+            ii.block(until='completed')
+            build_number = ii.get_build_number()
+            self.assertEquals(build_number, invocation+1)
 
 
 if __name__ == '__main__':