Skip to content

Commit d78df76

Browse files
author
aviau
committed
Added test_auto_commit
1 parent c2492eb commit d78df76

File tree

2 files changed

+35
-8
lines changed

2 files changed

+35
-8
lines changed

influxdb/helper.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,9 @@ def __init__(self, **kw):
108108

109109
cls._datapoints[cls._series_name.format(**kw)].append(cls._type(**kw))
110110

111-
if cls._autocommit and len(cls._datapoints) >= cls._bulk_size:
111+
if cls._autocommit and \
112+
sum(len(series) for series in cls._datapoints.values()) \
113+
>= cls._bulk_size:
112114
cls.commit()
113115

114116
@classmethod

tests/influxdb/helper_test.py

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import unittest
44
import warnings
55

6+
import mock
67
from influxdb import SeriesHelper, InfluxDBClient
78
from requests.exceptions import ConnectionError
89

@@ -18,7 +19,8 @@ def setUpClass(cls):
1819
8086,
1920
'username',
2021
'password',
21-
'database')
22+
'database'
23+
)
2224

2325
class MySeriesHelper(SeriesHelper):
2426

@@ -31,10 +33,33 @@ class Meta:
3133

3234
TestSeriesHelper.MySeriesHelper = MySeriesHelper
3335

36+
def test_auto_commit(self):
37+
"""
38+
Tests that write_points is called after the right number of events
39+
"""
40+
class AutoCommitTest(SeriesHelper):
41+
42+
class Meta:
43+
series_name = 'events.stats.{server_name}'
44+
fields = ['time', 'server_name']
45+
bulk_size = 5
46+
client = InfluxDBClient()
47+
autocommit = True
48+
49+
fake_write_points = mock.MagicMock()
50+
AutoCommitTest(server_name='us.east-1', time=159)
51+
AutoCommitTest._client.write_points = fake_write_points
52+
AutoCommitTest(server_name='us.east-1', time=158)
53+
AutoCommitTest(server_name='us.east-1', time=157)
54+
AutoCommitTest(server_name='us.east-1', time=156)
55+
self.assertFalse(fake_write_points.called)
56+
AutoCommitTest(server_name='us.east-1', time=3443)
57+
self.assertTrue(fake_write_points.called)
58+
3459
def testSingleSeriesName(self):
35-
'''
60+
"""
3661
Tests JSON conversion when there is only one series name.
37-
'''
62+
"""
3863
TestSeriesHelper.MySeriesHelper(server_name='us.east-1', time=159)
3964
TestSeriesHelper.MySeriesHelper(server_name='us.east-1', time=158)
4065
TestSeriesHelper.MySeriesHelper(server_name='us.east-1', time=157)
@@ -121,9 +146,9 @@ class Meta:
121146
'server_name': 'us.east-1'})
122147

123148
def testWarnBulkSizeZero(self):
124-
'''
149+
"""
125150
Tests warning for an invalid bulk size.
126-
'''
151+
"""
127152
class WarnBulkSizeZero(SeriesHelper):
128153

129154
class Meta:
@@ -148,9 +173,9 @@ class Meta:
148173
'Warning message did not contain "forced to 1".')
149174

150175
def testWarnBulkSizeNoEffect(self):
151-
'''
176+
"""
152177
Tests warning for a set bulk size but autocommit False.
153-
'''
178+
"""
154179
class WarnBulkSizeNoEffect(SeriesHelper):
155180

156181
class Meta:

0 commit comments

Comments
 (0)