adds valueholder tests and fixes.
This commit is contained in:
@ -1,5 +1,7 @@
|
||||
[run]
|
||||
branch = True
|
||||
omit =
|
||||
bonobo/examples/**
|
||||
|
||||
[report]
|
||||
# Regexes for lines to exclude from consideration
|
||||
|
||||
@ -30,6 +30,9 @@ class ValueHolder:
|
||||
self.value = value
|
||||
self.type = type
|
||||
|
||||
def __repr__(self):
|
||||
return repr(self.value)
|
||||
|
||||
def __lt__(self, other):
|
||||
return self.value < other
|
||||
|
||||
@ -56,6 +59,7 @@ class ValueHolder:
|
||||
|
||||
def __iadd__(self, other):
|
||||
self.value += other
|
||||
return self
|
||||
|
||||
def __sub__(self, other):
|
||||
return self.value - other
|
||||
@ -65,6 +69,7 @@ class ValueHolder:
|
||||
|
||||
def __isub__(self, other):
|
||||
self.value -= other
|
||||
return self
|
||||
|
||||
def __mul__(self, other):
|
||||
return self.value * other
|
||||
@ -74,6 +79,7 @@ class ValueHolder:
|
||||
|
||||
def __imul__(self, other):
|
||||
self.value *= other
|
||||
return self
|
||||
|
||||
def __matmul__(self, other):
|
||||
return self.value @ other
|
||||
@ -83,6 +89,7 @@ class ValueHolder:
|
||||
|
||||
def __imatmul__(self, other):
|
||||
self.value @= other
|
||||
return self
|
||||
|
||||
def __truediv__(self, other):
|
||||
return self.value / other
|
||||
@ -92,6 +99,7 @@ class ValueHolder:
|
||||
|
||||
def __itruediv__(self, other):
|
||||
self.value /= other
|
||||
return self
|
||||
|
||||
def __floordiv__(self, other):
|
||||
return self.value // other
|
||||
@ -101,6 +109,7 @@ class ValueHolder:
|
||||
|
||||
def __ifloordiv__(self, other):
|
||||
self.value //= other
|
||||
return self
|
||||
|
||||
def __mod__(self, other):
|
||||
return self.value % other
|
||||
@ -110,6 +119,7 @@ class ValueHolder:
|
||||
|
||||
def __imod__(self, other):
|
||||
self.value %= other
|
||||
return self
|
||||
|
||||
def __divmod__(self, other):
|
||||
return divmod(self.value, other)
|
||||
@ -118,13 +128,14 @@ class ValueHolder:
|
||||
return divmod(other, self.value)
|
||||
|
||||
def __pow__(self, other):
|
||||
return self.value**other
|
||||
return self.value ** other
|
||||
|
||||
def __rpow__(self, other):
|
||||
return other**self.value
|
||||
return other ** self.value
|
||||
|
||||
def __ipow__(self, other):
|
||||
self.value **= other
|
||||
return self
|
||||
|
||||
def __lshift__(self, other):
|
||||
return self.value << other
|
||||
@ -134,6 +145,7 @@ class ValueHolder:
|
||||
|
||||
def __ilshift__(self, other):
|
||||
self.value <<= other
|
||||
return self
|
||||
|
||||
def __rshift__(self, other):
|
||||
return self.value >> other
|
||||
@ -143,6 +155,7 @@ class ValueHolder:
|
||||
|
||||
def __irshift__(self, other):
|
||||
self.value >>= other
|
||||
return self
|
||||
|
||||
def __and__(self, other):
|
||||
return self.value & other
|
||||
@ -152,6 +165,7 @@ class ValueHolder:
|
||||
|
||||
def __iand__(self, other):
|
||||
self.value &= other
|
||||
return self
|
||||
|
||||
def __xor__(self, other):
|
||||
return self.value ^ other
|
||||
@ -161,6 +175,7 @@ class ValueHolder:
|
||||
|
||||
def __ixor__(self, other):
|
||||
self.value ^= other
|
||||
return self
|
||||
|
||||
def __or__(self, other):
|
||||
return self.value | other
|
||||
@ -170,6 +185,7 @@ class ValueHolder:
|
||||
|
||||
def __ior__(self, other):
|
||||
self.value |= other
|
||||
return self
|
||||
|
||||
def __neg__(self):
|
||||
return -self.value
|
||||
|
||||
56
tests/util/test_objects.py
Normal file
56
tests/util/test_objects.py
Normal file
@ -0,0 +1,56 @@
|
||||
from bonobo.util.objects import Wrapper, get_name, ValueHolder
|
||||
|
||||
|
||||
class foo:
|
||||
pass
|
||||
|
||||
|
||||
class bar:
|
||||
__name__ = 'baz'
|
||||
|
||||
|
||||
def test_get_name():
|
||||
assert get_name(42) == 'int'
|
||||
assert get_name('eat at joe.') == 'str'
|
||||
assert get_name(str) == 'str'
|
||||
assert get_name(object) == 'object'
|
||||
assert get_name(get_name) == 'get_name'
|
||||
assert get_name(foo) == 'foo'
|
||||
assert get_name(foo()) == 'foo'
|
||||
assert get_name(bar) == 'bar'
|
||||
assert get_name(bar()) == 'baz'
|
||||
|
||||
|
||||
def test_wrapper_name():
|
||||
assert get_name(Wrapper(42)) == 'int'
|
||||
assert get_name(Wrapper('eat at joe.')) == 'str'
|
||||
assert get_name(Wrapper(str)) == 'str'
|
||||
assert get_name(Wrapper(object)) == 'object'
|
||||
assert get_name(Wrapper(foo)) == 'foo'
|
||||
assert get_name(Wrapper(foo())) == 'foo'
|
||||
assert get_name(Wrapper(bar)) == 'bar'
|
||||
assert get_name(Wrapper(bar())) == 'baz'
|
||||
assert get_name(Wrapper(get_name)) == 'get_name'
|
||||
|
||||
|
||||
def test_valueholder():
|
||||
x = ValueHolder(42)
|
||||
assert x == 42
|
||||
x += 1
|
||||
assert x == 43
|
||||
assert x + 1 == 44
|
||||
assert x == 43
|
||||
|
||||
y = ValueHolder(44)
|
||||
assert y == 44
|
||||
y -= 1
|
||||
assert y == 43
|
||||
assert y - 1 == 42
|
||||
assert y == 43
|
||||
|
||||
assert y == x
|
||||
assert y is not x
|
||||
assert repr(x) == repr(y) == repr(43)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user