MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / _setup_for_driver

Function _setup_for_driver

noxfile.py:70–120  ·  view source on GitHub ↗
(
    session: nox.Session,
    cmd: List[str],
    basename: str,
    greenlet: bool = False,
)

Source from the content-addressed store, hash-verified

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

Callers 1

_testsFunction · 0.85

Calls 4

replaceMethod · 0.45
extendMethod · 0.45
getMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected