pyjnius/tests/test_visibility_public_prot...

63 lines
2.4 KiB
Python
Raw Normal View History

2020-04-11 13:05:14 +00:00
from __future__ import print_function
from __future__ import division
from __future__ import absolute_import
import sys
import unittest
from jnius.reflect import autoclass
try:
long
except NameError:
# Python 3
long = int
def py2_encode(uni):
if sys.version_info < (3, 0):
uni = uni.encode('utf-8')
return uni
class VisibilityPublicProtectedTest(unittest.TestCase):
def test_static_fields_public_protected(self):
Test = autoclass('org.jnius.VisibilityTest', include_protected=True, include_private=False)
self.assertTrue(hasattr(Test, 'fieldStaticPublic'))
self.assertTrue(hasattr(Test, 'fieldStaticProtected'))
self.assertFalse(hasattr(Test, 'fieldStaticPrivate'))
self.assertEqual(Test.fieldStaticPublic, py2_encode("StaticPublic"))
self.assertEqual(Test.fieldStaticProtected, py2_encode("StaticProtected"))
def test_static_methods_public_protected(self):
Test = autoclass('org.jnius.VisibilityTest', include_protected=True, include_private=False)
self.assertTrue(hasattr(Test, 'methodStaticPublic'))
self.assertTrue(hasattr(Test, 'methodStaticProtected'))
self.assertFalse(hasattr(Test, 'methodStaticPrivate'))
self.assertEqual(Test.methodStaticPublic(), py2_encode("StaticPublic"))
self.assertEqual(Test.methodStaticProtected(), py2_encode("StaticProtected"))
def test_fields_public_protected(self):
Test = autoclass('org.jnius.VisibilityTest', include_protected=True, include_private=False)
public_only_test = Test()
self.assertTrue(hasattr(public_only_test, 'fieldPublic'))
self.assertTrue(hasattr(public_only_test, 'fieldProtected'))
self.assertFalse(hasattr(public_only_test, 'fieldPrivate'))
self.assertEqual(public_only_test.fieldPublic, py2_encode("Public"))
self.assertEqual(public_only_test.fieldProtected, py2_encode("Protected"))
def test_methods_public_protected(self):
Test = autoclass('org.jnius.VisibilityTest', include_protected=True, include_private=False)
public_only_test = Test()
self.assertTrue(hasattr(public_only_test, 'methodPublic'))
self.assertTrue(hasattr(public_only_test, 'methodProtected'))
self.assertFalse(hasattr(public_only_test, 'methodPrivate'))
self.assertEqual(public_only_test.methodPublic(), py2_encode("Public"))
self.assertEqual(public_only_test.methodProtected(), py2_encode("Protected"))