summaryrefslogtreecommitdiffstats
path: root/venv/lib/python3.9/site-packages/smmap/test/lib.py
diff options
context:
space:
mode:
Diffstat (limited to 'venv/lib/python3.9/site-packages/smmap/test/lib.py')
-rw-r--r--venv/lib/python3.9/site-packages/smmap/test/lib.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/venv/lib/python3.9/site-packages/smmap/test/lib.py b/venv/lib/python3.9/site-packages/smmap/test/lib.py
new file mode 100644
index 00000000..ca91ee91
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/smmap/test/lib.py
@@ -0,0 +1,72 @@
+"""Provide base classes for the test system"""
+from unittest import TestCase
+import os
+import tempfile
+
+__all__ = ['TestBase', 'FileCreator']
+
+
+#{ Utilities
+
+class FileCreator:
+
+ """A instance which creates a temporary file with a prefix and a given size
+ and provides this info to the user.
+ Once it gets deleted, it will remove the temporary file as well."""
+ __slots__ = ("_size", "_path")
+
+ def __init__(self, size, prefix=''):
+ assert size, "Require size to be larger 0"
+
+ self._path = tempfile.mktemp(prefix=prefix)
+ self._size = size
+
+ with open(self._path, "wb") as fp:
+ fp.seek(size - 1)
+ fp.write(b'1')
+
+ assert os.path.getsize(self.path) == size
+
+ def __del__(self):
+ try:
+ os.remove(self.path)
+ except OSError:
+ pass
+ # END exception handling
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ self.__del__()
+
+ @property
+ def path(self):
+ return self._path
+
+ @property
+ def size(self):
+ return self._size
+
+#} END utilities
+
+
+class TestBase(TestCase):
+
+ """Foundation used by all tests"""
+
+ #{ Configuration
+ k_window_test_size = 1000 * 1000 * 8 + 5195
+ #} END configuration
+
+ #{ Overrides
+ @classmethod
+ def setUpAll(cls):
+ # nothing for now
+ pass
+
+ # END overrides
+
+ #{ Interface
+
+ #} END interface