mirror of
https://github.com/rembo10/headphones.git
synced 2026-01-10 23:38:05 -05:00
Mostly just updating libraries, removing string encoding/decoding, fixing some edge cases. No new functionality was added in this commit.
119 lines
3.7 KiB
Python
119 lines
3.7 KiB
Python
import sys
|
|
if sys.version_info < (2, 7):
|
|
import unittest2 as unittest
|
|
from unittest2 import TestCase as TC
|
|
else:
|
|
import unittest
|
|
from unittest import TestCase as TC
|
|
|
|
skip = unittest.skip
|
|
|
|
_dummy = False
|
|
|
|
# less than 2.6 ...
|
|
if sys.version_info[0] == 2 and sys.version_info[1] <= 6:
|
|
_dummy = True
|
|
|
|
def _d(f):
|
|
def decorate(self, *args, **kw):
|
|
if not _dummy:
|
|
return f(self, *args, **kw)
|
|
return self.assertTrue(True)
|
|
return decorate
|
|
|
|
|
|
class TestCase(TC):
|
|
"""
|
|
Wrapper for python 2.6 stubs
|
|
"""
|
|
|
|
def assertIsInstance(self, obj, cls, msg=None):
|
|
if not _dummy:
|
|
return super(TestCase, self).assertIsInstance(obj, cls, msg)
|
|
tst = isinstance(obj, cls)
|
|
return self.assertTrue(tst, msg)
|
|
|
|
@_d
|
|
def assertNotIsInstance(self, *args, **kw):
|
|
return super(TestCase, self).assertNotIsInstance(*args, **kw)
|
|
|
|
@_d
|
|
def assertIn(self, *args, **kw):
|
|
return super(TestCase, self).assertIn(*args, **kw)
|
|
|
|
@_d
|
|
def assertRegexpMatches(self, *args, **kw):
|
|
return super(TestCase, self).assertRegex(*args, **kw)
|
|
|
|
@_d
|
|
def assertItemsEqual(self, *args, **kw):
|
|
return super(TestCase, self).assertItemsEqual(*args, **kw)
|
|
|
|
# -----------------------------------------------------------
|
|
# NOT DUMMY ASSERTIONS
|
|
# -----------------------------------------------------------
|
|
def assertIsNone(self, val, msg=None):
|
|
if not _dummy:
|
|
return super(TestCase, self).assertIsNone(val, msg)
|
|
tst = val is None
|
|
return super(TestCase, self).assertTrue(tst, msg)
|
|
|
|
def assertIsNotNone(self, val, msg=None):
|
|
if not _dummy:
|
|
return super(TestCase, self).assertIsNotNone(val, msg)
|
|
tst = val is not None
|
|
return super(TestCase, self).assertTrue(tst, msg)
|
|
|
|
def assertRaises(self, exc, msg=None):
|
|
if not _dummy:
|
|
return super(TestCase, self).assertRaises(exc, msg)
|
|
return TestCase._TestCaseRaiseStub(self, exc, msg=msg)
|
|
|
|
def assertRaisesRegexp(self, exc, regex, msg=None):
|
|
if not _dummy:
|
|
return super(TestCase, self).assertRaises(exc, msg)
|
|
return TestCase._TestCaseRaiseStub(self, exc, regex=regex, msg=msg)
|
|
|
|
class _TestCaseRaiseStub:
|
|
""" Internal stuff for stubbing `assertRaises*` """
|
|
|
|
def __init__(self, test_case, exc, regex=None, msg=None):
|
|
self.exc = exc
|
|
self.test_case = test_case
|
|
self.regex = regex
|
|
self.msg = msg
|
|
|
|
def __enter__(self):
|
|
return self
|
|
|
|
def __exit__(self, tp, value, traceback):
|
|
tst = tp is self.exc
|
|
self.test_case.assertTrue(tst, msg=self.msg)
|
|
self.exception = value
|
|
|
|
# TODO: implement self.regex checking
|
|
|
|
# True indicates, that exception is handled
|
|
return True
|
|
|
|
def TestArgs(*parameters):
|
|
def tuplify(x):
|
|
if not isinstance(x, tuple):
|
|
return (x,)
|
|
return x
|
|
|
|
def decorator(method, parameters=parameters):
|
|
for parameter in (tuplify(x) for x in parameters):
|
|
|
|
def method_for_parameter(self, method=method, parameter=parameter):
|
|
method(self, *parameter)
|
|
args_for_parameter = ",".join(repr(v) for v in parameter)
|
|
name_for_parameter = method.__name__ + "(" + args_for_parameter + ")"
|
|
frame = sys._getframe(1) # pylint: disable-msg=W0212
|
|
frame.f_locals[name_for_parameter] = method_for_parameter
|
|
if method.__doc__:
|
|
frame.f_locals[name_for_parameter].__doc__ = method.__doc__ + '(' + args_for_parameter + ')'
|
|
method_for_parameter.__name__ = name_for_parameter + '(' + args_for_parameter + ')'
|
|
return None
|
|
return decorator
|