updated packages to modern standards
This commit is contained in:
@@ -9,88 +9,103 @@ from unittest.mock import patch
|
||||
from src.core.platform_utils import (
|
||||
get_executable_directory,
|
||||
get_platform_tools_directory,
|
||||
get_platform_type
|
||||
get_platform_type,
|
||||
)
|
||||
|
||||
|
||||
class TestPlatformUtils:
|
||||
"""Test platform utility functions."""
|
||||
|
||||
|
||||
def test_get_executable_directory_frozen(self):
|
||||
"""Test get_executable_directory when running as executable."""
|
||||
with patch.object(sys, 'frozen', True, create=True):
|
||||
with patch.object(sys, 'executable', '/path/to/app'):
|
||||
with patch.object(sys, "frozen", True, create=True):
|
||||
with patch.object(sys, "executable", "/path/to/app"):
|
||||
result = get_executable_directory()
|
||||
assert result == '/path/to'
|
||||
|
||||
assert result == "/path/to"
|
||||
|
||||
def test_get_executable_directory_script(self):
|
||||
"""Test get_executable_directory when running as script."""
|
||||
with patch.object(sys, 'frozen', False, create=True):
|
||||
with patch('os.path.abspath') as mock_abspath:
|
||||
with patch('os.path.dirname') as mock_dirname:
|
||||
mock_abspath.return_value = '/path/to/script.py'
|
||||
mock_dirname.return_value = '/path/to'
|
||||
with patch.object(sys, "frozen", False, create=True):
|
||||
with patch("os.path.abspath") as mock_abspath:
|
||||
with patch("os.path.dirname") as mock_dirname:
|
||||
mock_abspath.return_value = "/path/to/script.py"
|
||||
mock_dirname.return_value = "/path/to"
|
||||
result = get_executable_directory()
|
||||
assert result == '/path/to'
|
||||
assert result == "/path/to"
|
||||
# The function calls abspath on the actual platform_utils.py file
|
||||
mock_abspath.assert_called_once()
|
||||
|
||||
|
||||
def test_get_platform_type_linux(self):
|
||||
"""Test platform type detection for Linux."""
|
||||
with patch('sys.platform', 'linux'):
|
||||
with patch("sys.platform", "linux"):
|
||||
result = get_platform_type()
|
||||
assert result == 'linux'
|
||||
|
||||
assert result == "linux"
|
||||
|
||||
def test_get_platform_type_windows(self):
|
||||
"""Test platform type detection for Windows."""
|
||||
with patch('sys.platform', 'win32'):
|
||||
with patch("sys.platform", "win32"):
|
||||
result = get_platform_type()
|
||||
assert result == 'win32'
|
||||
|
||||
assert result == "win32"
|
||||
|
||||
def test_get_platform_type_darwin(self):
|
||||
"""Test platform type detection for macOS."""
|
||||
with patch('sys.platform', 'darwin'):
|
||||
with patch("sys.platform", "darwin"):
|
||||
result = get_platform_type()
|
||||
assert result == 'darwin'
|
||||
|
||||
assert result == "darwin"
|
||||
|
||||
def test_get_platform_tools_directory_frozen(self):
|
||||
"""Test platform-tools directory when running as executable."""
|
||||
with patch.object(sys, 'frozen', True, create=True):
|
||||
with patch('src.core.platform_utils.get_executable_directory', return_value='/app/dir'):
|
||||
with patch.object(sys, "frozen", True, create=True):
|
||||
with patch(
|
||||
"src.core.platform_utils.get_executable_directory",
|
||||
return_value="/app/dir",
|
||||
):
|
||||
result = get_platform_tools_directory()
|
||||
expected = os.path.join('/app/dir', 'platform-tools')
|
||||
expected = os.path.join("/app/dir", "platform-tools")
|
||||
assert result == expected
|
||||
|
||||
|
||||
def test_get_platform_tools_directory_src(self):
|
||||
"""Test platform-tools directory when running from src."""
|
||||
with patch.object(sys, 'frozen', False, create=True):
|
||||
with patch('src.core.platform_utils.get_executable_directory', return_value='/project/src'):
|
||||
with patch.object(sys, "frozen", False, create=True):
|
||||
with patch(
|
||||
"src.core.platform_utils.get_executable_directory",
|
||||
return_value="/project/src",
|
||||
):
|
||||
result = get_platform_tools_directory()
|
||||
expected = os.path.join('/project/src', 'platform-tools')
|
||||
expected = os.path.join("/project/src", "platform-tools")
|
||||
assert result == expected
|
||||
|
||||
|
||||
def test_get_platform_tools_directory_gui_subdirectory(self):
|
||||
"""Test platform-tools directory when running from src/gui."""
|
||||
with patch.object(sys, 'frozen', False, create=True):
|
||||
with patch('src.core.platform_utils.get_executable_directory', return_value='/project/src/gui'):
|
||||
with patch.object(sys, "frozen", False, create=True):
|
||||
with patch(
|
||||
"src.core.platform_utils.get_executable_directory",
|
||||
return_value="/project/src/gui",
|
||||
):
|
||||
result = get_platform_tools_directory()
|
||||
expected = os.path.join('/project/src', 'platform-tools')
|
||||
expected = os.path.join("/project/src", "platform-tools")
|
||||
assert result == expected
|
||||
|
||||
|
||||
def test_get_platform_tools_directory_project_root(self):
|
||||
"""Test platform-tools directory when running from project root."""
|
||||
with patch.object(sys, 'frozen', False, create=True):
|
||||
with patch('src.core.platform_utils.get_executable_directory', return_value='/project'):
|
||||
with patch('os.path.exists', return_value=True):
|
||||
with patch.object(sys, "frozen", False, create=True):
|
||||
with patch(
|
||||
"src.core.platform_utils.get_executable_directory",
|
||||
return_value="/project",
|
||||
):
|
||||
with patch("os.path.exists", return_value=True):
|
||||
result = get_platform_tools_directory()
|
||||
expected = os.path.join('/project', 'src', 'platform-tools')
|
||||
expected = os.path.join("/project", "src", "platform-tools")
|
||||
assert result == expected
|
||||
|
||||
|
||||
def test_get_platform_tools_directory_fallback(self):
|
||||
"""Test platform-tools directory fallback behavior."""
|
||||
with patch.object(sys, 'frozen', False, create=True):
|
||||
with patch('src.core.platform_utils.get_executable_directory', return_value='/somewhere'):
|
||||
with patch('os.path.exists', return_value=False):
|
||||
with patch.object(sys, "frozen", False, create=True):
|
||||
with patch(
|
||||
"src.core.platform_utils.get_executable_directory",
|
||||
return_value="/somewhere",
|
||||
):
|
||||
with patch("os.path.exists", return_value=False):
|
||||
result = get_platform_tools_directory()
|
||||
expected = os.path.join('/somewhere', 'src', 'platform-tools')
|
||||
assert result == expected
|
||||
expected = os.path.join("/somewhere", "src", "platform-tools")
|
||||
assert result == expected
|
||||
|
||||
Reference in New Issue
Block a user