|
- """Provide base classes for the test system"""
- from unittest import TestCase
- import os
- import tempfile
-
- __all__ = ['TestBase', 'FileCreator']
-
-
- #{ Utilities
-
- class FileCreator(object):
-
- """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
|