New datetime behavior for builds as requested.
authorSalim Fadhley <sal@stodge.org>
Fri, 31 May 2013 23:11:33 +0000 (00:11 +0100)
committerSalim Fadhley <sal@stodge.org>
Fri, 31 May 2013 23:11:33 +0000 (00:11 +0100)
jenkinsapi/build.py
jenkinsapi/jenkinsbase.py
jenkinsapi_tests/unittests/test_build.py
setup.py

index 74e0df9..6a94095 100644 (file)
@@ -1,10 +1,12 @@
+import time
 import urlparse
 import urllib2
+import datetime
 from jenkinsapi.artifact import Artifact
 from jenkinsapi import config
 from jenkinsapi.jenkinsbase import JenkinsBase
-from jenkinsapi.exceptions import NoResults, FailedNoResults
-from jenkinsapi.constants import STATUS_FAIL, STATUS_ABORTED, RESULTSTATUS_FAILURE, STATUS_SUCCESS
+from jenkinsapi.exceptions import NoResults
+from jenkinsapi.constants import STATUS_SUCCESS
 from jenkinsapi.result_set import ResultSet
 
 from time import sleep
@@ -261,7 +263,8 @@ class Build(JenkinsBase):
         return all_actions
 
     def get_timestamp(self):
-        return self._data['timestamp']
+        # Java timestamps are given in miliseconds since the epoch start!
+        return datetime.datetime(*time.localtime(self._data['timestamp']/1000.0)[:6])
 
     def stop(self):
         """
index 0e67644..18137f8 100644 (file)
@@ -72,8 +72,7 @@ class JenkinsBase(object):
         except urllib2.HTTPError, e:
             if e.code == 404:
                 raise
-            log.warn("Error reading %s" % url)
-            log.exception(e)
+            log.exception("Error reading %s" % url)
             raise
         return result
 
@@ -81,9 +80,8 @@ class JenkinsBase(object):
         try:
             urlopen = self.get_jenkins_obj().get_opener()
             result = urlopen(url, data=content).read().strip()
-        except urllib2.HTTPError, e:
-            log.warn("Error post data %s" % url)
-            log.exception(e)
+        except urllib2.HTTPError:
+            log.exception("Error post data %s" % url)
             raise
         return result
 
@@ -93,8 +91,7 @@ class JenkinsBase(object):
             if params: stream = fn_urlopen( url, urllib.urlencode(params) )
             else: stream = fn_urlopen( url )
             html_result = stream.read()
-        except urllib2.HTTPError, e:
-            log.debug( "Error reading %s" % url )
-            log.exception(e)
+        except urllib2.HTTPError:
+            log.exception("Error reading %s" % url)
             raise
         return html_result
index 980698c..9b37837 100644 (file)
@@ -27,7 +27,7 @@ class TestTimestamps(unittest.TestCase):
                         'url': 'http://localhost:8080/job/foo/1/'}
 
        @mock.patch.object(Build, '_poll')
-       def testTimestamp(self, _poll):
+       def test_timestamp(self, _poll):
                _poll.return_value = self.DATA
 
                j = mock.MagicMock()
index ac26af0..7f47eb4 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import setup
 import os
 
 PROJECT_ROOT, _ = os.path.split(__file__)
-VERSION = REVISION = '0.1.14'
+VERSION = REVISION = '0.1.15'
 PROJECT_NAME = 'JenkinsAPI'
 PROJECT_AUTHORS = "Salim Fadhley, Ramon van Alteren, Ruslan Lutsenko"
 PROJECT_EMAILS = 'salimfadhley@gmail.com, ramon@vanalteren.nl, ruslan.lutcenko@gmail.com'
@@ -22,10 +22,12 @@ setup(name=PROJECT_NAME.lower(),
       version=VERSION,
       author=PROJECT_AUTHORS,
       author_email=PROJECT_EMAILS,
-      packages=["jenkinsapi", 'jenkinsapi.utils', 'jenkinsapi.command_line'],
+      packages=['jenkinsapi', 'jenkinsapi.utils', 'jenkinsapi.command_line', 'jenkinsapi_tests'],
       zip_safe=True,
       include_package_data=False,
       install_requires=[],
+      test_suite='jenkinsapi_tests',
+      tests_require=['mock', 'nose'],
       extras_require={
         'kerberos': ['kerberos']
       },