From 87bcceb6db3556c45db0412227dcb52cd754f43c Mon Sep 17 00:00:00 2001 From: Jakub Bednar Date: Mon, 6 Jan 2020 11:04:21 +0100 Subject: [PATCH] fix: use default org --- CHANGELOG.md | 3 +++ influxdb_client/client/write_api.py | 8 +++--- tests/test_WriteApi.py | 39 +++++++++++++++++++++++------ 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57fde5ff..3d4e1a0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ ### API 1. [#47](https://github.com/influxdata/influxdb-client-python/pull/47): Updated swagger to latest version +### Bugs +1. [#48](https://github.com/influxdata/influxdb-client-python/pull/48): InfluxDBClient default org is used by WriteAPI + ## 1.2.0 [2019-12-06] ### Features diff --git a/influxdb_client/client/write_api.py b/influxdb_client/client/write_api.py index 74fc678d..8bc988e6 100644 --- a/influxdb_client/client/write_api.py +++ b/influxdb_client/client/write_api.py @@ -1,6 +1,5 @@ # coding: utf-8 import logging -import threading from datetime import timedelta from enum import Enum from random import random @@ -134,9 +133,9 @@ def __init__(self, influxdb_client, write_options: WriteOptions = WriteOptions() self._subject = None self._disposable = None - def write(self, bucket: str, org: str, + def write(self, bucket: str, org: str = None, record: Union[ - str, List['str'], Point, List['Point'], dict, List['dict'], bytes, List['bytes'], Observable], + str, List['str'], Point, List['Point'], dict, List['dict'], bytes, List['bytes'], Observable] = None, write_precision: WritePrecision = DEFAULT_WRITE_PRECISION) -> None: """ Writes time-series data into influxdb. @@ -148,6 +147,9 @@ def write(self, bucket: str, org: str, """ + if org is None: + org = self._influxdb_client.org + if self._write_options.write_type is WriteType.batching: return self._write_batching(bucket, org, record, write_precision) diff --git a/tests/test_WriteApi.py b/tests/test_WriteApi.py index fea13723..cb4f0c9b 100644 --- a/tests/test_WriteApi.py +++ b/tests/test_WriteApi.py @@ -28,7 +28,6 @@ def test_write_line_protocol(self): record = "h2o_feet,location=coyote_creek level\\ water_level=1.0 1" self.write_client.write(bucket.name, self.org, record) - self.write_client.flush() result = self.query_api.query( "from(bucket:\"" + bucket.name + "\") |> range(start: 1970-01-01T00:00:00.000000001Z) |> last()", self.org) @@ -42,8 +41,6 @@ def test_write_line_protocol(self): self.delete_test_bucket(bucket) - ##################################### - def test_write_precision(self): bucket = self.create_test_bucket() @@ -67,8 +64,6 @@ def test_write_records_list(self): self.write_client.write(bucket.name, self.org, record_list) - self.write_client.flush() - query = 'from(bucket:"' + bucket.name + '") |> range(start: 1970-01-01T00:00:00.000000001Z)' print(query) @@ -104,7 +99,6 @@ def test_write_points_unicode(self): record_list = [p] self.write_client.write(bucket.name, self.org, record_list) - self.write_client.flush() query = 'from(bucket:"' + bucket.name + '") |> range(start: 1970-01-01T00:00:00.000000001Z)' flux_result = self.client.query_api().query(query) @@ -142,7 +136,6 @@ def test_write_dictionary(self): "time": "2009-11-10T23:00:00Z", "fields": {"water_level": 1.0}} self.write_client.write(_bucket.name, self.org, _point) - self.write_client.flush() result = self.query_api.query( "from(bucket:\"" + _bucket.name + "\") |> range(start: 1970-01-01T00:00:00.000000001Z) |> last()", self.org) @@ -162,7 +155,6 @@ def test_write_bytes(self): _bytes = "h2o_feet,location=coyote_creek level\\ water_level=1.0 1".encode("utf-8") self.write_client.write(_bucket.name, self.org, _bytes) - self.write_client.flush() result = self.query_api.query( "from(bucket:\"" + _bucket.name + "\") |> range(start: 1970-01-01T00:00:00.000000001Z) |> last()", self.org) @@ -177,6 +169,37 @@ def test_write_bytes(self): self.delete_test_bucket(_bucket) + def test_use_default_org(self): + bucket = self.create_test_bucket() + + record = "h2o_feet,location=coyote_creek level\\ water_level=1.0 1" + self.write_client.write(bucket.name, record=record) + + result = self.query_api.query( + "from(bucket:\"" + bucket.name + "\") |> range(start: 1970-01-01T00:00:00.000000001Z) |> last()", self.org) + + self.assertEqual(len(result), 1) + self.assertEqual(result[0].records[0].get_measurement(), "h2o_feet") + self.assertEqual(result[0].records[0].get_value(), 1.0) + self.assertEqual(result[0].records[0].get_field(), "level water_level") + self.assertEqual(result[0].records[0].get_time(), + datetime.datetime(1970, 1, 1, 0, 0, tzinfo=datetime.timezone.utc)) + + def test_write_empty_data(self): + bucket = self.create_test_bucket() + + with self.assertRaises(ApiException) as cm: + self.write_client.write(bucket.name) + exception = cm.exception + + self.assertEqual(400, exception.status) + self.assertEqual("Bad Request", exception.reason) + + result = self.query_api.query( + "from(bucket:\"" + bucket.name + "\") |> range(start: 1970-01-01T00:00:00.000000001Z) |> last()", self.org) + + self.assertEqual(len(result), 0) + class AsynchronousWriteTest(BaseTest):