def tar_scm(self, args, should_succeed=True): # simulate new temporary outdir for each tar_scm invocation mkfreshdir(self.outdir) # osc launches source services with cwd as pkg dir # (see run_source_services() in osc/core.py) print("chdir to pkgdir: %s" % self.pkgdir) os.chdir(self.pkgdir) cmdargs = args + ['--outdir', self.outdir] sys.argv = [self.tar_scm_bin()] + cmdargs old_stdout = sys.stdout mystdout = StringIO() sys.stdout = mystdout old_stderr = sys.stderr mystderr = StringIO() sys.stderr = mystderr cmdstr = " ".join(sys.argv) print() print(">>>>>>>>>>>") print("Running %s" % cmdstr) print() try: TarSCM.run() except SystemExit as e: if e.code == 0: ret = 0 succeeded = True else: sys.stderr.write(e.code) ret = 1 succeeded = False except (NameError, AttributeError) as e: sys.stderr.write(e) ret = 1 succeeded = False except Exception as e: if (hasattr(e, 'message')): msg = e.message else: msg = e sys.stderr.write(str(msg)) ret = 1 succeeded = False finally: sys.stdout = old_stdout sys.stderr = old_stderr stdout = mystdout.getvalue() stderr = mystderr.getvalue() if stdout: print("--v-v-- begin STDOUT from tar_scm --v-v--") print(stdout) print("--^-^-- end STDOUT from tar_scm --^-^--") if stderr: print("\n") print("--v-v-- begin STDERR from tar_scm --v-v--") print(stderr) print("--^-^-- end STDERR from tar_scm --^-^--") self.assertEqual( succeeded, should_succeed, "expected tar_scm to " + ("succeed" if should_succeed else "fail")) return (stdout, stderr, ret)
def main(): TarSCM.run()
def main(): TarSCM.run()
def tar_scm(self, args, should_succeed=True): # simulate new temporary outdir for each tar_scm invocation mkfreshdir(self.outdir) # osc launches source services with cwd as pkg dir # (see run_source_services() in osc/core.py) print("chdir to pkgdir: %s" % self.pkgdir) os.chdir(self.pkgdir) cmdargs = args + ['--outdir', self.outdir] sys.argv = [ self.tar_scm_bin() ] + cmdargs old_stdout = sys.stdout mystdout = StringIO() sys.stdout = mystdout old_stderr = sys.stderr mystderr = StringIO() sys.stderr = mystderr cmdstr = " ".join(sys.argv) print() print(">>>>>>>>>>>") print("Running %s" % cmdstr) print() try: TarSCM.run() except SystemExit as e: if e.code == 0: ret = 0 succeeded = True else: sys.stderr.write(e.code) ret = 1 succeeded = False except (NameError,AttributeError) as e: sys.stderr.write(e) ret = 1 succeeded = False except Exception as e: sys.stderr.write(e.msg) ret = 1 succeeded = False finally: sys.stdout = old_stdout sys.stderr = old_stderr stdout = mystdout.getvalue() stderr = mystderr.getvalue() if stdout: print("--v-v-- begin STDOUT from tar_scm --v-v--") print(stdout) print("--^-^-- end STDOUT from tar_scm --^-^--") if stderr: print("\n") print("--v-v-- begin STDERR from tar_scm --v-v--") print(stderr) print("--^-^-- end STDERR from tar_scm --^-^--") self.assertEqual(succeeded, should_succeed, "expected tar_scm to " + ("succeed" if should_succeed else "fail")) return (stdout, stderr, ret)