]> git.llucax.com Git - z.facultad/75.52/sercom.git/blob - testtester.py
Permitir pasar el el archivo de configuración por línea de comandos al tester.
[z.facultad/75.52/sercom.git] / testtester.py
1 #!/usr/bin/python
2 # vim: set et sw=4 sts=4 encoding=utf-8 foldmethod=marker :
3
4 import sys
5 try:
6     configfile = sys.argv[1]
7 except:
8     configfile = 'dev.cfg'
9
10 #{{{ TG config/hacks
11 import turbogears
12 import turbogears.database
13 turbogears.update_config(configfile=configfile, modulename="sercom.config")
14 import turbogears.i18n
15 __builtins__._ = turbogears.i18n.plain_gettext # Nada de gettext lazy
16 #}}}
17
18 from sercom.tester import Tester
19 from sercom.model import Entrega, hub
20 from os.path import join
21 from datetime import datetime
22 import time
23 import logging
24
25 log = logging.getLogger('sercom.tester')
26
27 class Queue(object):
28     def __init__(self):
29         self.go_on = True
30     def get(self):
31         while self.go_on:
32             try:
33                 hub.begin()
34                 try:
35                     e = Entrega.selectBy(inicio=None).orderBy(Entrega.q.fecha)[0]
36                     e.inicio = datetime.now()
37                 finally:
38                     hub.commit()
39                 return e.id
40             except IndexError:
41                 log.debug(_(u'No hay entregas pendientes'))
42                 time.sleep(10) # TODO config?
43             except Exception, e:
44                 if isinstance(e, SystemExit):
45                     raise
46                 log.exception('Queue: ')
47                 time.sleep(10) # TODO config?
48         return None
49
50 q = Queue()
51
52 tester = Tester(name='pepe', path='var', home=join('home', 'sercom'), queue=q)
53
54 tester.run()
55