1""" 2# SPDX-License-Identifier: GPL-2.0 3tdc_helper.py - tdc helper functions 4 5Copyright (C) 2017 Lucas Bates <lucasb@mojatatu.com> 6""" 7 8def get_categorized_testlist(alltests, ucat): 9 """ Sort the master test list into categories. """ 10 testcases = dict() 11 12 for category in ucat: 13 testcases[category] = list(filter(lambda x: category in x['category'], alltests)) 14 15 return(testcases) 16 17 18def get_unique_item(lst): 19 """ For a list, return a list of the unique items in the list. """ 20 if len(lst) > 1: 21 return list(set(lst)) 22 else: 23 return lst 24 25 26def get_test_categories(alltests): 27 """ Discover all unique test categories present in the test case file. """ 28 ucat = [] 29 for t in alltests: 30 ucat.extend(get_unique_item(t['category'])) 31 ucat = get_unique_item(ucat) 32 return ucat 33 34def list_test_cases(testlist): 35 """ Print IDs and names of all test cases. """ 36 for curcase in testlist: 37 print(curcase['id'] + ': (' + ', '.join(curcase['category']) + ") " + curcase['name']) 38 39 40def list_categories(testlist): 41 """Show all unique categories present in the test cases.""" 42 categories = set() 43 for t in testlist: 44 if 'category' in t: 45 categories.update(t['category']) 46 47 print("Available categories:") 48 print(", ".join(sorted(categories))) 49 print("") 50 51 52def print_list(cmdlist): 53 """ Print a list of strings prepended with a tab. """ 54 for l in cmdlist: 55 if (type(l) == list): 56 print("\t" + str(l[0])) 57 else: 58 print("\t" + str(l)) 59 60 61def print_sll(items): 62 print("\n".join(str(s) for s in items)) 63 64 65def print_test_case(tcase): 66 """ Pretty-printing of a given test case. """ 67 print('\n==============\nTest {}\t{}\n'.format(tcase['id'], tcase['name'])) 68 for k in tcase.keys(): 69 if (isinstance(tcase[k], list)): 70 print(k + ":") 71 print_list(tcase[k]) 72 else: 73 if not ((k == 'id') or (k == 'name')): 74 print(k + ": " + str(tcase[k])) 75