def setUp(self):
        self.cli            = TarSCM.cli()
        self.tasks          = TarSCM.tasks()
        self.tests_dir      = os.path.abspath(os.path.dirname(__file__))
        self.tmp_dir        = os.path.join(self.tests_dir, 'tmp')
        self.fixtures_dir   = os.path.join(self.tests_dir, 'fixtures',
                                             self.__class__.__name__)

        self.cli.parse_args(['--outdir','.'])
    def setUp(self):
        self.cli            = TarSCM.Cli()
        self.tasks          = TarSCM.Tasks(self.cli)
        self.tests_dir      = os.path.abspath(os.path.dirname(__file__))
        self.tmp_dir        = os.path.join(self.tests_dir, 'tmp')
        self.fixtures_dir   = os.path.join(self.tests_dir, 'fixtures',
                                           self.__class__.__name__)

        self.cli.parse_args(['--outdir', '.'])
        os.environ['CACHEDIRECTORY'] = ''
示例#3
0
    def test_prep_tree_for_archive(self):
        tasks = TarSCM.Tasks(self.cli)
        scm_base = Scm(self.cli, tasks)
        basedir = os.path.join(self.tmp_dir, self.__class__.__name__)
        dir1 = os.path.join(basedir, "test1")
        scm_base.clone_dir = basedir
        os.makedirs(dir1)
        os.symlink('/', os.path.join(basedir, "test3"))

        with self.assertRaises(Exception) as ctx:
            scm_base.prep_tree_for_archive("test2", basedir, "test1")

        if (hasattr(ctx.exception, 'message')):
            msg = ctx.exception.message
        else:
            msg = ctx.exception

        self.assertRegexpMatches(str(msg), 'No such file or directory')

        scm_base.prep_tree_for_archive("test1", basedir, "test2")

        self.assertEqual(scm_base.arch_dir, os.path.join(basedir, "test2"))

        with self.assertRaises(SystemExit) as ctx:
            scm_base.prep_tree_for_archive("test3", basedir, "test2")
示例#4
0
    def test_prep_tree_for_archive(self):
        tasks = TarSCM.tasks()
        scm_base = scm(self.cli, tasks)
        basedir = os.path.join(self.tmp_dir, self.__class__.__name__)
        dir1 = os.path.join(basedir, "test1")
        scm_base.clone_dir = basedir
        os.makedirs(dir1)

        with self.assertRaises(Exception) as ctx:
            scm_base.prep_tree_for_archive("test2", basedir, "test1")

        self.assertRegexpMatches(ctx.exception.message,
                                 'No such file or directory')

        scm_base.prep_tree_for_archive("test1", basedir, "test2")

        self.assertEqual(scm_base.arch_dir, os.path.join(basedir, "test2"))
    def test_prep_tree_for_archive(self):
        tasks                   = TarSCM.tasks()
        scm_base                 = scm(self.cli,tasks)
        basedir                  = os.path.join(
                                        self.tmp_dir,
                                        self.__class__.__name__)
        dir1                     = os.path.join(basedir,"test1")
        scm_base.clone_dir         = basedir
        os.makedirs(dir1)

        self.assertRaisesRegexp(
                Exception,
                re.compile('No such file or directory'),
                scm_base.prep_tree_for_archive,
                "test2",
                basedir,
                "test1"
        )

        scm_base.prep_tree_for_archive("test1",basedir,"test2")

        self.assertEqual(scm_base.arch_dir,os.path.join(basedir,"test2"))
示例#6
0
    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)
示例#7
0
 def _prepare_cli(self):
     self.cli = TarSCM.Cli()
     if not os.path.exists(self.outdir):
         os.makedirs(self.outdir)
     self.cli.parse_args(['--outdir', self.outdir, '--scm', 'git'])
     self.cli.snapcraft = True
def main():
   TarSCM.run()
示例#9
0
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)
示例#11
0
 def _prepare_cli(self):
     self.cli = TarSCM.cli()
     if not os.path.exists(self.outdir):
         os.makedirs(self.outdir)
     self.cli.parse_args(['--outdir',self.outdir,'--scm','git'])
     self.cli.snapcraft  = True