Skip to content

Commit

Permalink
fix py3k issues.
Browse files Browse the repository at this point in the history
  • Loading branch information
coleifer committed Jan 5, 2016
1 parent 800af48 commit dbfcf3c
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 32 deletions.
1 change: 1 addition & 0 deletions huey/storage.py
@@ -1,4 +1,5 @@
import re
import sys
import time

import redis
Expand Down
9 changes: 8 additions & 1 deletion huey/tests/base.py
@@ -1,6 +1,7 @@
import datetime
import json
import logging
import sys
import time
import unittest

Expand All @@ -9,6 +10,12 @@
from huey.registry import registry


def b(s):
if sys.version_info[0] == 3:
return s.encode('utf-8')
return s


test_huey = RedisHuey('testing', blocking=False, read_timeout=0.1)

# Logger used by the consumer.
Expand Down Expand Up @@ -68,7 +75,7 @@ def get_periodic_tasks(self):
def assertTaskEvents(self, *states):
for (status, task) in states:
raw_event = next(self.events)
event_data = json.loads(raw_event['data'])
event_data = json.loads(raw_event['data'].decode('utf-8'))
self.assertEqual(event_data['status'], status)
self.assertEqual(event_data['id'], task.task_id)

Expand Down
5 changes: 3 additions & 2 deletions huey/tests/test_queue.py
Expand Up @@ -9,6 +9,7 @@
from huey.storage import RedisDataStore
from huey.storage import RedisQueue
from huey.storage import RedisSchedule
from huey.tests.base import b
from huey.tests.base import BaseTestCase
from huey.utils import EmptyData
from huey.utils import local_to_utc
Expand Down Expand Up @@ -103,11 +104,11 @@ def test_results_metadata(self):
self.assertEqual(huey_results.all_results(), {})

huey_results.execute(t1)
self.assertEqual(huey_results.all_results().keys(), [t1.task_id])
self.assertEqual(list(huey_results.all_results()), [b(t1.task_id)])

huey_results.execute(t2)
self.assertEqual(sorted(huey_results.all_results().keys()),
sorted([t1.task_id, t2.task_id]))
sorted([b(t1.task_id), b(t2.task_id)]))


class TestHueyQueueAPIs(BaseQueueTestCase):
Expand Down
39 changes: 10 additions & 29 deletions huey/tests/test_storage.py
@@ -1,31 +1,12 @@
import datetime

from huey.tests.base import b
from huey.tests.base import HueyTestCase
from huey.utils import EmptyData


class TestRedisStorage(HueyTestCase):
def test_queues(self):
queue = self.huey.queue
queue.flush()
queue.write('a')
queue.write('b')
self.assertEqual(len(queue), 2)
self.assertEqual(queue.read(), 'a')
self.assertEqual(queue.read(), 'b')

queue.write('c')
queue.write('d')
queue.write('c')
queue.write('x')
queue.write('d')
self.assertEqual(len(queue), 5)
self.assertEqual(queue.remove('c'), 2)
self.assertEqual(len(queue), 3)
self.assertEqual(queue.read(), 'd')
self.assertEqual(queue.read(), 'x')
self.assertEqual(queue.read(), 'd')

queue.flush()

@self.huey.task()
Expand All @@ -48,14 +29,14 @@ def test_data_stores(self):
data_store.put('k1', 'v1')
data_store.put('k2', 'v2')
data_store.put('k3', 'v3')
self.assertEqual(data_store.peek('k2'), 'v2')
self.assertEqual(data_store.get('k2'), 'v2')
self.assertEqual(data_store.peek('k2'), b('v2'))
self.assertEqual(data_store.get('k2'), b('v2'))
self.assertEqual(data_store.peek('k2'), EmptyData)
self.assertEqual(data_store.get('k2'), EmptyData)

self.assertEqual(data_store.peek('k3'), 'v3')
self.assertEqual(data_store.peek('k3'), b('v3'))
data_store.put('k3', 'v3-2')
self.assertEqual(data_store.peek('k3'), 'v3-2')
self.assertEqual(data_store.peek('k3'), b('v3-2'))

def test_schedules(self):
schedule = self.huey.schedule
Expand All @@ -79,12 +60,12 @@ def test_schedules(self):

# Ensure the upper boundary is inclusive of whatever timestamp
# is passed in.
self.assertEqual(schedule.read(dt3), ['s1', 's2', 's3'])
self.assertEqual(schedule.read(dt3), [b('s1'), b('s2'), b('s3')])
self.assertEqual(schedule.read(dt3), [])

# Ensure the schedule is flushed and an empty schedule returns an
# empty list.
self.assertEqual(schedule.read(dt4), ['s4'])
self.assertEqual(schedule.read(dt4), [b('s4')])
self.assertEqual(schedule.read(dt4), [])

def test_events(self):
Expand All @@ -97,6 +78,6 @@ def test_events(self):

g = ps.listen()
next(g)
self.assertEqual(next(g)['data'], 'a')
self.assertEqual(next(g)['data'], 'b')
self.assertEqual(next(g)['data'], 'c')
self.assertEqual(next(g)['data'], b('a'))
self.assertEqual(next(g)['data'], b('b'))
self.assertEqual(next(g)['data'], b('c'))

0 comments on commit dbfcf3c

Please sign in to comment.