From 4962fa3d87fe71358a2d2facb2a0ac25af160054 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Ma=C5=9Blanka?= <piotr.maslanka@henrietta.com.pl> Date: Mon, 14 Dec 2020 21:10:53 +0100 Subject: [PATCH] fix up tests for release --- tempsdb/database.pxd | 2 +- tempsdb/varlen.pyx | 6 +++ tests/{test_db.py => test_chunks.py} | 62 ------------------------- tests/test_series.py | 67 ++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+), 63 deletions(-) rename tests/{test_db.py => test_chunks.py} (59%) create mode 100644 tests/test_series.py diff --git a/tempsdb/database.pxd b/tempsdb/database.pxd index 9d7fbb8..ddbabf8 100644 --- a/tempsdb/database.pxd +++ b/tempsdb/database.pxd @@ -15,7 +15,7 @@ cdef class Database: cpdef TimeSeries get_series(self, str name, bint use_descriptor_based_access=*) cpdef VarlenSeries get_varlen_series(self, str name) - cpdef int register_memory_pressure_manager(self, object mpm) except -1 + cpdef int register_memory_pressure_manager( self, object mpm) except -1 cpdef TimeSeries create_series(self, str name, int block_size, unsigned long entries_per_chunk, int page_size=*, diff --git a/tempsdb/varlen.pyx b/tempsdb/varlen.pyx index 36c9f1d..e79abe2 100644 --- a/tempsdb/varlen.pyx +++ b/tempsdb/varlen.pyx @@ -433,6 +433,12 @@ cdef class VarlenSeries: bint direct_bytes=False): """ Return an iterator with the data + + :param start: timestamp to start iterating + :param stop: timestamp to stop iterating at + :param direct_bytes: whether to return a tuple of (int, bytes) instead of + (int, :class:`~tempsdb.varlen.VarlenEntry`) + :return: a :class:`~tempsdb.varlen.VarlenIterator` instance """ return VarlenIterator(self, start, stop, direct_bytes=direct_bytes) diff --git a/tests/test_db.py b/tests/test_chunks.py similarity index 59% rename from tests/test_db.py rename to tests/test_chunks.py index 91716d1..9e5b4b3 100644 --- a/tests/test_db.py +++ b/tests/test_chunks.py @@ -3,68 +3,6 @@ import unittest class TestDB(unittest.TestCase): - def test_write_series(self): - from tempsdb.series import create_series - series = create_series('test3', 'test3', 10, 4096) - for i in range(8000): - series.append(i, b'\x00'*10) - - self.assertEqual(series.get_current_value(), (i, b'\x00'*10)) - - with series.iterate_range(i, i) as it: - lst = list(it) - self.assertEqual(len(lst), 1) - self.assertEqual(lst[0][0], i) - - series.trim(4100) - - self.assertEqual(len(os.listdir('test3')), 2) - series.close() - - def test_create_series(self): - from tempsdb.series import create_series - - series = create_series('test', 'test', 1, 10) - start, ts = 127, 100 - for i in range(20): - series.append(ts, bytes(bytearray([start]))) - start -= 1 - ts += 100 - - self.do_verify_series(series, 0, 2000) - self.do_verify_series(series, 500, 2000) - self.do_verify_series(series, 1000, 2000) - self.do_verify_series(series, 1500, 2000) - self.do_verify_series(series, 0, 500) - self.do_verify_series(series, 0, 1200) - self.do_verify_series(series, 0, 1800) - series.close() - - def test_create_series_gzip(self): - from tempsdb.series import create_series - - series = create_series('test.gz', 'test.gz', 1, 10, gzip_level=6) - start, ts = 127, 100 - for i in range(20): - series.append(ts, bytes(bytearray([start]))) - start -= 1 - ts += 100 - - self.do_verify_series(series, 0, 2000) - self.do_verify_series(series, 500, 2000) - self.do_verify_series(series, 1000, 2000) - self.do_verify_series(series, 1500, 2000) - self.do_verify_series(series, 0, 500) - self.do_verify_series(series, 0, 1200) - self.do_verify_series(series, 0, 1800) - series.close() - - def do_verify_series(self, series, start, stop): - it = series.iterate_range(start, stop) - items = list(it) - it.close() - self.assertGreaterEqual(items[0][0], start) - self.assertLessEqual(items[-1][0], stop) def test_chunk_alternative(self): from tempsdb.chunks.normal import NormalChunk diff --git a/tests/test_series.py b/tests/test_series.py new file mode 100644 index 0000000..66f0313 --- /dev/null +++ b/tests/test_series.py @@ -0,0 +1,67 @@ +import os +import unittest + + +class TestSeries(unittest.TestCase): + def test_write_series(self): + from tempsdb.series import create_series + series = create_series('test3', 'test3', 10, 4096) + for i in range(8000): + series.append(i, b'\x00'*10) + + self.assertEqual(series.get_current_value(), (i, b'\x00'*10)) + + with series.iterate_range(i, i) as it: + lst = list(it) + self.assertEqual(len(lst), 1) + self.assertEqual(lst[0][0], i) + + series.trim(4100) + + self.assertEqual(len(os.listdir('test3')), 2) + series.close() + + def test_create_series(self): + from tempsdb.series import create_series + + series = create_series('test', 'test', 1, 10) + start, ts = 127, 100 + for i in range(20): + series.append(ts, bytes(bytearray([start]))) + start -= 1 + ts += 100 + + self.do_verify_series(series, 0, 2000) + self.do_verify_series(series, 500, 2000) + self.do_verify_series(series, 1000, 2000) + self.do_verify_series(series, 1500, 2000) + self.do_verify_series(series, 0, 500) + self.do_verify_series(series, 0, 1200) + self.do_verify_series(series, 0, 1800) + series.close() + + def test_create_series_gzip(self): + from tempsdb.series import create_series + + series = create_series('test.gz', 'test.gz', 1, 10, gzip_level=6) + start, ts = 127, 100 + for i in range(20): + series.append(ts, bytes(bytearray([start]))) + start -= 1 + ts += 100 + + self.do_verify_series(series, 0, 2000) + self.do_verify_series(series, 500, 2000) + self.do_verify_series(series, 1000, 2000) + self.do_verify_series(series, 1500, 2000) + self.do_verify_series(series, 0, 500) + self.do_verify_series(series, 0, 1200) + self.do_verify_series(series, 0, 1800) + series.close() + + def do_verify_series(self, series, start, stop): + it = series.iterate_range(start, stop) + items = list(it) + it.close() + self.assertGreaterEqual(items[0][0], start) + self.assertLessEqual(items[-1][0], stop) -- GitLab