Skip to content

Commit

Permalink
expand tests to coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
hannosch committed May 5, 2013
1 parent fd94509 commit 17bc69e
Showing 1 changed file with 160 additions and 0 deletions.
160 changes: 160 additions & 0 deletions src/Missing/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
if sys.version_info >= (3, ):
def u(value):
return str(value, 'utf-8')
long = int
else:
def u(value):
return unicode(value, 'utf-8')
Expand All @@ -27,6 +28,160 @@ def test_add(self):
self.assertEqual(value, 1 + value)
self.assertEqual(value, value + 1)

def test_sub(self):
value = self._make_one()
self.assertEqual(1 - value, value)
self.assertEqual(value - 1, value)
self.assertEqual(value, 1 - value)
self.assertEqual(value, value - 1)

def test_mul(self):
value = self._make_one()
self.assertEqual(2 * value, value)
self.assertEqual(value * 2, value)
self.assertEqual(value, 2 * value)
self.assertEqual(value, value * 2)

def test_div(self):
value = self._make_one()
self.assertEqual(2 / value, value)
self.assertEqual(value / 2, value)
self.assertEqual(value, 2 / value)
self.assertEqual(value, value / 2)

def test_integer_div(self):
value = self._make_one()
self.assertEqual(2 // value, value)
self.assertEqual(value // 2, value)
self.assertEqual(value, 2 // value)
self.assertEqual(value, value // 2)

def test_mod(self):
value = self._make_one()
self.assertEqual(2 % value, value)
self.assertEqual(value % 2, value)
self.assertEqual(value, 2 % value)
self.assertEqual(value, value % 2)

def test_divmod(self):
value = self._make_one()
self.assertEqual(divmod(2, value), value)
self.assertEqual(divmod(value, 2), value)
self.assertEqual(value, divmod(2, value))
self.assertEqual(value, divmod(value, 2))

def test_pow(self):
value = self._make_one()
self.assertEqual(2 ** value, value)
self.assertEqual(value ** 2, value)
self.assertEqual(value, 2 ** value)
self.assertEqual(value, value ** 2)

def test_neg(self):
value = self._make_one()
self.assertEqual(-value, value)
self.assertEqual(value, -value)

def test_pos(self):
value = self._make_one()
self.assertEqual(+value, value)
self.assertEqual(value, +value)

def test_abs(self):
value = self._make_one()
self.assertEqual(abs(value), value)
self.assertEqual(value, abs(value))

def test_inv(self):
value = self._make_one()
self.assertEqual(~value, value)
self.assertEqual(value, ~value)

def test_nonzero(self):
value = self._make_one()
self.assertEqual(bool(value), False)
self.assertEqual(False, bool(value))

def test_lshift(self):
value = self._make_one()
self.assertEqual(2 << value, value)
self.assertEqual(value << 2, value)
self.assertEqual(value, 2 << value)
self.assertEqual(value, value << 2)

def test_rshift(self):
value = self._make_one()
self.assertEqual(2 >> value, value)
self.assertEqual(value >> 2, value)
self.assertEqual(value, 2 >> value)
self.assertEqual(value, value >> 2)

def test_and(self):
value = self._make_one()
self.assertEqual(2 & value, value)
self.assertEqual(value & 2, value)
self.assertEqual(value, 2 & value)
self.assertEqual(value, value & 2)

def test_or(self):
value = self._make_one()
self.assertEqual(2 | value, value)
self.assertEqual(value | 2, value)
self.assertEqual(value, 2 | value)
self.assertEqual(value, value | 2)

def test_xor(self):
value = self._make_one()
self.assertEqual(2 ^ value, value)
self.assertEqual(value ^ 2, value)
self.assertEqual(value, 2 ^ value)
self.assertEqual(value, value ^ 2)

def test_number_conversion(self):
value = self._make_one()
self.assertRaises(TypeError, int, value)
self.assertRaises(TypeError, long, value)
self.assertRaises(TypeError, float, value)
self.assertRaises(TypeError, oct, value)
self.assertRaises(TypeError, hex, value)

def test_getattr(self):
value = self._make_one()
valid = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
for v in valid:
self.assertEqual(getattr(value, v), value)
self.assertEqual(getattr(value, 'abc'), value)
self.assertEqual(getattr(value, 'a_b'), value)
self.assertRaises(AttributeError, getattr, value, 'a1')
self.assertRaises(AttributeError, getattr, value, '_a')
self.assertRaises(AttributeError, getattr, value, 'a_b1')

def test_setattr(self):
value = self._make_one()
self.assertRaises(AttributeError, setattr, value, 'a', 2)
self.assertRaises(AttributeError, setattr, value, 'a1', 2)

def test_call(self):
value = self._make_one()
self.assertEqual(value, value())
self.assertEqual(value(), value)

def test_hash(self):
value = self._make_one()
self.assertRaises(TypeError, hash, value)

def test_repr(self):
value = self._make_one()
self.assertEqual(repr(value), 'Missing.Value')

def test_str(self):
value = self._make_one()
self.assertEqual(str(value), '')

def test_reduce(self):
value = self._make_one()
self.assertEqual(value.__reduce__(), 'V')

def test_class(self):
value = self._make_one()
self.assertEqual(repr(value.__class__), "<type 'Missing.Value'>")
Expand Down Expand Up @@ -74,3 +229,8 @@ def _get_target(self):

def _make_one(self):
return self._get_target()()

def test_reduce(self):
klass = self._get_target()
value = self._make_one()
self.assertEqual(value.__reduce__(), (klass, ()))

0 comments on commit 17bc69e

Please sign in to comment.