/*
* Copyright 2005-2010 Ignis Software Tools Ltd. All rights reserved.
*/
package jsystem.framework.scripts.jython;
import java.io.InputStream;
import jsystem.framework.FrameworkOptions;
import jsystem.framework.JSystemProperties;
import org.python.core.PyException;
import org.python.core.PyModule;
import org.python.core.PyObject;
import org.python.core.imp;
import org.python.util.PythonInterpreter;
public class JythonTestInterpreter extends PythonInterpreter {
public JythonTestInterpreter() {
super();
// do common interpreter initialization
// set up the __main__ module
PyModule mod = imp.addModule("__main__");
setLocals(mod.__dict__);
// load the jyrunner module that contains helper methods for reflecting and
// running jython tests
exec("import sys");
exec(String.format("sys.path.append(r'%s\\lib\\jython')", System.getenv("RUNNER_ROOT")));
exec(String.format("sys.path.append(r'%s')",
JSystemProperties.getInstance().getPreference(FrameworkOptions.TESTS_CLASS_FOLDER)));
execfile(String.format("%s\\lib\\jython\\jyrunner.py", System.getenv("RUNNER_ROOT")));
}
@Override
public PyObject eval(String s) {
try {
return super.eval(s);
} catch (PyException e) {
throw new PyExceptionWrapper(e);
}
}
@Override
public void exec(PyObject s) {
try {
super.exec(s);
} catch (PyException e) {
throw new PyExceptionWrapper(e);
}
}
@Override
public void exec(String s) {
try {
super.exec(s);
} catch (PyException e) {
throw new PyExceptionWrapper(e);
}
}
@Override
public void execfile(InputStream s, String name) {
try {
super.execfile(s, name);
} catch (PyException e) {
throw new PyExceptionWrapper(e);
}
}
@Override
public void execfile(InputStream s) {
try {
super.execfile(s);
} catch (PyException e) {
throw new PyExceptionWrapper(e);
}
}
@Override
public void execfile(String s) {
try {
super.execfile(s);
} catch (PyException e) {
throw new PyExceptionWrapper(e);
}
}
}