![Vishal Talwar](/assets/img/avatar_default.png)
added python.path vm arg to startup script fixed infinite loop in unwrap() when displaying sequences of sequences git-svn-id: http://google-refine.googlecode.com/svn/trunk@509 7d457c2a-affb-35e4-300a-418c747d4874
61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
import unittest
|
|
from test import test_support
|
|
|
|
if test_support.is_jython:
|
|
from java.util import Random
|
|
from javatests import PySetInJavaTest
|
|
|
|
class SetTestCase(unittest.TestCase):
|
|
|
|
def test_binops(self):
|
|
class Foo(object):
|
|
__rsub__ = lambda self, other: 'rsub'
|
|
__ror__ = lambda self, other: 'ror'
|
|
__rand__ = lambda self, other: 'rand'
|
|
__rxor__ = lambda self, other: 'rxor'
|
|
foo = Foo()
|
|
s = set()
|
|
self.assertEqual(s - foo, 'rsub')
|
|
self.assertEqual(s | foo, 'ror')
|
|
self.assertEqual(s & foo, 'rand')
|
|
self.assertEqual(s ^ foo, 'rxor')
|
|
|
|
|
|
class SetInJavaTestCase(unittest.TestCase):
|
|
|
|
"""Tests for derived dict behaviour"""
|
|
|
|
def test_using_PySet_as_Java_Set(self):
|
|
PySetInJavaTest.testPySetAsJavaSet()
|
|
|
|
def test_accessing_items_added_in_java(self):
|
|
s = PySetInJavaTest.createPySetContainingJavaObjects()
|
|
for v in s:
|
|
self.assert_(v in s)
|
|
if isinstance(v, unicode):
|
|
self.assertEquals("value", v)
|
|
else:
|
|
# Should be a java.util.Random; ensure we can call it
|
|
v.nextInt()
|
|
|
|
def test_java_accessing_items_added_in_python(self):
|
|
# Test a type that should be coerced into a Java type, a Java
|
|
# instance that should be wrapped, and a Python instance that
|
|
# should pass through as itself with str, Random and tuple
|
|
# respectively.
|
|
s = set(["value", Random(), ("tuple", "of", "stuff")])
|
|
PySetInJavaTest.accessAndRemovePySetItems(s)
|
|
# Check that the Java removal affected the underlying set
|
|
self.assertEquals(0, len(s))
|
|
|
|
|
|
def test_main():
|
|
tests = [SetTestCase]
|
|
if test_support.is_jython:
|
|
tests.append(SetInJavaTestCase)
|
|
test_support.run_unittest(*tests)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
test_main()
|