This file is indexed.

/usr/lib/python2.7/dist-packages/pytest_bdd/scripts.py is in python-pytest-bdd 2.18.2-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
"""pytest-bdd scripts."""

import argparse
import os.path
import re

import glob2

from .generation import (
    generate_code,
    parse_feature_files,
)

MIGRATE_REGEX = re.compile(r"\s?(\w+)\s\=\sscenario\((.+)\)", flags=re.MULTILINE)


def migrate_tests(args):
    """Migrate outdated tests to the most recent form."""
    path = args.path
    for file_path in glob2.iglob(os.path.join(os.path.abspath(path), "**", "*.py")):
        migrate_tests_in_file(file_path)


def migrate_tests_in_file(file_path):
    """Migrate all bdd-based tests in the given test file."""
    try:
        with open(file_path, "r+") as fd:
            content = fd.read()
            new_content = MIGRATE_REGEX.sub(r"\n@scenario(\2)\ndef \1():\n    pass\n", content)
            if new_content != content:
                fd.seek(0)
                fd.write(new_content)
                print("migrated: {0}".format(file_path))
            else:
                print("skipped: {0}".format(file_path))
    except IOError:
        pass


def check_existense(file_name):
    """Check file or directory name  for existense."""
    if not os.path.exists(file_name):
        raise argparse.ArgumentTypeError("{0} is an invalid file or directory name".format(file_name))
    return file_name


def print_generated_code(args):
    """Print generated test code for the given filenames."""
    features, scenarios, steps = parse_feature_files(args.files)
    code = generate_code(features, scenarios, steps)
    print(code)


def main():
    """Main entry point."""
    parser = argparse.ArgumentParser(prog="pytest-bdd")
    subparsers = parser.add_subparsers(help="sub-command help", dest='command')
    subparsers.required = True
    parser_generate = subparsers.add_parser("generate", help="generate help")
    parser_generate.add_argument(
        "files",
        metavar="FEATURE_FILE",
        type=check_existense,
        nargs="+",
        help="Feature files to generate test code with",
    )
    parser_generate.set_defaults(func=print_generated_code)

    parser_migrate = subparsers.add_parser("migrate", help="migrate help")
    parser_migrate.add_argument(
        "path",
        metavar="PATH",
        help="Migrate outdated tests to the most recent form",
    )
    parser_migrate.set_defaults(func=migrate_tests)

    args = parser.parse_args()
    if hasattr(args, 'func'):
        args.func(args)