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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

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:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy