adds valueholder tests and fixes.
This commit is contained in:
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