Tags can be assigned to parametrized sessions to allow for filtered execution (e.g., nox --tags quick). You can assign tags using the tags argument in @nox.parametrize or by using nox.param(..., tags=['tag1']).
For highly complex tagging logic, you can pass a generator to @nox.parametrize that yields nox.param objects containing the desired tags.
# Using tags in @nox.parametrize
@nox.session
@nox.parametrize('dependency',
['1.0', '2.0'],
tags=[['old'], ['new']])
@nox.parametrize('database',
['postgres', 'mysql'],
tags=[['psql'], ['mysql']])
def tests(session, dependency, database):
...
# Using nox.param with tags
@nox.session
@nox.parametrize('dependency', [
nox.param('1.0', tags=['old']),
nox.param('2.0', tags=['new']),
])
@nox.parametrize('database', [
nox.param('postgres', tags=['psql']),
nox.param('mysql', tags=['mysql']),
])
def tests(session, dependency, database):
...
# Using a generator for sophisticated tagging
def generate_params():
for dependency in ["1.0", "1.1", "2.0"]:
for database in ["sqlite", "postgresql", "mysql"]:
tags = []
if dependency == "2.0" and database == "sqlite":
tags.append("quick")
if dependency == "2.0" or database == "sqlite":
tags.append("standard")
yield nox.param(dependency, database, tags=tags)
@nox.session
@nox.parametrize(["dependency", "database"], generate_params())
def tests(session, dependency, database):
...