Fix broken tests

This commit is contained in:
Joseph Schorr 2015-07-29 14:21:29 -04:00
parent 6625add94b
commit 572d6ba53c
2 changed files with 32 additions and 29 deletions

View file

@ -6,7 +6,7 @@ import re
from flask.ext.mail import Message
from app import mail, app
from data import model
from workers.worker import JobException
from workers.queueworker import JobException
logger = logging.getLogger(__name__)

View file

@ -10,6 +10,36 @@ POLL_PERIOD_SECONDS = 10
logger = logging.getLogger(__name__)
def count_repository_actions():
with UseThenDisconnect(app.config):
try:
# Get a random repository to count.
today = date.today()
yesterday = today - timedelta(days=1)
has_yesterday_actions = (RepositoryActionCount.select(RepositoryActionCount.repository)
.where(RepositoryActionCount.date == yesterday))
to_count = (Repository.select()
.where(~(Repository.id << (has_yesterday_actions)))
.order_by(db_random_func()).get())
logger.debug('Counting: %s', to_count.id)
actions = (LogEntry.select()
.where(LogEntry.repository == to_count,
LogEntry.datetime >= yesterday,
LogEntry.datetime < today)
.count())
# Create the row.
try:
RepositoryActionCount.create(repository=to_count, date=yesterday, count=actions)
except:
logger.exception('Exception when writing count')
except Repository.DoesNotExist:
logger.debug('No further repositories to count')
class RepositoryActionCountWorker(Worker):
def __init__(self):
super(RepositoryActionCountWorker, self).__init__()
@ -17,34 +47,7 @@ class RepositoryActionCountWorker(Worker):
def _count_repository_actions(self):
""" Counts actions for a random repository for the previous day. """
with UseThenDisconnect(app.config):
try:
# Get a random repository to count.
today = date.today()
yesterday = today - timedelta(days=1)
has_yesterday_actions = (RepositoryActionCount.select(RepositoryActionCount.repository)
.where(RepositoryActionCount.date == yesterday))
to_count = (Repository.select()
.where(~(Repository.id << (has_yesterday_actions)))
.order_by(db_random_func()).get())
logger.debug('Counting: %s', to_count.id)
actions = (LogEntry.select()
.where(LogEntry.repository == to_count,
LogEntry.datetime >= yesterday,
LogEntry.datetime < today)
.count())
# Create the row.
try:
RepositoryActionCount.create(repository=to_count, date=yesterday, count=actions)
except:
logger.exception('Exception when writing count')
except Repository.DoesNotExist:
logger.debug('No further repositories to count')
count_repository_actions()
if __name__ == "__main__":
worker = RepositoryActionCountWorker()