Skip to content

Commit b31a04e

Browse files
committed
fix(tests): update release tests to use _version.py instead of pyproject.toml
The release command now uses hatch-vcs dynamic versioning via _version.py instead of reading version from pyproject.toml directly. Updated tests to create the appropriate _version.py files in test fixtures.
1 parent 23cecd6 commit b31a04e

2 files changed

Lines changed: 48 additions & 27 deletions

File tree

Lines changed: 8 additions & 7 deletions
Loading

tests/test_cli.py

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1147,9 +1147,11 @@ def test_release_shows_current_version(self) -> None:
11471147
original_cwd = os.getcwd()
11481148
try:
11491149
os.chdir(tmpdir)
1150-
# Create a pyproject.toml
1151-
pyproject = Path(tmpdir) / "pyproject.toml"
1152-
pyproject.write_text('[project]\nname = "test"\nversion = "1.2.3"\n')
1150+
# Create directory structure and _version.py (hatch-vcs style)
1151+
version_dir = Path(tmpdir) / "src" / "klondike_spec_cli"
1152+
version_dir.mkdir(parents=True)
1153+
version_file = version_dir / "_version.py"
1154+
version_file.write_text("__version__ = version = '1.2.3'\n")
11531155

11541156
result = runner.invoke(app, ["release"])
11551157

@@ -1165,8 +1167,11 @@ def test_release_dry_run(self) -> None:
11651167
original_cwd = os.getcwd()
11661168
try:
11671169
os.chdir(tmpdir)
1168-
pyproject = Path(tmpdir) / "pyproject.toml"
1169-
pyproject.write_text('[project]\nname = "test"\nversion = "1.0.0"\n')
1170+
# Create directory structure and _version.py
1171+
version_dir = Path(tmpdir) / "src" / "klondike_spec_cli"
1172+
version_dir.mkdir(parents=True)
1173+
version_file = version_dir / "_version.py"
1174+
version_file.write_text("__version__ = version = '1.0.0'\n")
11701175

11711176
result = runner.invoke(app, ["release", "1.1.0", "--dry-run", "--skip-tests"])
11721177

@@ -1176,8 +1181,8 @@ def test_release_dry_run(self) -> None:
11761181
assert "Tag: v1.1.0" in result.output
11771182

11781183
# Verify file wasn't changed
1179-
content = pyproject.read_text()
1180-
assert 'version = "1.0.0"' in content
1184+
content = version_file.read_text()
1185+
assert "1.0.0" in content
11811186
finally:
11821187
os.chdir(original_cwd)
11831188

@@ -1188,8 +1193,11 @@ def test_release_bump_patch(self) -> None:
11881193
original_cwd = os.getcwd()
11891194
try:
11901195
os.chdir(tmpdir)
1191-
pyproject = Path(tmpdir) / "pyproject.toml"
1192-
pyproject.write_text('[project]\nname = "test"\nversion = "1.2.3"\n')
1196+
# Create directory structure and _version.py
1197+
version_dir = Path(tmpdir) / "src" / "klondike_spec_cli"
1198+
version_dir.mkdir(parents=True)
1199+
version_file = version_dir / "_version.py"
1200+
version_file.write_text("__version__ = version = '1.2.3'\n")
11931201

11941202
result = runner.invoke(
11951203
app, ["release", "--bump", "patch", "--dry-run", "--skip-tests"]
@@ -1207,8 +1215,11 @@ def test_release_bump_minor(self) -> None:
12071215
original_cwd = os.getcwd()
12081216
try:
12091217
os.chdir(tmpdir)
1210-
pyproject = Path(tmpdir) / "pyproject.toml"
1211-
pyproject.write_text('[project]\nname = "test"\nversion = "1.2.3"\n')
1218+
# Create directory structure and _version.py
1219+
version_dir = Path(tmpdir) / "src" / "klondike_spec_cli"
1220+
version_dir.mkdir(parents=True)
1221+
version_file = version_dir / "_version.py"
1222+
version_file.write_text("__version__ = version = '1.2.3'\n")
12121223

12131224
result = runner.invoke(
12141225
app, ["release", "--bump", "minor", "--dry-run", "--skip-tests"]
@@ -1226,8 +1237,11 @@ def test_release_bump_major(self) -> None:
12261237
original_cwd = os.getcwd()
12271238
try:
12281239
os.chdir(tmpdir)
1229-
pyproject = Path(tmpdir) / "pyproject.toml"
1230-
pyproject.write_text('[project]\nname = "test"\nversion = "1.2.3"\n')
1240+
# Create directory structure and _version.py
1241+
version_dir = Path(tmpdir) / "src" / "klondike_spec_cli"
1242+
version_dir.mkdir(parents=True)
1243+
version_file = version_dir / "_version.py"
1244+
version_file.write_text("__version__ = version = '1.2.3'\n")
12311245

12321246
result = runner.invoke(
12331247
app, ["release", "--bump", "major", "--dry-run", "--skip-tests"]
@@ -1238,8 +1252,8 @@ def test_release_bump_major(self) -> None:
12381252
finally:
12391253
os.chdir(original_cwd)
12401254

1241-
def test_release_no_pyproject(self) -> None:
1242-
"""Test release fails without pyproject.toml."""
1255+
def test_release_no_version_file(self) -> None:
1256+
"""Test release fails without _version.py or git tags."""
12431257
runner = CliRunner()
12441258
with TemporaryDirectory() as tmpdir:
12451259
original_cwd = os.getcwd()
@@ -1249,7 +1263,7 @@ def test_release_no_pyproject(self) -> None:
12491263
result = runner.invoke(app, ["release", "1.0.0"])
12501264

12511265
assert result.exit_code != 0
1252-
assert "pyproject.toml not found" in result.output
1266+
assert "Could not determine version" in result.output
12531267
finally:
12541268
os.chdir(original_cwd)
12551269

@@ -1260,8 +1274,11 @@ def test_release_invalid_version(self) -> None:
12601274
original_cwd = os.getcwd()
12611275
try:
12621276
os.chdir(tmpdir)
1263-
pyproject = Path(tmpdir) / "pyproject.toml"
1264-
pyproject.write_text('[project]\nname = "test"\nversion = "1.0.0"\n')
1277+
# Create directory structure and _version.py
1278+
version_dir = Path(tmpdir) / "src" / "klondike_spec_cli"
1279+
version_dir.mkdir(parents=True)
1280+
version_file = version_dir / "_version.py"
1281+
version_file.write_text("__version__ = version = '1.0.0'\n")
12651282

12661283
result = runner.invoke(app, ["release", "invalid"])
12671284

@@ -1277,8 +1294,11 @@ def test_release_invalid_bump_type(self) -> None:
12771294
original_cwd = os.getcwd()
12781295
try:
12791296
os.chdir(tmpdir)
1280-
pyproject = Path(tmpdir) / "pyproject.toml"
1281-
pyproject.write_text('[project]\nname = "test"\nversion = "1.0.0"\n')
1297+
# Create directory structure and _version.py
1298+
version_dir = Path(tmpdir) / "src" / "klondike_spec_cli"
1299+
version_dir.mkdir(parents=True)
1300+
version_file = version_dir / "_version.py"
1301+
version_file.write_text("__version__ = version = '1.0.0'\n")
12821302

12831303
result = runner.invoke(
12841304
app, ["release", "--bump", "invalid", "--dry-run", "--skip-tests"]

0 commit comments

Comments
 (0)