mirror of
https://github.com/thegeeklab/ansible-later.git
synced 2024-11-23 13:20:41 +00:00
73 lines
1.4 KiB
Python
73 lines
1.4 KiB
Python
"""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
|