Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_diff(self):
testdb = "test-%s" % self.filename
now = int(time.time())
self.addCleanup(self._remove, testdb)
whisper.create(testdb, self.retention)
whisper.create(self.filename, self.retention)
whisper.update(testdb, 1.0, now)
whisper.update(self.filename, 2.0, now)
results = whisper.diff(testdb, self.filename)
expected = [(0, [(int(now), 1.0, 2.0)], 1), (1, [], 0)]
self.assertEqual(results, expected)
now = time.time()
self.addCleanup(self._remove, testdb)
whisper.create(testdb, self.retention)
whisper.create(self.filename, self.retention)
whisper.update(testdb, 1.0, now)
whisper.update(self.filename, 2.0, now)
# Purposefully insert nulls to strip out
previous = now - self.retention[0][0]
whisper.update(testdb, float('NaN'), previous)
results = whisper.diff(testdb, self.filename, ignore_empty=True)
self.assertEqual(
results,
[(0, [(int(now), 1.0, 2.0)], 1), (1, [], 0)],
)
results_empties = whisper.diff(testdb, self.filename, ignore_empty=False)
expected = [(0, [(int(previous), float('NaN'), None), (int(now), 1.0, 2.0)], 2), (1, [], 0)]
# Stupidly, float('NaN') != float('NaN'), so assert that the
# repr() results are the same :/
#
# See this thread:
# https://mail.python.org/pipermail/python-ideas/2010-March/006945.html
self.assertEqual(
repr(results_empties),
repr(expected),
whisper.create(self.filename, self.retention)
whisper.update(testdb, 1.0, now)
whisper.update(self.filename, 2.0, now)
# Purposefully insert nulls to strip out
previous = now - self.retention[0][0]
whisper.update(testdb, float('NaN'), previous)
results = whisper.diff(testdb, self.filename, ignore_empty=True)
self.assertEqual(
results,
[(0, [(int(now), 1.0, 2.0)], 1), (1, [], 0)],
)
results_empties = whisper.diff(testdb, self.filename, ignore_empty=False)
expected = [(0, [(int(previous), float('NaN'), None), (int(now), 1.0, 2.0)], 2), (1, [], 0)]
# Stupidly, float('NaN') != float('NaN'), so assert that the
# repr() results are the same :/
#
# See this thread:
# https://mail.python.org/pipermail/python-ideas/2010-March/006945.html
self.assertEqual(
repr(results_empties),
repr(expected),
)
# Since the above test is somewhat of a sham, ensure that there
# is a nan where there should be.
self.assertTrue(
math.isnan(results_empties[0][1][0][1])
)
def main():
archive_diffs = whisper.diff(path_a, path_b, ignore_empty=options.ignore_empty,
until_time=until_time)
if options.summary:
if options.json:
print_summary_json(archive_diffs, path_a, path_b)
else:
print_summary(archive_diffs, pretty=(not options.columns),
headers=(not options.no_headers))
else:
if options.json:
print_diffs_json(archive_diffs, path_a, path_b)
else:
print_diffs(archive_diffs, pretty=(not options.columns),
headers=(not options.no_headers))