File: exc.py

package info (click to toggle)
python-jpype 0.5.4.2-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 1,220 kB
  • sloc: cpp: 11,011; xml: 1,998; python: 1,677; java: 447; sh: 3; makefile: 3
file content (72 lines) | stat: -rw-r--r-- 2,462 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#*****************************************************************************
#   Copyright 2004-2008 Steve Menard
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#	   http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
#   
#*****************************************************************************
from jpype import JException, java, JavaException, JProxy, JPackage
import unittest, common
import traceback

def throwIOException() :
	raise java.io.IOException.PYEXC("Test throw")

def throwByJavaException() :
	JPackage('jpype').exc.ExceptionTest.throwIOException()

def suite() :
	return unittest.makeSuite(ExceptionTestCase)

class ExceptionTestCase(common.JPypeTestCase) :
	def testExceptionThrown(self) :
		try :
			self.jpype.exc.ExceptionTest.throwRuntime()
			assert False
		except JavaException, ex :
			print 'Caught a Java exception ...'
			if ex.javaClass() is java.lang.RuntimeException :
				print "Caught the exception", ex.message()
				print ex.stacktrace()
			else:
				assert False
		except Exception, ex:
			print ex.__class__, isinstance(ex, JavaException)
			print ex.__class__.__bases__[0].__bases__[0].__bases__
			print JavaException
			assert False
			
		print 'if here, everything is fine'
			
	def testExceptionByJavaClass(self) :
		try :
			self.jpype.exc.ExceptionTest.throwRuntime()
			assert False
		except JException(java.lang.RuntimeException), ex :
			print "Caught the exception", ex.message(), "->", ex.javaClass()
			print ex.stacktrace()
		except Exception, ex:
			print ex
			assert False
			
#	def testThrowException(self) :
#		d = {"throwIOException" : throwIOException, }
#		p = JProxy(self.jpype.exc.ExceptionThrower, dict=d)
#		
#		assert self.jpype.exc.ExceptionTest.delegateThrow(p)

	def testThrowException3(self) :
		d = {"throwIOException" : throwByJavaException, }
		p = JProxy(self.jpype.exc.ExceptionThrower, dict=d)
		
		assert self.jpype.exc.ExceptionTest.delegateThrow(p)