From: <DeH...@em...> - 2003-11-15 16:45:22
|
When implementing and unit testing an extension of the unittest module, = we saw some strange behavior. When narrowing down the problem, we ended up = with the following code snippets that indicate a bug in Jython. We have 2 files: aha.py and test.py. aha.py contains 1 line: print 'aha' test.py contains: import unittest, os from xml.sax import parseString=20 from xml.sax.handler import ContentHandler class BrolTestCase(unittest.TestCase): def test(self): os.system('jython aha.py') if __name__ =3D=3D "__main__": unittest.main() When running test.py, we get (indented for readability): C:\dev\jython21>jython test.py Traceback (innermost last): File "test.py", line 11, in ? File "c:\dev\jython21\Lib\unittest.py", line 662, in __init__ File "c:\dev\jython21\Lib\unittest.py", line 689, in parseArgs File "c:\dev\jython21\Lib\unittest.py", line 694, in createTests File "c:\dev\jython21\Lib\unittest.py", line 457, in loadTestsFromNames File "c:\dev\jython21\Lib\unittest.py", line 433, in loadTestsFromName AttributeError: module '__main__' has no attribute 'aha' . =09 ---------------------------------------------------------------------- Ran 1 tests in 1.051s =09 OK C:\dev\jython21> When the import statements from xml.sax import parseString=20 from xml.sax.handler import ContentHandler are removed, running test.py results in: C:\dev\jython21>jython test.py aha . =09 ---------------------------------------------------------------------- Ran 1 tests in 0.831s =09 OK C:\dev\jython21> So, my question is: what does the xml.sax package do, so that starting another jython session with os.system('jython aha.py') fails? When = digging deeper (by adding print statements in unittest.py), we saw that the = jython launched in the test case receives the wrong arguments (argv). The = arguments from launching jython from the command line are added to the arguments = of the jython launched in the test case. This is very strange behavior. We = only see it when importing xml.sax. Any help is much appreciated. Regards, Koen De Hondt Senior Quality Assurance Engineer, EMC Belgian Development Group EMC=B2 =09 where information lives |
From: Oti <oh...@ya...> - 2003-11-17 23:04:10
|
I got jython test.py aha . -------------------------------------------------- Ran 1 tests in 0.861s OK with and without the imports. Best wishes, Oti. --- DeH...@em... wrote: > When implementing and unit testing an extension of the unittest > module, we > saw some strange behavior. When narrowing down the problem, we ended > up with > the following code snippets that indicate a bug in Jython. > > We have 2 files: aha.py and test.py. > aha.py contains 1 line: > > print 'aha' > > test.py contains: > > import unittest, os > from xml.sax import parseString > from xml.sax.handler import ContentHandler > > class BrolTestCase(unittest.TestCase): > def test(self): > os.system('jython aha.py') > > if __name__ == "__main__": > unittest.main() > > When running test.py, we get (indented for readability): > > C:\dev\jython21>jython test.py > Traceback (innermost last): > File "test.py", line 11, in ? > File "c:\dev\jython21\Lib\unittest.py", line 662, in > __init__ > File "c:\dev\jython21\Lib\unittest.py", line 689, in > parseArgs > File "c:\dev\jython21\Lib\unittest.py", line 694, in > createTests > File "c:\dev\jython21\Lib\unittest.py", line 457, in > loadTestsFromNames > File "c:\dev\jython21\Lib\unittest.py", line 433, in > loadTestsFromName > AttributeError: module '__main__' has no attribute 'aha' > . > > ---------------------------------------------------------------------- > Ran 1 tests in 1.051s > > OK > C:\dev\jython21> > > When the import statements > > from xml.sax import parseString > from xml.sax.handler import ContentHandler > > are removed, running test.py results in: > > C:\dev\jython21>jython test.py > aha > . > > ---------------------------------------------------------------------- > Ran 1 tests in 0.831s > > OK > C:\dev\jython21> > > So, my question is: what does the xml.sax package do, so that > starting > another jython session with os.system('jython aha.py') fails? When > digging > deeper (by adding print statements in unittest.py), we saw that the > jython > launched in the test case receives the wrong arguments (argv). The > arguments > from launching jython from the command line are added to the > arguments of > the jython launched in the test case. This is very strange behavior. > We only > see it when importing xml.sax. |
From: Gwyn E. <gw...@jd...> - 2003-11-18 09:13:52
|
Hi Koen, Saturday, November 15, 2003, 4:45:10 PM, you wrote: Dec> When implementing and unit testing an extension of the unittest module, we Dec> saw some strange behavior. When narrowing down the problem, we ended up with Dec> the following code snippets that indicate a bug in Jython. Dec> We have 2 files: aha.py and test.py. Dec> aha.py contains 1 line: Can't reproduce it here $ java -cp \Java\Jython\jython.jar org.python.util.jython test.py aha . ---------------------------------------------------------------------- Ran 1 tests in 2.875s OK $ java -cp \Java\Jython\jython.jar org.python.util.jython --version Jython 2.1 on java (JIT: null) $ java -version java version "1.3.1_01" Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01) Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode) (also tried with JDK1.4.1_01) Dec> So, my question is: what does the xml.sax package do, so that starting Dec> another jython session with os.system('jython aha.py') fails? When digging Dec> deeper (by adding print statements in unittest.py), we saw that the jython Dec> launched in the test case receives the wrong arguments (argv). The arguments Dec> from launching jython from the command line are added to the arguments of Dec> the jython launched in the test case. This is very strange behavior. We only Dec> see it when importing xml.sax. Just guessing now - Do you have any XML jars on the Java classpath or in jre/lib/ext? -- Best regards, Gwyn mailto:gw...@jd... |