Lib.test.test_operator_jy.py Maven / Gradle / Ivy
"""Misc operator module tests
Made for Jython.
"""
import collections
import operator
import sys
import unittest
from test import test_support
class OperatorTestCase(unittest.TestCase):
class NewStyle(object):
pass
class OldStyle:
pass
class HasGetitem(object):
def __getitem__(self, name):
return 'foo'
class HasInt(object):
def __int__(self):
return 1
class HasLong(object):
def __long__(self):
return 1
class HasFloat(object):
def __float__(self):
return 1.0
# obj, isNumberType, isMappingType, isSequenceType
tests = (
(type, False, False, False),
(type.__dict__, False, True, False), # dictproxy
(globals(), False, True, False), # stringmap
({}, False, True, False),
('', False, False, True),
(u'', False, False, True),
([], False, False, True),
((), False, False, True),
(xrange(5), False, False, True),
(set(), False, False, False),
(frozenset(), False, False, False),
(1, True, False, False),
(2L, True, False, False),
(3.0, True, False, False),
(4j, True, False, False),
(None, False, False, False),
(Ellipsis, False, False, False),
(Exception(), False, False, True),
(collections.deque(), False, False, True),
(collections.defaultdict(), False, True, False),
(collections.namedtuple('test', 't'), False, False, False),
(NewStyle(), False, False, False),
(OldStyle(), not sys.platform.startswith('java'), False, False),
(HasGetitem(), False, True, True),
(HasInt(), True, False, False),
(HasFloat(), True, False, False),
)
def test_isNumberType(self):
for obj, isNumberType, _, _ in self.tests:
self.assert_istype(operator.isNumberType, obj, isNumberType)
def test_isMappingType(self):
for obj, _, isMappingType, _ in self.tests:
self.assert_istype(operator.isMappingType, obj, isMappingType)
def test_isSequenceType(self):
for obj, _, _, isSequenceType in self.tests:
self.assert_istype(operator.isSequenceType, obj, isSequenceType)
def assert_istype(self, func, obj, result):
self.assertEqual(func(obj), result, '%s %s should be: %s' %
(type(obj), func.__name__, result))
def test_main():
test_support.run_unittest(OperatorTestCase)
if __name__ == "__main__":
test_main()
© 2015 - 2025 Weber Informatics LLC | Privacy Policy