blob: 150765182238cede38e8dda9ae141b2277619bcd [file] [log] [blame]
#!/usr/bin/python
# Copyright (c) 2023 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0
"""
Simply mock for bash script to use with unit tests.
"""
import sys
import time
from argparse import ArgumentParser
from zen_of_python import zen_of_python
def main() -> int:
parser = ArgumentParser()
parser.add_argument('--sleep', action='store', default=0, type=float)
parser.add_argument('--long-sleep', action='store_true')
parser.add_argument('--return-code', action='store', default=0, type=int)
parser.add_argument('--exception', action='store_true')
args = parser.parse_args()
if args.exception:
# simulate crashing application
raise Exception
if args.long_sleep:
# prints data and wait for certain time
for line in zen_of_python:
print(line, flush=True)
time.sleep(args.sleep)
else:
# prints lines with delay
for line in zen_of_python:
print(line, flush=True)
time.sleep(args.sleep)
print('End of script', flush=True)
print('Returns with code', args.return_code, flush=True)
time.sleep(1) # give a moment for external programs to collect all outputs
return args.return_code
if __name__ == '__main__':
sys.exit(main())