MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / _setup_for_driver

Function _setup_for_driver

noxfile.py:63–113  ·  noxfile.py::_setup_for_driver
(
    session: nox.Session,
    cmd: List[str],
    basename: str,
    greenlet: bool = False,
)

Source from the content-addressed store, hash-verified

61
62
63def _setup_for_driver(
64 session: nox.Session,
65 cmd: List[str],
66 basename: str,
67 greenlet: bool = False,
68) -> None:
69
70 class="cm"># install driver deps listed out in pyproject.toml
71 nogreenlet_deps = fclass="st">"tests-{basename.replace(&class="cm">#x27;_', '-')}"
72 greenlet_deps = fclass="st">"tests-{basename.replace(&class="cm">#x27;_', '-')}-asyncio"
73
74 deps = nox.project.dependency_groups(
75 pyproject,
76 (greenlet_deps if greenlet else nogreenlet_deps),
77 )
78 if deps:
79 session.install(*deps)
80
81 class="cm"># set up top level ``--db`` sent to pytest command line, which looks
82 class="cm"># up a base URL in the [db] section of setup.cfg. Environment variable
83 class="cm"># substitution used by CI is also available.
84
85 class="cm"># e.g. TOX_POSTGRESQL, TOX_MYSQL, etc.
86 dburl_env = fclass="st">"TOX_{basename.upper()}"
87 class="cm"># e.g. --db=postgresql, --db=mysql, etc.
88 default_dburl = fclass="st">"--db={basename}"
89 cmd.extend(os.environ.get(dburl_env, default_dburl).split())
90
91 class="cm"># set up extra drivers using --dbdriver. this first looks in
92 class="cm"># an environment variable before making use of the DB_CLI_NAMES
93 class="cm"># lookup table
94
95 class="cm"># e.g. EXTRA_PG_DRIVERS, EXTRA_MYSQL_DRIVERS, etc.
96 if basename == class="st">"postgresql":
97 extra_driver_env = class="st">"EXTRA_PG_DRIVERS"
98 else:
99 extra_driver_env = fclass="st">"EXTRA_{basename.upper()}_DRIVERS"
100 env_dbdrivers = os.environ.get(extra_driver_env, None)
101 if env_dbdrivers:
102 cmd.extend(env_dbdrivers.split())
103 return
104
105 class="cm"># use fixed names in DB_CLI_NAMES
106 extra_drivers: Dict[str, Set[str]] = DB_CLI_NAMES[basename]
107 dbdrivers = extra_drivers[class="st">"nogreenlet"]
108 if greenlet:
109 dbdrivers.update(extra_drivers[class="st">"greenlet"])
110
111 class="cm"># use equals sign so that we avoid
112 class="cm"># https://github.com/pytest-dev/pytest/issues/13913
113 cmd.extend([fclass="st">"--dbdriver={dbdriver}" for dbdriver in dbdrivers])
114
115
116pyproject = nox.project.load_toml(class="st">"pyproject.toml")

Callers 1

_testsFunction · 0.85

Calls 5

splitMethod · 0.80
replaceMethod · 0.45
extendMethod · 0.45
getMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected