Skip to content

Commit a3b88c7

Browse files
author
Jan Sebastian Rothe
committed
Added a raise value error
1 parent a68e759 commit a3b88c7

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/fagfunksjoner/paths/versions.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ def get_version_number(filepath: str) -> int:
2727
Raises:
2828
ValueError: If the filepath does not contain '_v' followed by digits.
2929
"""
30+
# Ensure the input is a string and extract the version part.
31+
if not isinstance(filepath, str):
32+
raise ValueError(f"Expected a string for filepath, got {type(filepath)}")
33+
3034
# Extract the version number by splitting the string at '_v' and '.'
3135
version_str = filepath.split("_v")[-1].split(".")[0]
3236

@@ -292,11 +296,19 @@ def next_version_number(filepath: str) -> int:
292296
Returns:
293297
int: The next version number for the file.
294298
"""
295-
if get_fileversions(filepath):
296-
current_version_int = int(latest_version_number(filepath))
297-
next_version_int = 1 + current_version_int
299+
# Get the list of file versions.
300+
versions = get_fileversions(filepath)
301+
302+
if versions:
303+
# Extract the version number from the latest file.
304+
latest_file = latest_version_path(filepath)
305+
current_version_int = get_version_number(latest_file)
306+
# Increment to get the next version number.
307+
next_version_int = current_version_int + 1
298308
else:
309+
# Default to version 1 if no versions exist.
299310
next_version_int = 1
311+
300312
return next_version_int
301313

302314

tests/paths/test_versions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def test_latest_version_number(mock_glob, mock_get_gcs_file_system):
5050
@patch("fagfunksjoner.paths.versions.get_fileversions")
5151
@patch("fagfunksjoner.paths.versions.latest_version_number")
5252
def test_next_version_number(mock_get_fileversions, mock_latest_version_number):
53-
mock_get_fileversions.return_value = "gs://bucket/folder/file_v2.parquet"
53+
mock_get_fileversions.return_value = ["gs://bucket/folder/file_v2.parquet"]
5454
mock_latest_version_number.return_value = 2
5555
filepath = "gs://bucket/folder/file_v2.parquet"
5656
assert next_version_number(filepath) == 3

0 commit comments

Comments
 (0)