Changeset 4343:c927cb9ac643 in livinglogic.python.xist

Show
Ignore:
Timestamp:
02/18/11 15:50:57 (9 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Fix values in date tests. Handle Jython exception from Java code.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • test/test_ul4.py

    r4342 r4343  
    116116    """ 
    117117 
     118    def findexception(self, output): 
     119        lines = output.splitlines() 
     120        for line in lines: 
     121            prefix = 'Exception in thread "main"' 
     122            if line.startswith(prefix): 
     123                msg = line[len(prefix):].strip() 
     124                if msg == "Traceback (most recent call last):": # This is a Jython exception, the message is in the last line 
     125                    msg = lines[-1] 
     126                print >>sys.stderr, output 
     127                raise RuntimeError(msg) 
     128 
    118129    def formatsource(self, string): 
    119130        """ 
     
    144155                f.write(source.encode("utf-8")) 
    145156            os.system("cd {}; javac -encoding utf-8 UL4Test.java".format(tempdir)) 
    146             pipe = subprocess.Popen("cd {}; java UL4Test 2>&1".format(tempdir), stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 
     157            pipe = subprocess.Popen("cd {}; java UL4Test".format(tempdir), stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) 
    147158            (stdout, stderr) = pipe.communicate() 
    148159        finally: 
    149160            shutil.rmtree(tempdir) 
    150161        # Check if we have an exception 
    151         stdoutlines = stdout.splitlines() 
    152         for line in stdoutlines: 
    153             prefix = 'Exception in thread "main"' 
    154             if line.startswith(prefix): 
    155                 print >>sys.stderr, stdout 
    156                 raise RuntimeError(line[len(prefix):].strip()) 
    157         result = stdout.decode("utf-8") 
    158         return result 
     162        self.findexception(stdout) 
     163        self.findexception(stderr) 
     164        if stderr: 
     165            print >>sys.stderr, stderr 
     166        return stdout.decode("utf-8") 
    159167 
    160168 
     
    14531461        yield contains, ("February", "Februar"), r(code, format="%B", data=t) 
    14541462        yield eq, "12", r(code, format="%I", data=t) 
    1455         yield eq, "038", r(code, format="%j", data=t) 
     1463        yield eq, "037", r(code, format="%j", data=t) 
    14561464        yield eq, "PM", r(code, format="%p", data=t) 
    1457         yield eq, "05", r(code, format="%U", data=t) 
     1465        yield eq, "06", r(code, format="%U", data=t) 
    14581466        yield eq, "0", r(code, format="%w", data=t) 
    1459         yield eq, "04", r(code, format="%W", data=t) 
     1467        yield eq, "05", r(code, format="%W", data=t) 
    14601468        yield eq, "11", r(code, format="%y", data=t) 
    14611469        yield contains, ("Sun Feb  6 12:34:56 2011", "Son Feb  6 12:34:56 2011"), r(code, format="%c", data=t)