Python Тестирование с моками Argparse
Подскажите пожалуйста, как протестировать def parse_args() и def main(). Задание звучит так. В тестах должны быть моки для чтения файла и работы с переданными параметрами. Спасибо
from collections import Counter
from functools import lru_cache
import sys
import argparse
@lru_cache(None)
def count(text: str) -> int:
c = Counter(text)
unique_number = 0
for i, v in c.items():
if c[i] == 1:
unique_number += 1
return unique_number
def list_count(text):
return list(map(count, text))
def parse_args(args):
parser = argparse.ArgumentParser(description='Counting the number of unique characters.')
parser.add_argument("-s", "--string", type=str)
parser.add_argument("-f", '--file', type=argparse.FileType('r'))
return parser.parse_args()
def main():
args = parse_args(sys.argv[1:])
if args.file:
i = args.file
new_row = [row.strip() for row in i]
print(list_count(new_row))
elif args.string:
z = args.string
print(count(z))
if __name__ == "__main__":
sys.exit(main())