def resolve_remote_path_args(args: argparse.Namespace, attrs: list, incl_trash: bool = True): """In-place replaces certain attributes in Namespace by resolved node ID. :param attrs: list of attributes that may be given in absolute path form :param incl_trash: whether to resolve trashed files """ for id_attr in attrs: if hasattr(args, id_attr): val = getattr(args, id_attr) if not val: continue if '/' in val: v = cache.resolve_path(val, trash=incl_trash) if not v: logger.critical('Could not resolve path "%s".' % val) sys.exit(INVALID_ARG_RETVAL) logger.info('Resolved "%s" to "%s"' % (val, v)) setattr(args, id_attr, v) setattr(args, id_attr + '_path', val) elif not is_valid_id(val): logger.critical('Invalid ID format: "%s".' % val) sys.exit(INVALID_ARG_RETVAL)
def testInvalidID1(self): self.assertFalse(common.is_valid_id('äbcdéfghíjklmnöpqrstüv'))
def testInvalidID2(self): self.assertFalse(common.is_valid_id('abcdefghijklmnopqrstu'))
def testValidIDs(self): for _ in range(1000): self.assertTrue(common.is_valid_id(gen_rand_id()))
def testInvalidID0(self): self.assertFalse(common.is_valid_id(''))
def testValidID1(self): self.assertTrue(common.is_valid_id('0123456789012345678901'))
def testValidID3(self): self.assertTrue(common.is_valid_id('a0b1c2d3e4f--6h7i8j9k0'))
def testValidID0(self): self.assertTrue(common.is_valid_id('abcdefghijklmnopqrstuv'))
def test_get_root_id(self): id = metadata.get_root_id() self.assertTrue(common.is_valid_id(id))
def test_get_root_id(self): id = self.acd_client.get_root_id() self.assertTrue(common.is_valid_id(id))