diff --git a/tempsdb/database.pxd b/tempsdb/database.pxd index 9d7fbb8be64d6ff39e095c2372fe07bcf01f685a..ddbabf8019970d97bf3dd86b70c91bcb990fed85 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 36c9f1d2504fba9e831b8b1c8fd39e1b49f0973b..e79abe2e34b4c3a78f50d10ca67499c2fd054b3f 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 91716d13aff99da11b48d2fc3f184eecaf63c714..9e5b4b3e55475c68d97a9d228ae63d97b9b6dd6b 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 0000000000000000000000000000000000000000..66f03136c0e9fe27fc1dede69ca6cafe495d9815 --- /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)