test-shutdown: apply "ruff format"
This commit is contained in:
+54
-27
@@ -13,27 +13,34 @@ import pexpect
|
||||
|
||||
def run(args):
|
||||
ret = 1
|
||||
logger = logging.getLogger("test-shutdown")
|
||||
logger = logging.getLogger('test-shutdown')
|
||||
logfile = None
|
||||
|
||||
if args.logfile:
|
||||
logger.debug("Logging pexpect IOs to %s", args.logfile)
|
||||
logger.debug('Logging pexpect IOs to %s', args.logfile)
|
||||
logfile = open(args.logfile, 'w')
|
||||
elif args.verbose:
|
||||
logfile = sys.stdout
|
||||
|
||||
logger.info("spawning test")
|
||||
console = pexpect.spawn(args.command, args.arg, logfile=logfile, env={
|
||||
"TERM": "dumb",
|
||||
}, encoding='utf-8', timeout=60)
|
||||
logger.info('spawning test')
|
||||
console = pexpect.spawn(
|
||||
args.command,
|
||||
args.arg,
|
||||
logfile=logfile,
|
||||
env={
|
||||
'TERM': 'dumb',
|
||||
},
|
||||
encoding='utf-8',
|
||||
timeout=60,
|
||||
)
|
||||
|
||||
logger.debug("child pid %d", console.pid)
|
||||
logger.debug('child pid %d', console.pid)
|
||||
|
||||
try:
|
||||
logger.info("waiting for login prompt")
|
||||
logger.info('waiting for login prompt')
|
||||
console.expect('H login: ', 10)
|
||||
|
||||
logger.info("log in and start screen")
|
||||
logger.info('log in and start screen')
|
||||
console.sendline('root')
|
||||
console.expect('bash.*# ', 10)
|
||||
console.sendline('screen')
|
||||
@@ -46,42 +53,42 @@ def run(args):
|
||||
console.sendline('systemctl is-system-running --wait')
|
||||
console.expect(r'\b(running|degraded)\b', 60)
|
||||
|
||||
# console.interact()
|
||||
# console.interact()
|
||||
|
||||
console.sendline('tty')
|
||||
console.expect(r'/dev/(pts/\d+)')
|
||||
pty = console.match.group(1)
|
||||
logger.info("window 1 at tty %s", pty)
|
||||
logger.info('window 1 at tty %s', pty)
|
||||
|
||||
logger.info("schedule reboot")
|
||||
logger.info('schedule reboot')
|
||||
console.sendline('shutdown -r')
|
||||
console.expect("Reboot scheduled for (?P<date>.*), use 'shutdown -c' to cancel", 2)
|
||||
date = console.match.group('date')
|
||||
logger.info("reboot scheduled for %s", date)
|
||||
logger.info('reboot scheduled for %s', date)
|
||||
|
||||
console.sendcontrol('a')
|
||||
console.send('0')
|
||||
logger.info("verify broadcast message")
|
||||
logger.info('verify broadcast message')
|
||||
console.expect(f'Broadcast message from root@H on {pty}', 2)
|
||||
console.expect(f'The system will reboot at {date}', 2)
|
||||
|
||||
logger.info("check show output")
|
||||
logger.info('check show output')
|
||||
console.sendline('shutdown --show')
|
||||
console.expect(f"Reboot scheduled for {date}, use 'shutdown -c' to cancel", 2)
|
||||
|
||||
logger.info("cancel shutdown")
|
||||
logger.info('cancel shutdown')
|
||||
console.sendline('shutdown -c')
|
||||
console.sendcontrol('a')
|
||||
console.send('1')
|
||||
console.expect('System shutdown has been cancelled', 2)
|
||||
|
||||
logger.info("call for reboot")
|
||||
logger.info('call for reboot')
|
||||
console.sendline('sleep 10; shutdown -r now')
|
||||
console.sendcontrol('a')
|
||||
console.send('0')
|
||||
console.expect("The system will reboot now!", 12)
|
||||
console.expect('The system will reboot now!', 12)
|
||||
|
||||
logger.info("waiting for reboot")
|
||||
logger.info('waiting for reboot')
|
||||
|
||||
console.expect('H login: ', 60)
|
||||
console.sendline('root')
|
||||
@@ -89,16 +96,16 @@ def run(args):
|
||||
|
||||
console.sendline('> /testok')
|
||||
|
||||
logger.info("power off")
|
||||
logger.info('power off')
|
||||
console.sendline('poweroff')
|
||||
|
||||
logger.info("expect termination now")
|
||||
logger.info('expect termination now')
|
||||
console.expect(pexpect.EOF)
|
||||
|
||||
ret = 0
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
logger.info("killing child pid %d", console.pid)
|
||||
logger.info('killing child pid %d', console.pid)
|
||||
|
||||
# Ask systemd-nspawn to stop and release the container's resources properly.
|
||||
console.kill(signal.SIGTERM)
|
||||
@@ -116,12 +123,31 @@ def run(args):
|
||||
|
||||
return ret
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='test logind shutdown feature')
|
||||
parser.add_argument("-v", "--verbose", action="store_true", help="verbose")
|
||||
parser.add_argument("--logfile", metavar='FILE', help="Save all test input/output to the given path")
|
||||
parser.add_argument("command", help="command to run")
|
||||
parser.add_argument("arg", nargs='*', help="args for command")
|
||||
parser = argparse.ArgumentParser(
|
||||
description='test logind shutdown feature',
|
||||
)
|
||||
parser.add_argument(
|
||||
'-v',
|
||||
'--verbose',
|
||||
action='store_true',
|
||||
help='verbose',
|
||||
)
|
||||
parser.add_argument(
|
||||
'--logfile',
|
||||
metavar='FILE',
|
||||
help='Save all test input/output to the given path',
|
||||
)
|
||||
parser.add_argument(
|
||||
'command',
|
||||
help='command to run',
|
||||
)
|
||||
parser.add_argument(
|
||||
'arg',
|
||||
nargs='*',
|
||||
help='args for command',
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
@@ -134,6 +160,7 @@ def main():
|
||||
|
||||
return run(args)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user