Best Python code snippet using lemoncheesecake
loader.py
Source:loader.py
...87def _get_test_functions_from_module(mod):88 return _get_test_symbols(mod, _is_test_function)89def _get_suite_classes_from_module(mod):90 return _get_test_symbols(mod, _is_suite_class)91def _get_generated_tests(obj):92 return getattr(obj, "_lccgeneratedtests", [])93def _get_sub_dirs_from_dir(top_dir):94 paths = [os.path.join(top_dir, path) for path in os.listdir(top_dir)]95 return sorted(filter(osp.isdir, paths))96def _normalize_link(link):97 if type(link) is str:98 return link, None99 else:100 return link101def load_suite_from_class(class_):102 # type: (Any) -> Suite103 """104 Load a suite from a class.105 """106 try:107 md = class_._lccmetadata108 except AttributeError:109 raise SuiteLoadingError("Class is not declared as a suite")110 try:111 suite_obj = class_()112 except UserError as e:113 raise e # propagate UserError114 except Exception:115 raise LemoncheesecakeException("Got an unexpected error while instantiating suite class '%s':%s" % (116 class_.__name__, serialize_current_exception()117 ))118 suite = Suite(suite_obj, md.name, md.description)119 suite.tags.extend(md.tags)120 suite.properties.update(md.properties)121 suite.links.extend(md.links)122 suite.rank = md.rank123 suite.disabled = md.disabled124 suite.hidden = md.condition and not md.condition(suite_obj)125 try:126 _check_test_tree_node_types(suite)127 except TypeError as excp:128 raise SuiteLoadingError("Invalid suite metadata type for '%s': %s" % (suite.name, excp))129 for hook_name in SUITE_HOOKS:130 if hasattr(suite_obj, hook_name):131 suite.add_hook(hook_name, getattr(suite_obj, hook_name))132 for test in _load_tests(_get_test_methods_from_class(suite_obj)):133 suite.add_test(test)134 for test in _get_generated_tests(suite_obj):135 suite.add_test(test)136 for sub_suite in load_suites_from_classes(_get_sub_suites_from_class(suite_obj)):137 suite.add_suite(sub_suite)138 return suite139def load_suites_from_classes(classes):140 # type: (Sequence[Any]) -> List[Suite]141 """142 Load a list of suites from a list of classes.143 """144 return list(145 filter(146 lambda suite: not suite.hidden, map(load_suite_from_class, classes)147 )148 )149def load_suite_from_module(mod):150 # type: (Any) -> Suite151 """152 Load a suite from a module instance.153 """154 suite_info = getattr(mod, "SUITE", {})155 suite_condition = suite_info.get("visible_if")156 suite_name = suite_info.get("name", inspect.getmodulename(inspect.getfile(mod)))157 suite_description = suite_info.get("description", build_description_from_name(suite_name))158 suite = Suite(mod, suite_name, suite_description)159 suite.tags.extend(suite_info.get("tags", []))160 suite.properties.update(suite_info.get("properties", {}))161 suite.links.extend(map(_normalize_link, suite_info.get("links", [])))162 suite.rank = suite_info.get("rank", _get_metadata_next_rank())163 suite.hidden = suite_condition and not suite_condition(mod)164 try:165 _check_test_tree_node_types(suite)166 except TypeError as excp:167 raise SuiteLoadingError("Invalid suite metadata type for '%s': %s" % (suite.name, excp))168 for hook_name in SUITE_HOOKS:169 if hasattr(mod, hook_name):170 suite.add_hook(hook_name, getattr(mod, hook_name))171 for test in _load_tests(_get_test_functions_from_module(mod)):172 suite.add_test(test)173 for test in _get_generated_tests(mod):174 suite.add_test(test)175 for sub_suite in load_suites_from_classes(_get_suite_classes_from_module(mod)):176 suite.add_suite(sub_suite)177 return suite178def load_suite_from_file(filename):179 # type: (str) -> Suite180 """181 Load a suite from a Python module indicated by a filename.182 Raise SuiteLoadingError if the file cannot be loaded as a suite.183 """184 try:185 mod = import_module(filename)186 except ModuleImportError as e:187 raise SuiteLoadingError(str(e))...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!