Best Python code snippet using lemoncheesecake
loader.py
Source:loader.py  
...83def _get_test_methods_from_class(obj):84    return _get_test_symbols(obj, _is_test_method)85def _get_sub_suites_from_class(obj):86    return _get_test_symbols(obj, _is_suite_class)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)...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!!
