def build_helpindex(self, language_dir: str) -> None: """Generate the help index.""" args = [ self.config.applehelp_indexer_path, '-Cf', path.join(language_dir, 'search.helpindex'), language_dir ] if self.config.applehelp_index_anchors is not None: args.append('-a') if self.config.applehelp_min_term_length is not None: args += ['-m', '%s' % self.config.applehelp_min_term_length] if self.config.applehelp_stopwords is not None: args += ['-s', self.config.applehelp_stopwords] if self.config.applehelp_locale is not None: args += ['-l', self.config.applehelp_locale] if self.config.applehelp_disable_external_tools: raise SkipProgressMessage( __('you will need to index this help book with:\n %s'), ' '.join([shlex.quote(arg) for arg in args])) else: try: subprocess.run(args, stdout=PIPE, stderr=STDOUT, check=True) except OSError: raise AppleHelpIndexerFailed( __('Command not found: %s') % args[0]) except CalledProcessError as exc: raise AppleHelpIndexerFailed(exc.stdout)
def do_codesign(self) -> None: """If we've been asked to, sign the bundle.""" args = [ self.config.applehelp_codesign_path, '-s', self.config.applehelp_codesign_identity, '-f' ] args += self.config.applehelp_codesign_flags args.append(self.bundle_path) if self.config.applehelp_disable_external_tools: raise SkipProgressMessage(__('you will need to sign this help book with:\n %s'), ' '.join([shlex.quote(arg) for arg in args])) else: try: subprocess.run(args, stdout=PIPE, stderr=STDOUT, check=True) except OSError: raise AppleHelpCodeSigningFailed(__('Command not found: %s') % args[0]) except CalledProcessError as exc: raise AppleHelpCodeSigningFailed(exc.stdout)
def test_progress_message(app, status, warning): logging.setup(app, status, warning) logger = logging.getLogger(__name__) # standard case with progress_message('testing'): logger.info('blah ', nonl=True) output = strip_escseq(status.getvalue()) assert 'testing... blah done\n' in output # skipping case with progress_message('testing'): raise SkipProgressMessage('Reason: %s', 'error') output = strip_escseq(status.getvalue()) assert 'testing... skipped\nReason: error\n' in output # error case try: with progress_message('testing'): raise except Exception: pass output = strip_escseq(status.getvalue()) assert 'testing... failed\n' in output # decorator @progress_message('testing') def func(): logger.info('in func ', nonl=True) func() output = strip_escseq(status.getvalue()) assert 'testing... in func done\n' in output