changeset 437:6d5ac24061dc

Fix build queue population compatiblity with Trac 0.11, where revision timestamps are `datetime` objects.
author cmlenz
date Fri, 17 Aug 2007 11:15:43 +0000
parents cfbc9ee622d5
children 99d516f75169
files bitten/model.py bitten/queue.py bitten/web_ui.py
diffstat 3 files changed, 16 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/bitten/model.py
+++ b/bitten/model.py
@@ -408,9 +408,9 @@
         cursor.execute("INSERT INTO bitten_build (config,rev,rev_time,platform,"
                        "slave,started,stopped,status) "
                        "VALUES (%s,%s,%s,%s,%s,%s,%s,%s)",
-                       (self.config, self.rev, self.rev_time, self.platform,
-                        self.slave or '', self.started or 0, self.stopped or 0,
-                        self.status))
+                       (self.config, self.rev, int(self.rev_time),
+                        self.platform, self.slave or '', self.started or 0,
+                        self.stopped or 0, self.status))
         self.id = db.get_last_id(cursor, 'bitten_build')
         if self.slave_info:
             cursor.executemany("INSERT INTO bitten_slave VALUES (%s,%s,%s)",
--- a/bitten/queue.py
+++ b/bitten/queue.py
@@ -19,6 +19,7 @@
 platforms.
 """
 
+from datetime import datetime
 from itertools import ifilter
 import logging
 import re
@@ -214,11 +215,18 @@
                     self.log.info('Enqueuing build of configuration "%s" at '
                                   'revision [%s] on %s', config.name, rev,
                                   platform.name)
+
+                    rev_time = repos.get_changeset(rev).date
+                    if isinstance(rev_time, datetime): # Trac>=0.11
+                        from trac.util.datefmt import to_timestamp
+                        rev_time = to_timestamp(rev_time)
+
                     build = Build(self.env, config=config.name,
                                   platform=platform.id, rev=str(rev),
-                                  rev_time=repos.get_changeset(rev).date)
+                                  rev_time=rev_time)
                     builds.append(build)
                     break
+
                 if not self.build_all:
                     self.log.debug('Ignoring older revisions for configuration '
                                    '%r', config.name)
--- a/bitten/web_ui.py
+++ b/bitten/web_ui.py
@@ -197,7 +197,7 @@
 
             in_progress_builds = Build.select(self.env, config=config.name,
                                               status=Build.IN_PROGRESS, db=db)
-            
+
             # sort correctly by revision.
             builds = list(in_progress_builds)
             builds.sort(lambda x, y: int(y.rev) - int(x.rev))
@@ -212,7 +212,7 @@
                 req.hdf[prefix2 + '.rev_href'] = self.env.href.changeset(rev)
                 platform = TargetPlatform.fetch(self.env, build.platform)
                 req.hdf[prefix2 + '.platform'] = platform.name
-                
+
                 for step in BuildStep.select(self.env, build=build.id, db=db):
                     req.hdf['%s.steps.%s' % (prefix2, step.name)] = {
                          'description': step.description,
@@ -220,7 +220,8 @@
                                      datetime.fromtimestamp(step.started),
                          'failed': not step.successful,
                          'errors': step.errors,
-                         'href': req.hdf[prefix2 + '.href'] + '#step_' + step.name }
+                         'href': req.hdf[prefix2 + '.href'] + '#step_' + step.name
+                    }
 
                 current_builds = current_builds + 1
 
Copyright (C) 2012-2017 Edgewall Software