def test_upload(self): q = Queue() consumer = Consumer(q, 'testsecret') track = {'type': 'track', 'event': 'python event', 'userId': 'userId'} q.put(track) success = consumer.upload() self.assertTrue(success)
def test_next_limit(self): q = Queue() upload_size = 50 consumer = Consumer(q, '', upload_size) for i in range(10000): q.put(i) next = consumer.next() self.assertEqual(next, list(range(upload_size)))
def __init__(self, write_key=None, host=None, debug=False, max_queue_size=10000, send=True, on_error=None, flush_at=100, flush_interval=0.5, gzip=False, max_retries=3, sync_mode=False, timeout=15, thread=1): require('write_key', write_key, string_types) self.queue = queue.Queue(max_queue_size) self.write_key = write_key self.on_error = on_error self.debug = debug self.send = send self.sync_mode = sync_mode self.host = host self.gzip = gzip self.timeout = timeout if debug: self.log.setLevel(logging.DEBUG) if sync_mode: self.consumers = None else: # On program exit, allow the consumer thread to exit cleanly. # This prevents exceptions and a messy shutdown when the # interpreter is destroyed before the daemon thread finishes # execution. However, it is *not* the same as flushing the queue! # To guarantee all messages have been delivered, you'll still need # to call flush(). if send: atexit.register(self.join) for n in range(thread): self.consumers = [] consumer = Consumer( self.queue, write_key, host=host, on_error=on_error, flush_at=flush_at, flush_interval=flush_interval, gzip=gzip, retries=max_retries, timeout=timeout, ) self.consumers.append(consumer) # if we've disabled sending, just don't start the consumer if send: consumer.start()
def __init__(self, write_key=None, debug=False, max_queue_size=10000, send=True, on_error=None): require('write_key', write_key, string_types) self.queue = queue.Queue(max_queue_size) self.consumer = Consumer(self.queue, write_key, on_error=on_error) self.write_key = write_key self.on_error = on_error self.debug = debug self.send = send if debug: self.log.setLevel(logging.DEBUG) # if we've disabled sending, just don't start the consumer if send: self.consumer.start()
def test_pause(self): consumer = Consumer(None, 'testsecret') consumer.pause() self.assertFalse(consumer.running)
def test_request(self): consumer = Consumer(None, 'testsecret') track = {'type': 'track', 'event': 'python event', 'userId': 'userId'} consumer.request([track])
def test_next(self): q = Queue() consumer = Consumer(q, '') q.put(1) next = consumer.next() self.assertEqual(next, [1])