Best Python code snippet using slash
result.py
Source:result.py  
...273            self.get_num_errors(),274            self.get_num_failures(),275            self.get_num_skipped())276    def iter_all_additional_details(self):277        for result in self.iter_all_results():278            if result.details:279                yield result, result.get_additional_details()280    def iter_all_failures(self):281        """Iterates over all results which have failures282        yields tuples of the form (result, failure_list)283        """284        for result in self.iter_all_results():285            if result.get_failures():286                yield result, result.get_failures()287    def iter_all_errors(self):288        """Iterates over all results which have errors289        yields tuples of the form (result, errors_list)290        """291        for result in self.iter_all_results():292            if result.get_errors():293                yield result, result.get_errors()294    @property295    def current(self):296        """Obtains the currently running result, if exists297        Otherwise, returns the global result object298        """299        return context.result300    def __iter__(self):301        return self._iterator()302    def is_success(self, allow_skips=False):303        """Indicates whether this run is successful304        :param allow_skips: Whether to consider skips as unsuccessful305        """306        return self.global_result.is_success(allow_skips=allow_skips)307    def is_interrupted(self):308        """Indicates if this session was interrupted309        """310        return any(result.is_interrupted() for result in self._iterator())311    def get_num_results(self):312        return len(self._results_dict)313    def get_num_started(self):314        return self._count(Result.is_started, include_global=False)315    def get_num_successful(self):316        return self._count(Result.is_success_finished, include_global=False)317    def get_num_errors(self):318        return self._count(Result.is_error)319    def get_num_failures(self):320        return self._count(Result.is_just_failure)321    def get_num_skipped(self, include_not_run=True):322        if include_not_run:323            return self._count(Result.is_skip)324        return self._count(Result.is_run_and_skip)325    def get_num_not_run(self):326        return self._count(Result.is_not_run, include_global=False)327    def has_fatal_errors(self):328        """Indicates whether any result has an error marked as fatal (causing the session to terminate)329        """330        return bool(self._count(Result.has_fatal_errors))331    def _count(self, pred, include_global=True):332        returned = 0333        iterator = self.iter_all_results(334        ) if include_global else self.iter_test_results()335        for result in iterator:336            if pred(result):337                returned += 1338        return returned339    def iter_test_results(self):340        """Iterates over results belonging to tests341        """342        return iter(self)343    def iter_all_results(self):344        """Iterates over all results, ending with the global result object345        """346        return itertools.chain(self.iter_test_results(), [self.global_result])347    def create_result(self, test):348        if test.__slash__.id in self._results_dict:349            raise exceptions.SlashInternalError("{} shouldn't appear in results dict before adding its result".format(test.__slash__.id))350        returned = Result(test.__slash__)351        self._results_dict[test.__slash__.id] = returned352        return returned353    def get_result(self, test):354        """Returns the result stored belonging to a given test355        """356        if test.__slash__ is None:357            raise LookupError("Could not find result for {}".format(test))...test_parallel.py
Source:test_parallel.py  
...234            assert last_token in worker_session_ids235            assert os.path.isdir(file_name.readlink())236def test_parallel_interactive_fails(parallel_suite):237    summary = parallel_suite.run(additional_args=['-i'], verify=False)238    results = list(summary.session.results.iter_all_results())239    assert len(results) == 1240    error = results[0].get_errors()[0]241    assert error.exception_type == InteractiveParallelNotAllowed242def test_children_session_ids(parallel_suite):243    summary = parallel_suite.run()244    assert summary.session.results.is_success()245    session_ids = summary.session.parallel_manager.server.worker_session_ids246    expected_session_ids = ["{}_1".format(summary.session.id.split('_')[0])]247    assert session_ids == expected_session_ids248def test_timeout_no_request_to_server(config_override, runnable_test_dir):249    config_override("parallel.no_request_timeout", 1)250    with Session():251        runnables = Loader().get_runnables(str(runnable_test_dir))252        parallel_manager = ParallelManager([])...test_requirements.py
Source:test_requirements.py  
...24    with slash.Session() as session:25        with session.get_started_context():26            slash.runner.run_tests(make_runnable_tests(test_something))27    [result] = [28        res for res in session.results.iter_all_results() if not res.is_global_result()29    ]30    assert result.is_skip()31    assert checkpoint1.called32    assert checkpoint2.called33def test_requirements_raises_exception(suite, suite_test):34    @suite_test.file.append_body35    def __code__():  # pylint: disable=unused-variable36        def fail_predicate():  # pylint: disable=unused-variable37            raise Exception("Failing")38    suite_test.add_decorator("slash.requires(fail_predicate)")39    suite_test.expect_error()40    summary = suite.run()41    assert not summary.session.results.is_success(allow_skips=True)42def test_requirements_mismatch_session_success(suite, suite_test):43    suite_test.add_decorator("slash.requires(False)")44    suite_test.expect_skip()45    summary = suite.run()46    assert summary.session.results.is_success(allow_skips=True)47@pytest.mark.parametrize("requirement_fullfilled", [True, False])48@pytest.mark.parametrize("use_message", [True, False])49@pytest.mark.parametrize("use_fixtures", [True, False])50@pytest.mark.parametrize("message_in_retval", [True, False])51def test_requirements(52    suite,53    suite_test,54    requirement_fullfilled,55    use_fixtures,56    use_message,57    message_in_retval,58):59    message = "requires something very important"60    if use_message and message_in_retval:61        retval = "({}, {!r})".format(requirement_fullfilled, message)62    else:63        retval = requirement_fullfilled64    suite_test.add_decorator(65        "slash.requires((lambda: {}), {!r})".format(66            retval, message if use_message and not message_in_retval else ""67        )68    )69    if not requirement_fullfilled:70        suite_test.expect_skip()71    if use_fixtures:72        suite_test.depend_on_fixture(suite.slashconf.add_fixture())73    results = suite.run()74    if requirement_fullfilled:75        assert results[suite_test].is_success()76    else:77        assert not results[suite_test].is_started()78        assert results[suite_test].is_skip()79        if use_message:80            [skip] = results[suite_test].get_skips()81            assert message in skip82def test_requirements_functions_no_message(suite, suite_test):83    suite_test.add_decorator(_UNMET_REQ_DECORATOR)84    suite_test.expect_skip()85    results = suite.run()86    result = results[suite_test]87    [skip] = result.get_skips()88    assert "lambda" in skip89def test_requirements_on_class():90    def req1():91        pass92    def req2():93        pass94    @slash.requires(req1)95    class Test(slash.Test):96        @slash.requires(req2)97        def test_something(self):98            pass99    with slash.Session():100        [test] = make_runnable_tests(Test)  # pylint: disable=unbalanced-tuple-unpacking101    assert set([r._req for r in test.get_requirements()]) == set( # pylint: disable=protected-access102        [req1, req2]103    )104@pytest.fixture105def filename_test_fixture(tmpdir):106    returned = str(tmpdir.join("testfile.py"))107    with open(returned, "w") as f:108        with ExitStack() as stack:109            code = CodeFormatter(f)110            code.writeln("import slash")111            code.writeln("@slash.fixture")112            code.writeln(113                "@slash.requires({}, {})".format(_UNMET_REQ_DECORATOR, '"msg1"')114            )115            code.writeln("def fixture():")116            with code.indented():117                code.writeln("return 1")118            code.writeln("@slash.fixture(autouse=True)")119            code.writeln("@slash.requires({}, {})".format(_MET_REQ_DECORATOR, '"msg2"'))120            code.writeln("def fixture1():")121            with code.indented():122                code.writeln("return 1")123            code.writeln("class Test(slash.Test):")124            stack.enter_context(code.indented())125            code.write("def test_1(")126            code.write("self, ")127            code.writeln("fixture):")128            with code.indented():129                code.writeln("pass")130    return returned131def test_requirements_on_class_with_fixture_and_autouse_fixture(filename_test_fixture):132    with slash.Session():133        [test] = make_runnable_tests( # pylint: disable=unbalanced-tuple-unpacking134            filename_test_fixture135        )136    assert sorted([str(r) for r in test.get_requirements()]) == ["msg1", "msg2"]137def test_unmet_requirements_trigger_avoided_test_hook(suite, suite_test):138    suite_test.add_decorator(_UNMET_REQ_DECORATOR)139    suite_test.expect_skip()140    @gossip.register("slash.test_avoided")141    def test_avoided(reason):  # pylint: disable=unused-variable142        slash.context.result.data["avoided"] = {143            "reason": reason,144            "test_name": slash.context.test.__slash__.address,145        }146    summary = suite.run()147    avoided_result = summary[suite_test]148    for r in summary.session.results.iter_all_results():149        if r is avoided_result:150            assert "avoided" in r.data151            assert "lambda" in r.data["avoided"]["reason"]152            assert "unmet requirement" in r.data["avoided"]["reason"].lower()153            assert r.data["avoided"]["test_name"].split("_")[-1] == suite_test.id154        else:155            assert "avoided" not in r.data156def test_adding_requirement_objects():157    class MyRequirement(slash.core.requirements.Requirement):158        pass159    req = MyRequirement("bla")160    @slash.requires(req)161    def test_something():162        pass...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!!
