def test_should_timeout(self): with self.assertRaises(requests.ReadTimeout): post(batch=[{ 'distinct_id': 'distinct_id', 'event': 'python event', 'type': 'track' }], timeout=0.0001)
def test_valid_request(self): res = post(batch=[{ 'distinct_id': 'distinct_id', 'event': 'python event', 'type': 'track' }]) self.assertEqual(res.status_code, 200)
def test_should_not_timeout(self): res = post(batch=[{ 'distinct_id': 'distinct_id', 'event': 'python event', 'type': 'track' }], timeout=15) self.assertEqual(res.status_code, 200)
def _enqueue(self, msg): """Push a new `msg` onto the queue, return `(success, msg)`""" timestamp = msg['timestamp'] if timestamp is None: timestamp = datetime.utcnow().replace(tzinfo=tzutc()) message_id = msg.get('messageId') if message_id is None: message_id = uuid4() require('type', msg['type'], string_types) require('timestamp', timestamp, datetime) require('context', msg['context'], dict) # add common timestamp = guess_timezone(timestamp) msg['timestamp'] = timestamp.isoformat() msg['messageId'] = stringify_id(message_id) msg['properties']['$lib'] = 'posthog-python' msg['properties']['$lib_version'] = VERSION msg['distinct_id'] = stringify_id(msg.get('distinct_id', None)) msg = clean(msg) self.log.debug('queueing: %s', msg) # if send is False, return msg as if it was successfully queued if not self.send: return True, msg if self.sync_mode: self.log.debug('enqueued with blocking %s.', msg['type']) post(self.api_key, self.host, gzip=self.gzip, timeout=self.timeout, batch=[msg]) return True, msg try: self.queue.put(msg, block=False) self.log.debug('enqueued %s.', msg['type']) return True, msg except queue.Full: self.log.warning('analytics-python queue is full') return False, msg
def send_request(): post(self.api_key, self.host, gzip=self.gzip, timeout=self.timeout, batch=batch)