Skip to content

Commit

Permalink
Add basic tests for prepare-release task
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicoretti committed Feb 9, 2024
1 parent 84ccc08 commit 420374d
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 2 deletions.
26 changes: 24 additions & 2 deletions exasol/toolbox/nox/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -325,15 +325,37 @@ def report(session: Session) -> None:
print(format_report(project_report, fmt))


@nox.session(name="prepare-relase", python=False)
@nox.session(name="prepare-release", python=False)
def prepare_release(session: Session, python=False) -> None:
"""
Prepares the project for a new release.
Arguments:
version: A version string of the following format: {number}.{number}.{number} (Major, Minor, Patch).
"""

def _parser():
from exasol.toolbox.cli import version

parser = argparse.ArgumentParser(
prog=f"nox -s prepare-release",
usage="nox -s prepare-release -- [-h] version",
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
)
parser.add_argument(
"version",
type=version,
help=(
"A version string of the following format:"
'"NUMBER.NUMBER.NUMBER"'
),
)
return parser

parser = _parser()
args = parser.parse_args(session.posargs)
version = args.version
# 0. check release version number
# 1. update version numbers in the project
# 2. update changelog (version + date)
Expand Down
47 changes: 47 additions & 0 deletions test/integration/nox/prepare_release.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
Test prepare-release nox target

Setup
=========================================================

$ cat > noxfile.py <<EOF
> """defines nox tasks/targets for this project"""
> import nox
>
> from exasol.toolbox.nox.tasks import prepare_release
> EOF


prepare-release without version should fail
=========================================================

$ nox -s prepare-release
nox > Running session prepare-release
usage: nox -s prepare-release -- [-h] version
nox -s prepare-release: error: the following arguments are required: version
[2]


prepare-release with invalid version format should fail
=========================================================

$ nox -s prepare-release -- 1.B.0
nox > Running session prepare-release
usage: nox -s prepare-release -- [-h] version
nox -s prepare-release: error: argument version: Expected format: <number>.<number>.<number>, e.g. 1.2.3, actual: 1.B.0
[2]


print prepare-release help
=========================================================

$ nox -s prepare-release -- -h
nox > Running session prepare-release
usage: nox -s prepare-release -- [-h] version

positional arguments:
version A version string of the following format:"NUMBER.NUMBER.NUMBER"

options:
-h, --help show this help message and exit


0 comments on commit 420374d

Please sign in to comment.