def runtest(self): if not ChefTestItem.__initialized_logging__: colorama.init() hdl = logging.StreamHandler(stream=sys.stdout) logging.getLogger().addHandler(hdl) logging.getLogger().setLevel(logging.INFO) ChefTestItem.__initialized_logging__ = True fs = self._prepareMockFs() argv = self.spec['args'] if isinstance(argv, str): argv = argv.split(' ') expected_code = self.spec.get('code', 0) expected_out = self.spec.get('out', None) with mock_fs_scope(fs): memstream = io.StringIO() hdl = logging.StreamHandler(stream=memstream) logging.getLogger().addHandler(hdl) try: from piecrust.main import PreParsedChefArgs, _run_chef pre_args = PreParsedChefArgs(root=fs.path('/kitchen')) exit_code = _run_chef(pre_args, argv) finally: logging.getLogger().removeHandler(hdl) assert expected_code == exit_code if expected_out is not None: actual_out = memstream.getvalue() if self.spec.get('replace_out_path_sep'): expected_out = expected_out.replace('/', os.sep) assert expected_out == actual_out
def runtest(self): if not ChefTestItem.__initialized_logging__: colorama.init() hdl = logging.StreamHandler(stream=sys.stdout) logging.getLogger().addHandler(hdl) logging.getLogger().setLevel(logging.INFO) ChefTestItem.__initialized_logging__ = True fs = self._prepareMockFs() argv = self.spec['args'] if isinstance(argv, str): argv = argv.split(' ') expected_code = self.spec.get('code', 0) expected_out = self.spec.get('out', '') with mock_fs_scope(fs): memstream = io.StringIO() hdl = logging.StreamHandler(stream=memstream) logging.getLogger().addHandler(hdl) try: from piecrust.main import PreParsedChefArgs, _run_chef pre_args = PreParsedChefArgs( root=fs.path('/kitchen')) exit_code = _run_chef(pre_args, argv) finally: logging.getLogger().removeHandler(hdl) assert expected_code == exit_code assert expected_out == memstream.getvalue()
def runChef(self, *args): root_dir = self.path('/kitchen') chef_args = ['--root', root_dir] if self._use_chef_debug: chef_args += ['--debug'] chef_args += list(args) import logging from piecrust.main import ( _make_chef_state, _recover_pre_chef_state, _pre_parse_chef_args, _run_chef) # If py.test added a log handler, remove it because Chef will # add its own logger. if self._pytest_log_handler: logging.getLogger().removeHandler( self._pytest_log_handler) state = _make_chef_state() pre_args = _pre_parse_chef_args(chef_args, state=state) exit_code = _run_chef(pre_args, chef_args) _recover_pre_chef_state(state) if self._pytest_log_handler: logging.getLogger().addHandler( self._pytest_log_handler) assert exit_code == 0
def runChef(self, *args): root_dir = self.path('/kitchen') chef_args = ['--root', root_dir] if self._use_chef_debug: chef_args += ['--debug'] chef_args += list(args) import logging from piecrust.main import (_make_chef_state, _recover_pre_chef_state, _pre_parse_chef_args, _run_chef) # If py.test added a log handler, remove it because Chef will # add its own logger. if self._pytest_log_handler: logging.getLogger().removeHandler(self._pytest_log_handler) state = _make_chef_state() pre_args = _pre_parse_chef_args(chef_args, state=state) exit_code = _run_chef(pre_args, chef_args) _recover_pre_chef_state(state) if self._pytest_log_handler: logging.getLogger().addHandler(self._pytest_log_handler) assert exit_code == 0
def runtest(self): if not ChefTestItem.__initialized_logging__: colorama.init() hdl = logging.StreamHandler(stream=sys.stdout) logging.getLogger().addHandler(hdl) logging.getLogger().setLevel(logging.INFO) ChefTestItem.__initialized_logging__ = True fs = self._prepareMockFs() argv = self.spec['args'] if isinstance(argv, str): argv = argv.split(' ') if self.is_theme_site: argv.insert(0, '--theme') if not self.spec.get('no_kitchen', False): argv = ['--root', fs.path('/kitchen')] + argv with mock_fs_scope(fs, keep=self.mock_debug): cwd = os.getcwd() memstream = io.StringIO() hdl = logging.StreamHandler(stream=memstream) logging.getLogger().addHandler(hdl) try: from piecrust.main import _pre_parse_chef_args, _run_chef os.chdir(fs.path('/')) pre_args = _pre_parse_chef_args(argv) exit_code = _run_chef(pre_args, argv) finally: logging.getLogger().removeHandler(hdl) os.chdir(cwd) expected_code = self.spec.get('code', 0) if expected_code != exit_code: raise UnexpectedChefExitCodeError("Got '%d', expected '%d'." % (exit_code, expected_code)) expected_out = self.spec.get('out', None) if expected_out is not None: actual_out = memstream.getvalue() if not self.spec.get('no_strip'): actual_out = actual_out.rstrip(' \n') expected_out = expected_out.rstrip(' \n') if self.spec.get('replace_out_path_sep'): expected_out = expected_out.replace('/', os.sep) if expected_out != actual_out: raise UnexpectedChefOutputError(expected_out, actual_out) expected_files = self.spec.get('files', None) if expected_files is not None: for path in expected_files: path = '/' + path.lstrip('/') if not os.path.exists(fs.path(path)): raise MissingChefOutputFileError(fs, path)
def runtest(self): if not ChefTestItem.__initialized_logging__: colorama.init() hdl = logging.StreamHandler(stream=sys.stdout) logging.getLogger().addHandler(hdl) logging.getLogger().setLevel(logging.INFO) ChefTestItem.__initialized_logging__ = True fs = self._prepareMockFs() argv = self.spec['args'] if isinstance(argv, str): argv = argv.split(' ') if self.is_theme_site: argv.insert(0, '--theme') argv = ['--root', fs.path('/kitchen')] + argv expected_code = self.spec.get('code', 0) expected_out = self.spec.get('out', None) with mock_fs_scope(fs, keep=self.mock_debug): memstream = io.StringIO() hdl = logging.StreamHandler(stream=memstream) logging.getLogger().addHandler(hdl) try: from piecrust.main import _pre_parse_chef_args, _run_chef pre_args = _pre_parse_chef_args(argv) exit_code = _run_chef(pre_args, argv) finally: logging.getLogger().removeHandler(hdl) assert expected_code == exit_code if expected_out is not None: actual_out = memstream.getvalue() if self.spec.get('replace_out_path_sep'): expected_out = expected_out.replace('/', os.sep) assert expected_out == actual_out