Best Python code snippet using behave
configuration.py
Source:configuration.py  
...528            self.color = False529            self.stop = True530            self.log_capture = False531            self.stdout_capture = False532        self.tag_expression = make_tag_expression(self._tags or self.default_tags)533        # -- BACKWARD-COMPATIBLE (BAD-NAMING STYLE; deprecating):534        self.tags = self.tag_expression535        if self.quiet:536            self.show_source = False537            self.show_snippets = False538        if self.exclude_re:539            self.exclude_re = re.compile(self.exclude_re)540        if self.include_re:541            self.include_re = re.compile(self.include_re)542        if self.name:543            # -- SELECT: Scenario-by-name, build regular expression.544            self.name_re = self.build_name_re(self.name)545        if self.stage is None:  # pylint: disable=access-member-before-definition546            # -- USE ENVIRONMENT-VARIABLE, if stage is undefined....behave_tag_expression_steps.py
Source:behave_tag_expression_steps.py  
...32# -----------------------------------------------------------------------------33# TYPE CONVERTERS:34# -----------------------------------------------------------------------------35def convert_tag_expression(text):36    return make_tag_expression(text.strip())37register_type(TagExpression=convert_tag_expression)38def convert_yesno(text):39    text = text.strip().lower()40    assert text in convert_yesno.choices41    return text in convert_yesno.true_choices42convert_yesno.choices = ("yes", "no", "true", "false")43convert_yesno.true_choices = ("yes", "true")44# -----------------------------------------------------------------------------45# STEP DEFINITIONS:46# -----------------------------------------------------------------------------47@given('the tag expression "{tag_expression:TagExpression}"')48def step_given_the_tag_expression(context, tag_expression):49    """50    Define a tag expression that is used later-on....runner.py
Source:runner.py  
...45    my_env = os.environ.copy()46    my_env["TASK_ID"] = str(task_id)47    tag_expression = ''48    if tags is not None:49        tag_expression = make_tag_expression(tags)50    command = f'behave ./features -D device="{device}" {tag_expression} {formatter_args}'51    if is_web:52        command = f'{command} -D platform=web'53    print('Task {}: {}'.format(task_id, command))54    log_file = 'logs/{}.log'.format(device)55    with open(log_file, 'a+') as log:56        process = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE,57                                   stderr=subprocess.PIPE, env=my_env)58        while True:59            output = process.stdout.readline().decode('utf-8')60            if output == '' and process.poll() is not None:61                break62            if output:63                log.write(output)64                log.flush()65                print('Task {} ⢠{} ⢠>> {}'.format(task_id, device, output.replace("\n", "")))66        rc = process.poll()67        log.write('Task {} ⢠{} ⢠>> Completed  OK  '.format(task_id, device))68        print('Task {} ⢠{} ⢠>> Completed  OK  '.format(task_id, device))69    return rc70def make_tag_expression(tags):71    tags_list = tags.split(',')72    tag_expression = ''73    for tag in tags_list:74        tag_expression += '--tags ' + tag + ' '75    return tag_expression76def run():77    parser = argparse.ArgumentParser()78    parser.add_argument('--d', help='Example: $ runner.py --d deviceName1,deviceName2 | Insert the devices.', required=True)79    parser.add_argument('--web', action='store_true', help='Example: True | Add this option IF it`s web automation. The code will run mobile native automation as default.')80    parser.add_argument('--tag', help='Example: $ runner.py --d deviceName --tag android,web | Insert tags to run the code accordingly to the tags added on test scenarios. If you want to not run the code on a specific tag, please add \'~\' before the tag.')81    args = parser.parse_args()82    devices = args.d83    devices = devices.split(',')84    web = args.web...__init__.py
Source:__init__.py  
...16from .v1 import TagExpression17# -----------------------------------------------------------------------------18# FUNCTIONS:19# -----------------------------------------------------------------------------20def make_tag_expression(tag_expression_text):21    """Build a TagExpression object by parsing the tag-expression (as text).22    :param tag_expression_text:     Tag expression text to parse (as string).23    :return: TagExpression object to use.24    """25    parse_tag_expression = select_tag_expression_parser(tag_expression_text)26    return parse_tag_expression(tag_expression_text)27def parse_tag_expression_v1(tag_expression_parts):28    """Parse old style tag-expressions and build a TagExpression object."""29    # -- HINT: DEPRECATING30    if isinstance(tag_expression_parts, six.string_types):31        tag_expression_parts = tag_expression_parts.split()32    # print("parse_tag_expression_v1: %s" % " ".join(tag_expression_parts))33    return TagExpression(tag_expression_parts)34def parse_tag_expression_v2(tag_expression_text):...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!!
