Skip to content

Commit f368efa

Browse files
author
Christopher Rabotin
committed
Fixed __initialized__ issue when using multiple Helpers. Working on Py3
now.
1 parent 57b8d06 commit f368efa

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

influxdb/helper.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ def __new__(cls, *args, **kwargs):
5151
'''
5252
Initializes class attributes for subsequent constructor calls.
5353
'''
54-
if not SeriesHelper.__initialized__:
55-
SeriesHelper.__initialized__ = True
54+
if not cls.__initialized__:
55+
cls.__initialized__ = True
5656
try:
5757
_meta = getattr(cls, 'Meta')
5858
except AttributeError:

tests/influxdb/helper_test.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,28 @@ def testSeveralSeriesNames(self):
6565
self.assertListEqual(rcvd, expectation, 'Invalid JSON body of time series returned from _json_body_ for several series names: {}.'.format(rcvd))
6666
TestSeriesHelper.MySeriesHelper._reset_()
6767
self.assertEqual(TestSeriesHelper.MySeriesHelper._json_body_(), [], 'Resetting helper did not empty datapoints.')
68+
69+
def testInvalidHelpers(self):
70+
'''
71+
Tests errors in invalid helpers.
72+
'''
73+
class MissingMeta(SeriesHelper):
74+
pass
75+
76+
class MissingClient(SeriesHelper):
77+
class Meta:
78+
series_name = 'events.stats.{server_name}'
79+
fields = ['time', 'server_name']
80+
81+
class MissingSeriesName(SeriesHelper):
82+
class Meta:
83+
client = TestSeriesHelper.client
84+
fields = ['time', 'server_name']
85+
86+
class MissingFields(SeriesHelper):
87+
class Meta:
88+
client = TestSeriesHelper.client
89+
series_name = 'events.stats.{server_name}'
90+
91+
for cls in [MissingMeta, MissingClient, MissingFields, MissingSeriesName]:
92+
self.assertRaises(AttributeError, cls, **{'time': 159, 'server_name': 'us.east-1'})

0 commit comments

Comments
 (0)