Skip to content

Commit b5d272b

Browse files
authored
Merge pull request #2912 from npazosmendez/njpm/fix-non-negative-delta-none-val
Fix TypeError in _nonNegativeDelta when val is None and maxValue is set
2 parents ffaa3d2 + f86f943 commit b5d272b

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

webapp/graphite/render/functions.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2427,14 +2427,17 @@ def nonNegativeDerivative(requestContext, seriesList, maxValue=None, minValue=No
24272427

24282428

24292429
def _nonNegativeDelta(val, prev, maxValue, minValue):
2430+
if val is None:
2431+
return None, None
2432+
24302433
# ignore values larger than maxValue
24312434
if maxValue is not None and val > maxValue:
24322435
return None, None
24332436
if minValue is not None and val < minValue:
24342437
return None, None
24352438

24362439
# first reading
2437-
if None in (prev, val):
2440+
if prev is None:
24382441
return None, val
24392442

24402443
# counter increased, use the difference

webapp/tests/test_functions.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1798,6 +1798,10 @@ def test_perSecond_nones(self):
17981798
result = functions.scaleToSeconds({}, functions.nonNegativeDerivative({}, seriesList), 1)
17991799
self.assertEqual(list(expected[0]), list(result[0]))
18001800

1801+
# None values should not raise TypeError when maxValue is set
1802+
result = functions.perSecond({}, seriesList, maxValue=1000)
1803+
self.assertEqual(list(expected[0]), list(result[0]))
1804+
18011805
def test_perSecond_max(self):
18021806
seriesList = self._gen_series_list_with_data(key='test',start=0,end=600,step=60,data=[0, 120, 240, 480, 960, 900, 120, 240, 119, 479])
18031807
expected = [TimeSeries('perSecond(test)', 0, 600, 60, [None, 2, 2, 4, None, None, None, 2, 6, 6])]

0 commit comments

Comments
 (0)