コード例 #1
0
ファイル: store.py プロジェクト: madelinebarch/flock
 def test_update(self):
     # Make a SyncStore that holds 20 objects
     tid = ''.join(chr(random.randint(0, 255)) for _ in range(20))
     dbc = dbconn.DbConn(":memory:")
     store = SyncStore(tid, dbc, 21 * (len('text/plain') + RECORD_OVERHEAD))
     recs = []
     # Make 20 random entries and insert them
     for i in range(20):
         (hid, summary, data) = record.make_worktoken_record('text/plain', str(i))
         recs.append((hid, str(i)))
         store.on_record(record.RT_WORKTOKEN, hid, summary, data)
     # 'Increase score' for the first 10 and update WT
     for i in range(10):
         (_, summary) = record.mine_worktoken(recs[i][0], 1000)
         store.on_summary(record.RT_WORKTOKEN, recs[i][0], summary)
     # Now add 10 more 'premined' values
     for i in range(10):
         (hid, summary, data) = record.make_worktoken_record('text/plain', str(20+i))
         (_, summary) = record.mine_worktoken(hid, 1000)
         store.on_record(record.RT_WORKTOKEN, hid, summary, data)
         recs.append((hid, str(20+i)))
     # Check that right elements survived
     for i in range(10):
         self.assertTrue(store.get_data(record.RT_WORKTOKEN, recs[i][0])[1] == recs[i][1])
     for i in range(10, 20):
         self.assertTrue(store.get_data(record.RT_WORKTOKEN, recs[i][0])[1] is None)
     for i in range(20, 30):
         self.assertTrue(store.get_data(record.RT_WORKTOKEN, recs[i][0])[1] == recs[i][1])
コード例 #2
0
ファイル: store.py プロジェクト: madelinebarch/flock
 def test_get_summary(self):
     # Make a SyncStore that holds 20 objects
     tid = ''.join(chr(random.randint(0, 255)) for _ in range(20))
     dbc = dbconn.DbConn(":memory:")
     store = SyncStore(tid, dbc, 21 * (len('text/plain') + RECORD_OVERHEAD))
     recs = []
     # Make 20 random entries and insert them
     for i in range(20):
         (hid, summary, data) = record.make_worktoken_record('text/plain', str(i))
         recs.append((hid, str(i)))
         store.on_record(record.RT_WORKTOKEN, hid, summary, data)
     # 'Mine' for the first 10 and update WT
     for i in range(10):
         (_, summary) = record.mine_worktoken(recs[i][0], 1000)
         store.on_summary(record.RT_WORKTOKEN, recs[i][0], summary)
     # Check for order of 'events'
     seq = 0
     for i in range(10):
         (seq, rtype, hid, _) = store.get_summary(seq)
         self.assertTrue(rtype == record.RT_WORKTOKEN)
         self.assertTrue(hid == recs[i + 10][0])
     for i in range(10, 20):
         (seq, rtype, hid, _) = store.get_summary(seq)
         self.assertTrue(rtype == record.RT_WORKTOKEN)
         self.assertTrue(hid == recs[i - 10][0])
     self.assertTrue(store.get_summary(seq)[0] is None)
コード例 #3
0
ファイル: api.py プロジェクト: madelinebarch/flock
 def tact_add_record(self, tid, obj):
     logger.info('Got a add_record: tid = %s, val= %s', tid.encode('hex'), obj)
     the_store = self.node.get_store(tid)
     if the_store is None:
         raise HttpException(404, "Not Found")
     (hid, _, body) = record.make_worktoken_record('application/json', json.dumps(obj))
     (_, summary) = record.mine_worktoken(hid, 1000)
     the_store.on_record(record.RT_WORKTOKEN, hid, summary, body)
     self.node.poke(tid)
     return {'success' : True, 'id' : hid.encode('base64')[:-1]}
コード例 #4
0
ファイル: store.py プロジェクト: madelinebarch/flock
 def test_ordered(self):
     # Make a SyncStore that holds 20 objects
     tid = ''.join(chr(random.randint(0, 255)) for _ in range(20))
     dbc = dbconn.DbConn(":memory:")
     store = SyncStore(tid, dbc, 21 * (len('text/plain') + RECORD_OVERHEAD))
     recs = []
     # Make 30 random entries and insert them
     for i in range(30):
         (hid, summary, data) = record.make_worktoken_record('text/plain', str(i))
         score = record.score_record(record.RT_WORKTOKEN, hid, summary)
         recs.append((score, hid, str(i)))
         store.on_record(record.RT_WORKTOKEN, hid, summary, data)
     # Sort entries by score
     recs.sort(key=lambda x: x[0])
     # Check the the right elements are there
     for i in range(10):
         self.assertTrue(store.get_data(record.RT_WORKTOKEN, recs[i][1])[1] == None)
     for i in range(10, 30):
         self.assertTrue(store.get_data(record.RT_WORKTOKEN, recs[i][1])[1] == recs[i][2])
コード例 #5
0
ファイル: sync.py プロジェクト: madelinebarch/flock
 def add_data(all_data, sstore, num):
     (hid, summary, body) = record.make_worktoken_record('text/plain', str(num))
     all_data.append(hid)
     sstore.on_record(record.RT_WORKTOKEN, hid, summary, body)