def test_sample_batch_true(self):
     influxdb.set_sample_probability(1.0)
     self.setup_batch()
     self.assertEqual(influxdb._pending_measurements(), 1000)
     result = influxdb._sample_batch()
     self.assertTrue(result)
     self.assertEqual(influxdb._pending_measurements(), 1000)
 def test_periodic_callback_while_already_processing(self):
     database = str(uuid.uuid4())
     name = str(uuid.uuid4())
     test_value = random.randint(1000, 2000)
     measurement = influxdb.Measurement(database, name)
     measurement.set_field('test', test_value)
     influxdb.add_measurement(measurement)
     self.assertEqual(influxdb._pending_measurements(), 1)
     future = influxdb._on_timeout()
     self.assertIsNone(influxdb._on_timeout())
     self.assertEqual(influxdb._pending_measurements(), 0)
     self.io_loop.add_future(future, self.stop)
     self.wait()
     result = self.get_measurement()
     self.assertEqual(result.db, database)
     self.assertEqual(result.name, name)
     self.assertEqual(result.fields['test'], test_value)
 def test_with_http_error(self):
     database = str(uuid.uuid4())
     name = str(uuid.uuid4())
     test_value = random.randint(1000, 2000)
     measurement = influxdb.Measurement(database, name)
     measurement.set_field('test', test_value)
     influxdb.add_measurement(measurement)
     self.assertEqual(influxdb._pending_measurements(), 1)
     with mock.patch('tornado.httpclient.AsyncHTTPClient.fetch') as fetch:
         future = concurrent.Future()
         fetch.return_value = future
         future.set_exception(httpclient.HTTPError(599, 'TestError'))
         self.flush()
     self.assertEqual(influxdb._pending_measurements(), 1)
     self.flush()
     result = self.get_measurement()
     self.assertEqual(result.db, database)
     self.assertEqual(result.name, name)
     self.assertEqual(result.fields['test'], test_value)
 def test_write_measurements_while_already_processing(self):
     database = str(uuid.uuid4())
     name = str(uuid.uuid4())
     test_value = random.randint(1000, 2000)
     measurement = influxdb.Measurement(database, name)
     measurement.set_field('test', test_value)
     influxdb.add_measurement(measurement)
     self.assertEqual(influxdb._pending_measurements(), 1)
     future = influxdb._on_timeout()
     second_write = influxdb._write_measurements()
     self.assertTrue(concurrent.is_future(second_write))
     self.assertTrue(second_write.done())
     self.assertFalse(second_write.result())
     self.assertEqual(influxdb._pending_measurements(), 0)
     self.io_loop.add_future(future, self.stop)
     self.wait()
     result = self.get_measurement()
     self.assertEqual(result.db, database)
     self.assertEqual(result.name, name)
     self.assertEqual(result.fields['test'], test_value)
 def test_with_oserror(self):
     database = str(uuid.uuid4())
     name = str(uuid.uuid4())
     test_value = random.randint(1000, 2000)
     measurement = influxdb.Measurement(database, name)
     measurement.set_field('test', test_value)
     influxdb.add_measurement(measurement)
     influxdb._create_http_client()
     self.assertEqual(influxdb._pending_measurements(), 1)
     with mock.patch.object(influxdb._http_client, 'fetch') as fetch:
         future = concurrent.Future()
         future.set_exception(OSError())
         fetch.return_value = future
         influxdb._on_timeout()
     self.assertEqual(influxdb._pending_measurements(), 1)
     self.flush()
     result = self.get_measurement()
     self.assertEqual(result.db, database)
     self.assertEqual(result.name, name)
     self.assertEqual(result.fields['test'], test_value)
 def test_timer(self):
     database = str(uuid.uuid4())
     name = str(uuid.uuid4())
     test_value = random.randint(1000, 2000)
     measurement = influxdb.Measurement(database, name)
     measurement.set_field('test', test_value)
     with measurement.duration('duration-test'):
         future = gen.sleep(0.100)
         self.io_loop.add_future(future, self.stop)
         self.wait()
     influxdb.add_measurement(measurement)
     self.assertEqual(influxdb._pending_measurements(), 1)
     self.flush()
     value = self.get_measurement()
     self.assertAlmostEqual(float(value.fields['duration-test']), 0.1, 1)