def testSetFlushConsole(self): flush = {'count': 0} def f(): flush['count'] = flush['count'] + 1 rinterface.setFlushConsole(f) self.assertEquals(rinterface.getFlushConsole(), f) rinterface.baseNameSpaceEnv.get("flush.console")() self.assertEquals(1, flush['count']) rinterface.setWriteConsole(rinterface.consoleFlush)
def testSetWriteConsole(self): buf = [] def f(x): buf.append(x) rinterface.setWriteConsole(f) self.assertEquals(rinterface.getWriteConsole(), f) code = rinterface.SexpVector(["3", ], rinterface.STRSXP) rinterface.baseNameSpaceEnv["print"](code) self.assertEquals('[1] "3"\n', str.join('', buf))
def testWriteConsoleWithError(self): def f(x): raise Exception("Doesn't work.") rinterface.setWriteConsole(f) tmp_file = tempfile.NamedTemporaryFile() stderr = sys.stderr sys.stderr = tmp_file try: code = rinterface.SexpVector(["3", ], rinterface.STRSXP) rinterface.baseNameSpaceEnv["print"](code) except Exception, e: sys.stderr = stderr raise e
def tearDown(self): rinterface.setWriteConsole(rinterface.consolePrint) rinterface.setReadConsole(rinterface.consoleRead) rinterface.setReadConsole(rinterface.consoleFlush)