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

Function _setup_for_driver

noxfile.py:63–113  ·  view source on GitHub ↗
(
    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 # install driver deps listed out in pyproject.toml
71 nogreenlet_deps = f"tests-{basename.replace('_', '-')}"
72 greenlet_deps = f"tests-{basename.replace('_', '-')}-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 # set up top level ``--db`` sent to pytest command line, which looks
82 # up a base URL in the [db] section of setup.cfg. Environment variable
83 # substitution used by CI is also available.
84
85 # e.g. TOX_POSTGRESQL, TOX_MYSQL, etc.
86 dburl_env = f"TOX_{basename.upper()}"
87 # e.g. --db=postgresql, --db=mysql, etc.
88 default_dburl = f"--db={basename}"
89 cmd.extend(os.environ.get(dburl_env, default_dburl).split())
90
91 # set up extra drivers using --dbdriver. this first looks in
92 # an environment variable before making use of the DB_CLI_NAMES
93 # lookup table
94
95 # e.g. EXTRA_PG_DRIVERS, EXTRA_MYSQL_DRIVERS, etc.
96 if basename == "postgresql":
97 extra_driver_env = "EXTRA_PG_DRIVERS"
98 else:
99 extra_driver_env = f"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 # use fixed names in DB_CLI_NAMES
106 extra_drivers: Dict[str, Set[str]] = DB_CLI_NAMES[basename]
107 dbdrivers = extra_drivers["nogreenlet"]
108 if greenlet:
109 dbdrivers.update(extra_drivers["greenlet"])
110
111 # use equals sign so that we avoid
112 # https://github.com/pytest-dev/pytest/issues/13913
113 cmd.extend([f"--dbdriver={dbdriver}" for dbdriver in dbdrivers])
114
115
116pyproject = nox.project.load_toml("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