diff --git a/openerp/cli/server.py b/openerp/cli/server.py index ee2e90bccbd..eec85756469 100644 --- a/openerp/cli/server.py +++ b/openerp/cli/server.py @@ -106,8 +106,15 @@ def run_test_file(dbname, test_file): registry = openerp.modules.registry.RegistryManager.new(dbname, update_module=config['init'] or config['update']) cr = registry.db.cursor() _logger.info('loading test file %s', test_file) - openerp.tools.convert_yaml_import(cr, 'base', file(test_file), 'test', {}, 'test', True) - cr.rollback() + openerp.tools.convert_yaml_import(cr, 'base', file(test_file), 'test', {}, 'init') + + if config['test_commit']: + _logger.info('test %s has been commited', test_file) + cr.commit() + else: + _logger.info('test %s has been rollbacked', test_file) + cr.rollback() + cr.close() except Exception: _logger.exception('Failed to initialize database `%s` and run test file `%s`.', dbname, test_file) diff --git a/openerp/report/render/rml2pdf/trml2pdf.py b/openerp/report/render/rml2pdf/trml2pdf.py index ad1ff656e1d..21a20031a04 100644 --- a/openerp/report/render/rml2pdf/trml2pdf.py +++ b/openerp/report/render/rml2pdf/trml2pdf.py @@ -88,50 +88,30 @@ def _open_image(filename, path=None): class NumberedCanvas(canvas.Canvas): def __init__(self, *args, **kwargs): canvas.Canvas.__init__(self, *args, **kwargs) - self._codes = [] - self._flag=False - self._pageCount=0 - self._currentPage =0 - self._pageCounter=0 - self.pages={} + self._saved_page_states = [] def showPage(self): - self._currentPage +=1 - if not self._flag: - self._pageCount += 1 - else: - self.pages.update({self._currentPage:self._pageCount}) - self._codes.append({'code': self._code, 'stack': self._codeStack}) + self._saved_page_states.append(dict(self.__dict__)) self._startPage() - self._flag=False - def pageCount(self): - if self.pages.get(self._pageCounter,False): - self._pageNumber=0 - self._pageCounter +=1 - key=self._pageCounter - if not self.pages.get(key,False): - while not self.pages.get(key,False): - key += 1 + def save(self): + """add page info to each page (page x of y)""" + for state in self._saved_page_states: + self.__dict__.update(state) + self.draw_page_number() + canvas.Canvas.showPage(self) + canvas.Canvas.save(self) + + def draw_page_number(self): + page_count = len(self._saved_page_states) self.setFont("Helvetica", 8) self.drawRightString((self._pagesize[0]-30), (self._pagesize[1]-40), " %(this)i / %(total)i" % { 'this': self._pageNumber+1, - 'total': self.pages.get(key,False), + 'total': page_count, } ) - def save(self): - """add page info to each page (page x of y)""" - # reset page counter - self._pageNumber = 0 - for code in self._codes: - self._code = code['code'] - self._codeStack = code['stack'] - self.pageCount() - canvas.Canvas.showPage(self) -# self.restoreState() - self._doc.SaveToFile(self._filename, self) class PageCount(platypus.Flowable): def __init__(self, story_count=0):