diff --git a/.travis.yml b/.travis.yml index e19ddf22..5de4454d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,10 +13,10 @@ install: - pip install tox - pip install coveralls - mkdir influxdb_install - - wget https://s3.amazonaws.com/influxdb/influxdb_0.9.2_amd64.deb + - wget https://s3.amazonaws.com/influxdb/influxdb_0.9.3_amd64.deb - dpkg -x influxdb_*_amd64.deb influxdb_install script: - - export INFLUXDB_PYTHON_INFLUXD_PATH=$(pwd)/influxdb_install/opt/influxdb/versions/0.9.2/influxd + - export INFLUXDB_PYTHON_INFLUXD_PATH=$(pwd)/influxdb_install/opt/influxdb/versions/0.9.3/influxd - travis_wait 30 tox -e $TOX_ENV after_success: - if [ "$TOX_ENV" == "coverage" ] ; then coveralls; fi diff --git a/influxdb/line_protocol.py b/influxdb/line_protocol.py index 20ae74b2..6097dbe1 100644 --- a/influxdb/line_protocol.py +++ b/influxdb/line_protocol.py @@ -7,7 +7,7 @@ from numbers import Integral from dateutil.parser import parse -from six import binary_type, text_type +from six import binary_type, text_type, integer_types def _convert_timestamp(timestamp, precision=None): @@ -59,6 +59,8 @@ def _escape_value(value): "\n", "\\n" ) ) + elif isinstance(value, integer_types): + return str(value) + 'i' else: return str(value) diff --git a/influxdb/tests/dataframe_client_test.py b/influxdb/tests/dataframe_client_test.py index edeb2ed0..0583ffba 100644 --- a/influxdb/tests/dataframe_client_test.py +++ b/influxdb/tests/dataframe_client_test.py @@ -32,8 +32,8 @@ def test_write_points_from_dataframe(self): columns=["column_one", "column_two", "column_three"]) expected = ( - b"foo column_one=\"1\",column_three=1.0,column_two=1 0\n" - b"foo column_one=\"2\",column_three=2.0,column_two=2 " + b"foo column_one=\"1\",column_three=1.0,column_two=1i 0\n" + b"foo column_one=\"2\",column_three=2.0,column_two=2i " b"3600000000000\n" ) @@ -71,8 +71,8 @@ def test_write_points_from_dataframe_with_numeric_column_names(self): index=[now, now + timedelta(hours=1)]) expected = ( - b'foo,hello=there 0=\"1\",1=1,2=1.0 0\n' - b'foo,hello=there 0=\"2\",1=2,2=2.0 3600000000000\n' + b'foo,hello=there 0=\"1\",1=1i,2=1.0 0\n' + b'foo,hello=there 0=\"2\",1=2i,2=2.0 3600000000000\n' ) with requests_mock.Mocker() as m: @@ -92,8 +92,8 @@ def test_write_points_from_dataframe_with_period_index(self): columns=["column_one", "column_two", "column_three"]) expected = ( - b"foo column_one=\"1\",column_three=1.0,column_two=1 0\n" - b"foo column_one=\"2\",column_three=2.0,column_two=2 " + b"foo column_one=\"1\",column_three=1.0,column_two=1i 0\n" + b"foo column_one=\"2\",column_three=2.0,column_two=2i " b"86400000000000\n" ) @@ -125,48 +125,48 @@ def test_write_points_from_dataframe_with_time_precision(self): cli.write_points(dataframe, measurement, time_precision='h') self.assertEqual(m.last_request.qs['precision'], ['h']) self.assertEqual( - b'foo column_one="1",column_three=1.0,column_two=1 0\nfoo ' - b'column_one="2",column_three=2.0,column_two=2 1\n', + b'foo column_one="1",column_three=1.0,column_two=1i 0\nfoo ' + b'column_one="2",column_three=2.0,column_two=2i 1\n', m.last_request.body, ) cli.write_points(dataframe, measurement, time_precision='m') self.assertEqual(m.last_request.qs['precision'], ['m']) self.assertEqual( - b'foo column_one="1",column_three=1.0,column_two=1 0\nfoo ' - b'column_one="2",column_three=2.0,column_two=2 60\n', + b'foo column_one="1",column_three=1.0,column_two=1i 0\nfoo ' + b'column_one="2",column_three=2.0,column_two=2i 60\n', m.last_request.body, ) cli.write_points(dataframe, measurement, time_precision='s') self.assertEqual(m.last_request.qs['precision'], ['s']) self.assertEqual( - b'foo column_one="1",column_three=1.0,column_two=1 0\nfoo ' - b'column_one="2",column_three=2.0,column_two=2 3600\n', + b'foo column_one="1",column_three=1.0,column_two=1i 0\nfoo ' + b'column_one="2",column_three=2.0,column_two=2i 3600\n', m.last_request.body, ) cli.write_points(dataframe, measurement, time_precision='ms') self.assertEqual(m.last_request.qs['precision'], ['ms']) self.assertEqual( - b'foo column_one="1",column_three=1.0,column_two=1 0\nfoo ' - b'column_one="2",column_three=2.0,column_two=2 3600000\n', + b'foo column_one="1",column_three=1.0,column_two=1i 0\nfoo ' + b'column_one="2",column_three=2.0,column_two=2i 3600000\n', m.last_request.body, ) cli.write_points(dataframe, measurement, time_precision='u') self.assertEqual(m.last_request.qs['precision'], ['u']) self.assertEqual( - b'foo column_one="1",column_three=1.0,column_two=1 0\nfoo ' - b'column_one="2",column_three=2.0,column_two=2 3600000000\n', + b'foo column_one="1",column_three=1.0,column_two=1i 0\nfoo ' + b'column_one="2",column_three=2.0,column_two=2i 3600000000\n', m.last_request.body, ) cli.write_points(dataframe, measurement, time_precision='n') self.assertEqual(m.last_request.qs['precision'], ['n']) self.assertEqual( - b'foo column_one="1",column_three=1.0,column_two=1 0\n' - b'foo column_one="2",column_three=2.0,column_two=2 ' + b'foo column_one="1",column_three=1.0,column_two=1i 0\n' + b'foo column_one="2",column_three=2.0,column_two=2i ' b'3600000000000\n', m.last_request.body, ) diff --git a/influxdb/tests/server_tests/client_test_with_server.py b/influxdb/tests/server_tests/client_test_with_server.py index 2cc2d1c3..ee150fa5 100644 --- a/influxdb/tests/server_tests/client_test_with_server.py +++ b/influxdb/tests/server_tests/client_test_with_server.py @@ -303,8 +303,8 @@ def test_write_check_read(self): self.test_write() time.sleep(1) rsp = self.cli.query('SELECT * FROM cpu_load_short', database='db') - self.assertListEqual([{'value': 0.64, - 'time': '2009-11-10T23:00:00Z'}], + self.assertListEqual([{'value': 0.64, 'time': '2009-11-10T23:00:00Z', + "host": "server01", "region": "us-west"}], list(rsp.get_points())) def test_write_points(self): @@ -328,7 +328,8 @@ def test_write_points_check_read(self): self.assertEqual( list(rsp), - [[{'value': 0.64, 'time': '2009-11-10T23:00:00Z'}]] + [[{'value': 0.64, 'time': '2009-11-10T23:00:00Z', + "host": "server01", "region": "us-west"}]] ) rsp2 = list(rsp.get_points()) @@ -337,7 +338,8 @@ def test_write_points_check_read(self): self.assertEqual( pt, - {'time': '2009-11-10T23:00:00Z', 'value': 0.64} + {'time': '2009-11-10T23:00:00Z', 'value': 0.64, + "host": "server01", "region": "us-west"} ) @unittest.skip("Broken as of 0.9.0") @@ -367,7 +369,8 @@ def test_write_multiple_points_different_series(self): lrsp = list(rsp) self.assertEqual( - [[{'value': 0.64, 'time': '2009-11-10T23:00:00Z'}]], + [[{'value': 0.64, 'time': '2009-11-10T23:00:00Z', + "host": "server01", "region": "us-west"}]], lrsp ) @@ -375,7 +378,8 @@ def test_write_multiple_points_different_series(self): self.assertEqual( rsp, - [[{'value': 33, 'time': '2009-11-10T23:01:35Z'}]] + [[{'value': 33, 'time': '2009-11-10T23:01:35Z', + "host": "server01", "region": "us-west"}]] ) @unittest.skip("Broken as of 0.9.0") @@ -678,6 +682,7 @@ def test_write_points_udp(self): self.assertEqual( # this is dummy_points : - [{'value': 0.64, 'time': '2009-11-10T23:00:00Z'}], + [{'value': 0.64, 'time': '2009-11-10T23:00:00Z', + "host": "server01", "region": "us-west"}], list(rsp['cpu_load_short']) ) diff --git a/influxdb/tests/server_tests/influxdb.conf.template b/influxdb/tests/server_tests/influxdb.conf.template index 92e381ee..a55c4190 100644 --- a/influxdb/tests/server_tests/influxdb.conf.template +++ b/influxdb/tests/server_tests/influxdb.conf.template @@ -10,6 +10,7 @@ [data] dir = "{data_dir}" + wal-dir = "{wal_dir}" retention-auto-create = true retention-check-enabled = true retention-check-period = "10m0s" @@ -54,7 +55,7 @@ retention-policy = "" consistency-level = "one" -[udp] +[[udp]] enabled = {udp_enabled} bind-address = ":{udp_port}" database = "db" diff --git a/influxdb/tests/server_tests/influxdb_instance.py b/influxdb/tests/server_tests/influxdb_instance.py index ae32bab6..c16e5053 100644 --- a/influxdb/tests/server_tests/influxdb_instance.py +++ b/influxdb/tests/server_tests/influxdb_instance.py @@ -31,6 +31,18 @@ def __init__(self, self.influxd_path = self.find_influxd_path() + errors = 0 + while True: + try: + self._start_server(conf_template, udp_enabled) + break + except RuntimeError: # Happens when the ports are already in use. + errors += 1 + if errors > 2: + raise e + + def _start_server(self, conf_template, udp_enabled): + # create a temporary dir to store all needed files # for the influxdb server instance : self.temp_dir_base = tempfile.mkdtemp() @@ -51,6 +63,7 @@ def __init__(self, conf_data = dict( meta_dir=os.path.join(tempdir, 'meta'), data_dir=os.path.join(tempdir, 'data'), + wal_dir=os.path.join(tempdir, 'wal'), cluster_dir=os.path.join(tempdir, 'state'), handoff_dir=os.path.join(tempdir, 'handoff'), logs_file=os.path.join(self.temp_dir_base, 'logs.txt'), diff --git a/influxdb/tests/test_line_protocol.py b/influxdb/tests/test_line_protocol.py index 6596e7b0..b7fba730 100644 --- a/influxdb/tests/test_line_protocol.py +++ b/influxdb/tests/test_line_protocol.py @@ -20,6 +20,7 @@ def test_make_lines(self): "fields": { "string_val": "hello!", "int_val": 1, + "float_val": 1.1, "none_field": None, } } @@ -29,7 +30,7 @@ def test_make_lines(self): self.assertEqual( line_protocol.make_lines(data), 'test,integer_tag=2,string_tag=hello ' - 'int_val=1,string_val="hello!"\n' + 'float_val=1.1,int_val=1i,string_val="hello!"\n' ) def test_string_val_newline(self):
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: