adds valueholder tests and fixes.
This commit is contained in:
@ -1,5 +1,7 @@
|
|||||||
[run]
|
[run]
|
||||||
branch = True
|
branch = True
|
||||||
|
omit =
|
||||||
|
bonobo/examples/**
|
||||||
|
|
||||||
[report]
|
[report]
|
||||||
# Regexes for lines to exclude from consideration
|
# Regexes for lines to exclude from consideration
|
||||||
|
|||||||
@ -30,6 +30,9 @@ class ValueHolder:
|
|||||||
self.value = value
|
self.value = value
|
||||||
self.type = type
|
self.type = type
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return repr(self.value)
|
||||||
|
|
||||||
def __lt__(self, other):
|
def __lt__(self, other):
|
||||||
return self.value < other
|
return self.value < other
|
||||||
|
|
||||||
@ -56,6 +59,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __iadd__(self, other):
|
def __iadd__(self, other):
|
||||||
self.value += other
|
self.value += other
|
||||||
|
return self
|
||||||
|
|
||||||
def __sub__(self, other):
|
def __sub__(self, other):
|
||||||
return self.value - other
|
return self.value - other
|
||||||
@ -65,6 +69,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __isub__(self, other):
|
def __isub__(self, other):
|
||||||
self.value -= other
|
self.value -= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __mul__(self, other):
|
def __mul__(self, other):
|
||||||
return self.value * other
|
return self.value * other
|
||||||
@ -74,6 +79,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __imul__(self, other):
|
def __imul__(self, other):
|
||||||
self.value *= other
|
self.value *= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __matmul__(self, other):
|
def __matmul__(self, other):
|
||||||
return self.value @ other
|
return self.value @ other
|
||||||
@ -83,6 +89,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __imatmul__(self, other):
|
def __imatmul__(self, other):
|
||||||
self.value @= other
|
self.value @= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __truediv__(self, other):
|
def __truediv__(self, other):
|
||||||
return self.value / other
|
return self.value / other
|
||||||
@ -92,6 +99,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __itruediv__(self, other):
|
def __itruediv__(self, other):
|
||||||
self.value /= other
|
self.value /= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __floordiv__(self, other):
|
def __floordiv__(self, other):
|
||||||
return self.value // other
|
return self.value // other
|
||||||
@ -101,6 +109,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __ifloordiv__(self, other):
|
def __ifloordiv__(self, other):
|
||||||
self.value //= other
|
self.value //= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __mod__(self, other):
|
def __mod__(self, other):
|
||||||
return self.value % other
|
return self.value % other
|
||||||
@ -110,6 +119,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __imod__(self, other):
|
def __imod__(self, other):
|
||||||
self.value %= other
|
self.value %= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __divmod__(self, other):
|
def __divmod__(self, other):
|
||||||
return divmod(self.value, other)
|
return divmod(self.value, other)
|
||||||
@ -125,6 +135,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __ipow__(self, other):
|
def __ipow__(self, other):
|
||||||
self.value **= other
|
self.value **= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __lshift__(self, other):
|
def __lshift__(self, other):
|
||||||
return self.value << other
|
return self.value << other
|
||||||
@ -134,6 +145,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __ilshift__(self, other):
|
def __ilshift__(self, other):
|
||||||
self.value <<= other
|
self.value <<= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __rshift__(self, other):
|
def __rshift__(self, other):
|
||||||
return self.value >> other
|
return self.value >> other
|
||||||
@ -143,6 +155,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __irshift__(self, other):
|
def __irshift__(self, other):
|
||||||
self.value >>= other
|
self.value >>= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __and__(self, other):
|
def __and__(self, other):
|
||||||
return self.value & other
|
return self.value & other
|
||||||
@ -152,6 +165,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __iand__(self, other):
|
def __iand__(self, other):
|
||||||
self.value &= other
|
self.value &= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __xor__(self, other):
|
def __xor__(self, other):
|
||||||
return self.value ^ other
|
return self.value ^ other
|
||||||
@ -161,6 +175,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __ixor__(self, other):
|
def __ixor__(self, other):
|
||||||
self.value ^= other
|
self.value ^= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __or__(self, other):
|
def __or__(self, other):
|
||||||
return self.value | other
|
return self.value | other
|
||||||
@ -170,6 +185,7 @@ class ValueHolder:
|
|||||||
|
|
||||||
def __ior__(self, other):
|
def __ior__(self, other):
|
||||||
self.value |= other
|
self.value |= other
|
||||||
|
return self
|
||||||
|
|
||||||
def __neg__(self):
|
def __neg__(self):
|
||||||
return -self.value
|
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