33
44import pytest
55
6+ from click .testing import CliRunner
7+
68from tgit .version import (
79 Version ,
810 VersionArgs ,
1719 _should_ignore_path ,
1820 bump_version ,
1921 execute_git_commands ,
22+ format_diff_lines ,
2023 get_current_version ,
2124 get_custom_version ,
2225 get_default_bump_by_commits_dict ,
2326 get_detected_files ,
2427 get_next_version ,
2528 get_pre_release_identifier ,
29+ get_root_detected_files ,
2630 get_version_from_cargo_toml ,
2731 get_version_from_files ,
2832 get_version_from_git ,
3135 get_version_from_setup_py ,
3236 get_version_from_version_file ,
3337 get_version_from_version_txt ,
38+ handle_version ,
3439 show_file_diff ,
3540 update_cargo_toml_version ,
41+ update_file ,
42+ update_version_files ,
43+ update_version_in_file ,
3644 version ,
3745)
3846
@@ -1388,8 +1396,6 @@ class TestBumpVersionErrorHandling:
13881396 @patch ("tgit.version.console" )
13891397 def test_bump_version_no_version_files (self , mock_console , mock_get_current , mock_get_root_files , mock_get_files ):
13901398 """Test handle_version when no version files found."""
1391- from tgit .version import handle_version , Version
1392-
13931399 mock_get_files .return_value = []
13941400 mock_get_root_files .return_value = []
13951401 mock_get_current .return_value = Version .from_str ("1.0.0" )
@@ -1842,8 +1848,6 @@ class TestCliCommand:
18421848 @patch ("tgit.version.handle_version" )
18431849 def test_version_command_basic (self , mock_handle_version ):
18441850 """Test version command with basic parameters."""
1845- from click .testing import CliRunner
1846-
18471851 runner = CliRunner ()
18481852 result = runner .invoke (version , [])
18491853
@@ -1852,8 +1856,6 @@ def test_version_command_basic(self, mock_handle_version):
18521856
18531857 def test_version_command_mutually_exclusive_options (self ):
18541858 """Test version command with mutually exclusive options."""
1855- from click .testing import CliRunner
1856-
18571859 runner = CliRunner ()
18581860 result = runner .invoke (version , ["--patch" , "--minor" ])
18591861
@@ -1863,8 +1865,6 @@ def test_version_command_mutually_exclusive_options(self):
18631865 @patch ("tgit.version.handle_version" )
18641866 def test_version_command_all_options (self , mock_handle_version ):
18651867 """Test version command with all available options."""
1866- from click .testing import CliRunner
1867-
18681868 runner = CliRunner ()
18691869 result = runner .invoke (version , ["--verbose" , "--verbose" , "--no-commit" , "--no-tag" , "--no-push" , "--recursive" , "--patch" , "." ])
18701870
@@ -1968,8 +1968,6 @@ def test_get_version_from_git_command_failed(self, mock_run, tmp_path):
19681968 @patch ("tgit.version.console" )
19691969 def test_handle_version_no_files_detected (self , mock_console , mock_get_detected_files ):
19701970 """Test handle_version when no version files are detected."""
1971- from tgit .version import handle_version
1972-
19731971 # Setup
19741972 mock_get_detected_files .return_value = []
19751973 args = VersionArgs (
@@ -2009,8 +2007,6 @@ def test_handle_interactive_version_selection_cancel(self, mock_questionary):
20092007
20102008 def test_update_file_nonexistent (self , tmp_path ):
20112009 """Test update_file with non-existent file."""
2012- from tgit .version import update_file
2013-
20142010 non_existent_file = tmp_path / "nonexistent.txt"
20152011
20162012 # Should not raise error, just return early
@@ -2032,8 +2028,6 @@ def test_update_cargo_toml_version_nonexistent(self, tmp_path):
20322028 @patch ("tgit.version.Path.open" )
20332029 def test_parse_gitignore_unicode_decode_error (self , mock_open ):
20342030 """Test _parse_gitignore with UnicodeDecodeError."""
2035- from tgit .version import _parse_gitignore
2036-
20372031 mock_open .side_effect = UnicodeDecodeError ("utf-8" , b"" , 0 , 1 , "error" )
20382032
20392033 result = _parse_gitignore (Path ("/fake/.gitignore" ))
@@ -2043,8 +2037,6 @@ def test_parse_gitignore_unicode_decode_error(self, mock_open):
20432037 @patch ("tgit.version.Path.open" )
20442038 def test_parse_gitignore_os_error (self , mock_open ):
20452039 """Test _parse_gitignore with OSError."""
2046- from tgit .version import _parse_gitignore
2047-
20482040 mock_open .side_effect = OSError ("File not accessible" )
20492041
20502042 result = _parse_gitignore (Path ("/fake/.gitignore" ))
@@ -2053,8 +2045,6 @@ def test_parse_gitignore_os_error(self, mock_open):
20532045
20542046 def test_get_root_detected_files (self , tmp_path ):
20552047 """Test get_root_detected_files functionality."""
2056- from tgit .version import get_root_detected_files
2057-
20582048 # Create test files
20592049 package_json = tmp_path / "package.json"
20602050 package_json .write_text ('{"version": "1.0.0"}' )
@@ -2074,8 +2064,6 @@ def test_get_root_detected_files(self, tmp_path):
20742064 @patch ("tgit.version.console" )
20752065 def test_update_version_files_verbose_mode (self , mock_console , mock_get_detected_files , mock_update_version_in_file ):
20762066 """Test update_version_files in verbose mode."""
2077- from tgit .version import update_version_files
2078-
20792067 mock_detected_file = Mock ()
20802068 mock_detected_file .name = "package.json"
20812069 mock_get_detected_files .return_value = [mock_detected_file ]
@@ -2105,8 +2093,6 @@ def test_update_version_files_verbose_mode(self, mock_console, mock_get_detected
21052093
21062094 def test_update_version_in_file_setup_py (self , tmp_path ):
21072095 """Test update_version_in_file with setup.py file."""
2108- from tgit .version import update_version_in_file
2109-
21102096 setup_py = tmp_path / "setup.py"
21112097 setup_py .write_text ('version="1.0.0"' )
21122098
@@ -2117,8 +2103,6 @@ def test_update_version_in_file_setup_py(self, tmp_path):
21172103
21182104 def test_update_version_in_file_build_gradle_kts (self , tmp_path ):
21192105 """Test update_version_in_file with build.gradle.kts file."""
2120- from tgit .version import update_version_in_file
2121-
21222106 build_file = tmp_path / "build.gradle.kts"
21232107 build_file .write_text ('version = "1.0.0"' )
21242108
@@ -2131,8 +2115,6 @@ def test_update_version_in_file_build_gradle_kts(self, tmp_path):
21312115 @patch ("tgit.version.sys.exit" )
21322116 def test_show_file_diff_user_exits (self , mock_exit , mock_questionary ):
21332117 """Test show_file_diff when user chooses to exit."""
2134- from tgit .version import show_file_diff
2135-
21362118 mock_confirm = Mock ()
21372119 mock_confirm .ask .return_value = False
21382120 mock_questionary .confirm .return_value = mock_confirm
@@ -2143,8 +2125,6 @@ def test_show_file_diff_user_exits(self, mock_exit, mock_questionary):
21432125
21442126 def test_format_diff_lines_with_question_mark (self ):
21452127 """Test format_diff_lines with question mark lines."""
2146- from tgit .version import format_diff_lines
2147-
21482128 diff = ["? ^^" , "- old line" , "+ new line" ]
21492129 print_lines = {0 : "?" , 1 : "-" , 2 : "+" }
21502130 diffs = []
0 commit comments