diff options
Diffstat (limited to 'tests/wqueue2.py')
-rwxr-xr-x | tests/wqueue2.py | 50 |
1 files changed, 7 insertions, 43 deletions
diff --git a/tests/wqueue2.py b/tests/wqueue2.py index 635b52c..087e345 100755 --- a/tests/wqueue2.py +++ b/tests/wqueue2.py @@ -57,54 +57,18 @@ class PersistentJobQueue2: wanted result is a success: do not close the queue. ''' with u8open(filename, 'w') as f: - f.write(self.queue.dump()) + for item in self.queue: + print(item, file=f) + self.queue.clear() def reload_from_filename(self, filename): ''' - reloads a queue after editing it. + reloads a queue after editing it externaly. ''' with u8open(filename) as f: - items = f.read().parse() - - -class PersistentJobQueue: - - def __init__(self, filename): - self.filename = filename - self.lock = asyncio.Lock() - - - def append(self, item): - async with lock: - self.queue.append(item) - with u8open(self.filename, 'a') as f: - await f.write(item) - await f.write('\n') - - async def get_job(self): - async with lock: - self.current_job.append(self.queue.pop()) - return self.current_job[0] - - async def mark_job_done(self): - async with lock: - self.current_job.pop() - - async def pop(self): - # TODO: when wanting to pop an empty queue the pop should wait - # asynchronously for a new filename to arrive - error - firstline = None - async with lock: - with u8open(filename, 'r') as f, \ - u8open(filename + '.tmp', 'w') as fo: - async for line in f: - if not firstline: - firstline = line - else: - await fo.write(line) - shutils.mv(filename + '.tmp', filename) - return firstline + for item in f: + self.queue.append(item) + self.event.set() async def test(): |