def test_clone_repos(self): wf_data = {"steps": [{"uses": "popperized/bin/sh@master"}]} wf = WorkflowParser.parse(wf_data=wf_data) cache_dir = os.path.join(os.environ["HOME"], ".cache/popper/") # clone repos in the default cache directory. conf = ConfigLoader.load() runner = WorkflowRunner(conf) runner._clone_repos(wf) step_dir = os.path.join(cache_dir, conf.wid, "github.com/popperized/bin") self.assertTrue(os.path.exists(step_dir)) # clone repos in custom cache directory os.environ["POPPER_CACHE_DIR"] = "/tmp/smdir" conf = ConfigLoader.load() runner = WorkflowRunner(conf) runner._clone_repos(wf) step_dir = os.path.join("/tmp/smdir", conf.wid, "github.com/popperized/bin") self.assertTrue(os.path.exists(step_dir)) os.environ.pop("POPPER_CACHE_DIR") # check failure when container is not available and we skip cloning shutil.rmtree("/tmp/smdir") shutil.rmtree(cache_dir) conf = ConfigLoader.load(skip_clone=True) runner = WorkflowRunner(conf) self.assertRaises(SystemExit, runner._clone_repos, wf)
def test_clone_repos(self): wf = YMLWorkflow(""" version: '1' steps: - uses: popperized/bin/sh@master """) wf.parse() conf = PopperConfig() cache_dir = os.path.join(os.environ['HOME'], '.cache/popper/') # clone repos in the default cache directory. runner = WorkflowRunner(conf) runner._clone_repos(wf) step_dir = os.path.join(cache_dir, conf.wid, 'github.com/popperized/bin') self.assertTrue(os.path.exists(step_dir)) # clone repos in custom cache directory os.environ['POPPER_CACHE_DIR'] = '/tmp/smdir' runner._clone_repos(wf) step_dir = os.path.join('/tmp/smdir', conf.wid, 'github.com/popperized/bin') self.assertTrue(os.path.exists(step_dir)) os.environ.pop('POPPER_CACHE_DIR') # check failure when container is not available and we skip cloning shutil.rmtree('/tmp/smdir') shutil.rmtree(cache_dir) conf = PopperConfig(skip_clone=True) runner = WorkflowRunner(conf) self.assertRaises(SystemExit, runner._clone_repos, wf)