Best Python code snippet using autotest_python
models.py
Source:models.py  
...286        return self._add_label_pivot_table_join(query_set,287                                                join_condition=condition,288                                                suffix=suffix,289                                                exclude=exclude)290    def _add_custom_select(self, query_set, select_name, select_sql):291        return query_set.extra(select={select_name: select_sql})292    def _add_select_value(self, query_set, alias):293        return self._add_custom_select(query_set, alias,294                                       _quote_name(alias) + '.value')295    def _add_select_ifnull(self, query_set, alias, non_null_value):296        select_sql = "IF(%s.id IS NOT NULL, '%s', NULL)" % (_quote_name(alias),297                                                            non_null_value)298        return self._add_custom_select(query_set, alias, select_sql)299    def _join_test_label_column(self, query_set, label_name, label_id):300        alias = 'test_label_' + label_name301        label_query = TestLabel.objects.filter(name=label_name)302        query_set = Test.objects.join_custom_field(query_set, label_query,303                                                   alias)304        query_set = self._add_select_ifnull(query_set, alias, label_name)305        return query_set306    def _join_test_label_columns(self, query_set, label_names):307        label_id_map = self._get_label_ids_from_names(label_names)308        for label_name in label_names:309            query_set = self._join_test_label_column(query_set, label_name,310                                                     label_id_map[label_name])311        return query_set312    def _join_test_attribute(self, query_set, attribute, alias=None,313                             extra_join_condition=None):314        """315        Join the given TestView QuerySet to TestAttribute.  The resulting query316        has an additional column for the given attribute named317        "attribute_<attribute name>".318        """319        if not alias:320            alias = 'test_attribute_' + attribute321        attribute_query = TestAttribute.objects.filter(attribute=attribute)322        if extra_join_condition:323            attribute_query = attribute_query.extra(324                    where=[extra_join_condition])325        query_set = Test.objects.join_custom_field(query_set, attribute_query,326                                                   alias)327        query_set = self._add_select_value(query_set, alias)328        return query_set329    def _join_machine_label_columns(self, query_set, machine_label_names):330        for label_name in machine_label_names:331            alias = 'machine_label_' + label_name332            condition = "FIND_IN_SET('%s', %s)" % (333                    label_name, _quote_name(alias) + '.value')334            query_set = self._join_test_attribute(335                    query_set, 'host-labels',336                    alias=alias, extra_join_condition=condition)337            query_set = self._add_select_ifnull(query_set, alias, label_name)338        return query_set339    def _join_one_iteration_key(self, query_set, result_key, first_alias=None):340        alias = 'iteration_result_' + result_key341        iteration_query = IterationResult.objects.filter(attribute=result_key)342        if first_alias:343            # after the first join, we need to match up iteration indices,344            # otherwise each join will expand the query by the number of345            # iterations and we'll have extraneous rows346            iteration_query = iteration_query.extra(347                    where=['%s.iteration = %s.iteration'348                           % (_quote_name(alias), _quote_name(first_alias))])349        query_set = Test.objects.join_custom_field(query_set, iteration_query,350                                                   alias, left_join=False)351        # select the iteration value and index for this join352        query_set = self._add_select_value(query_set, alias)353        if not first_alias:354            # for first join, add iteration index select too355            query_set = self._add_custom_select(356                    query_set, 'iteration_index',357                    _quote_name(alias) + '.iteration')358        return query_set, alias359    def _join_iteration_results(self, test_view_query_set, result_keys):360        """Join the given TestView QuerySet to IterationResult for one result.361        The resulting query looks like a TestView query but has one row per362        iteration.  Each row includes all the attributes of TestView, an363        attribute for each key in result_keys and an iteration_index attribute.364        We accomplish this by joining the TestView query to IterationResult365        once per result key.  Each join is restricted on the result key (and on366        the test index, like all one-to-many joins).  For the first join, this367        is the only restriction, so each TestView row expands to a row per368        iteration (per iteration that includes the key, of course).  For each369        subsequent join, we also restrict the iteration index to match that of...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!!
