def run_add(args, cwd, _, catch=True): """Process arguments and run the `doorstop add` subcommand. :param args: Namespace of CLI arguments :param cwd: current working directory :param error: function to call for CLI errors :param catch: catch and log :class:`~doorstop.common.DoorstopError` """ with utilities.capture(catch=catch) as success: tree = build(cwd=cwd, root=args.project) document = tree.find_document(args.prefix) if args.force: log.warn("creating items without the server...") else: server.check() for _ in range(args.count): number = 0 while number is not None and number < document.next: if number: log.warn("server is behind, requesting next number...") if args.force: number = None else: number = server.get_next_number(args.prefix) item = document.add_item(number=number, level=args.level) show("added item: {} ({})".format(item.uid, item.relpath)) if not success: return False return True
def _request_next_number(args): """Get the server's "next number" method if a server exists.""" if args.force: log.warn("creating items without the server...") return None else: server.check() return server.get_next_number
def test_check(self): # pylint: disable=R0201 """Verify the server can be checked.""" server.check()