~hudson-openstack/burrow/trunk

« back to all changes in this revision

Viewing changes to burrow/backend/sqlite.py

  • Committer: Tarmac
  • Author(s): Eric Day
  • Date: 2011-08-24 20:23:03 UTC
  • mfrom: (33.1.7 doc-updates)
  • Revision ID: tarmac-20110824202303-fc09r0aendi1tn6m
Added client API unit tests, moved exceptions to main burrow module, and added more WSGI frontend tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
66
66
        if filters is None or len(filters) == 0:
67
67
            query = 'SELECT rowid FROM accounts LIMIT 1'
68
68
            if len(self.db.execute(query).fetchall()) == 0:
69
 
                raise burrow.backend.NotFound()
 
69
                raise burrow.NotFound('Account not found')
70
70
            self.db.execute('DELETE FROM accounts')
71
71
            self.db.execute('DELETE FROM queues')
72
72
            self.db.execute('DELETE FROM messages')
136
136
                marker = self._get_account(marker)
137
137
                query += ' WHERE rowid > ?'
138
138
                values += (marker,)
139
 
            except burrow.backend.NotFound:
 
139
            except burrow.NotFound:
140
140
                marker = None
141
141
        if limit is not None:
142
142
            query += ' LIMIT ?'
146
146
            count += 1
147
147
            yield row
148
148
        if count == 0:
149
 
            raise burrow.backend.NotFound()
 
149
            raise burrow.NotFound('Account not found')
150
150
 
151
151
    def _get_account(self, account):
152
152
        '''Get the rowid for a given account ID.'''
153
153
        query = 'SELECT rowid FROM accounts WHERE account=?'
154
154
        rows = self.db.execute(query, (account,)).fetchall()
155
155
        if len(rows) == 0:
156
 
            raise burrow.backend.NotFound()
 
156
            raise burrow.NotFound('Account not found')
157
157
        return rows[0][0]
158
158
 
159
159
    def delete_queues(self, account, filters=None):
213
213
                marker = self._get_queue(account_rowid, marker)
214
214
                query += ' AND rowid > ?'
215
215
                values += (marker,)
216
 
            except burrow.backend.NotFound:
 
216
            except burrow.NotFound:
217
217
                marker = None
218
218
        if limit is not None:
219
219
            query += ' LIMIT ?'
223
223
            count += 1
224
224
            yield row
225
225
        if count == 0:
226
 
            raise burrow.backend.NotFound()
 
226
            raise burrow.NotFound('Queue not found')
227
227
 
228
228
    def _get_queue(self, account_rowid, queue):
229
229
        '''Get the rowid for a given queue ID.'''
230
230
        query = 'SELECT rowid FROM queues WHERE account=? AND queue=?'
231
231
        rows = self.db.execute(query, (account_rowid, queue)).fetchall()
232
232
        if len(rows) == 0:
233
 
            raise burrow.backend.NotFound()
 
233
            raise burrow.NotFound('Queue not found')
234
234
        return rows[0][0]
235
235
 
236
236
    @burrow.backend.wait_without_attributes
311
311
                marker = self._get_message(queue_rowid, marker)
312
312
                query += ' AND rowid > ?'
313
313
                values += (marker,)
314
 
            except burrow.backend.NotFound:
 
314
            except burrow.NotFound:
315
315
                marker = None
316
316
        if match_hidden is False:
317
317
            query += ' AND hide=0'
323
323
            count += 1
324
324
            yield row
325
325
        if count == 0:
326
 
            raise burrow.backend.NotFound()
 
326
            raise burrow.NotFound('Message not found')
327
327
 
328
328
    def _get_message(self, queue_rowid, message, full=False):
329
329
        '''Get the rowid for a given message ID.'''
334
334
        query += ' FROM messages WHERE queue=? AND message=?'
335
335
        rows = self.db.execute(query, (queue_rowid, message)).fetchall()
336
336
        if len(rows) == 0:
337
 
            raise burrow.backend.NotFound()
 
337
            raise burrow.NotFound('Message not found')
338
338
        if full:
339
339
            return rows[0]
340
340
        return rows[0][0]
390
390
        ttl, hide = self._get_attributes(attributes, ttl=0, hide=0)
391
391
        try:
392
392
            account_rowid = self._get_account(account)
393
 
        except burrow.backend.NotFound:
 
393
        except burrow.NotFound:
394
394
            query = 'INSERT INTO accounts VALUES (?)'
395
395
            account_rowid = self.db.execute(query, (account,)).lastrowid
396
396
        try:
397
397
            queue_rowid = self._get_queue(account_rowid, queue)
398
 
        except burrow.backend.NotFound:
 
398
        except burrow.NotFound:
399
399
            query = 'INSERT INTO queues VALUES (?,?)'
400
400
            values = (account_rowid, queue)
401
401
            queue_rowid = self.db.execute(query, values).lastrowid
404
404
            query = 'UPDATE messages SET ttl=?,hide=?,body=? WHERE rowid=?'
405
405
            self.db.execute(query, (ttl, hide, body, message_rowid))
406
406
            created = False
407
 
        except burrow.backend.NotFound:
 
407
        except burrow.NotFound:
408
408
            query = 'INSERT INTO messages VALUES (?,?,?,?,?)'
409
409
            self.db.execute(query, (queue_rowid, message, ttl, hide, body))
410
410
            created = True