mirror of https://github.com/borgbase/vorta
Add test utility functions (#1768)
This commit is contained in:
parent
30c572250f
commit
fb42614524
|
@ -1,9 +1,13 @@
|
|||
import sys
|
||||
import uuid
|
||||
|
||||
import pytest
|
||||
from vorta.keyring.abc import VortaKeyring
|
||||
from vorta.utils import (
|
||||
find_best_unit_for_sizes,
|
||||
get_path_datasize,
|
||||
is_system_tray_available,
|
||||
normalize_path,
|
||||
pretty_bytes,
|
||||
)
|
||||
|
||||
|
@ -55,7 +59,9 @@ def test_best_unit_for_sizes_nonmetric(sizes, expected_unit):
|
|||
],
|
||||
)
|
||||
def test_pretty_bytes_fixed_units(size, metric, precision, fixed_unit, expected_output):
|
||||
# test pretty bytes when specifying a fixed unit of measurement
|
||||
"""
|
||||
test pretty bytes when specifying a fixed unit of measurement
|
||||
"""
|
||||
output = pretty_bytes(size, metric=metric, precision=precision, fixed_unit=fixed_unit)
|
||||
assert output == expected_output
|
||||
|
||||
|
@ -74,3 +80,60 @@ def test_pretty_bytes_nonfixed_units(size, metric, expected_output):
|
|||
# test pretty bytes when NOT specifying a fixed unit of measurement
|
||||
output = pretty_bytes(size, metric=metric, precision=1)
|
||||
assert output == expected_output
|
||||
|
||||
|
||||
def test_normalize_path():
|
||||
"""
|
||||
Test that path is normalized for macOS, but does nothing for other platforms.
|
||||
"""
|
||||
input_path = '/Users/username/caf\u00e9/file.txt'
|
||||
expected_output = '/Users/username/café/file.txt'
|
||||
|
||||
actual_output = normalize_path(input_path)
|
||||
|
||||
if sys.platform == 'darwin':
|
||||
assert actual_output == expected_output
|
||||
else:
|
||||
assert actual_output == input_path
|
||||
|
||||
|
||||
def test_get_path_datasize(tmpdir):
|
||||
"""
|
||||
Test that get_path_datasize() works correctly when passed excluded patterns.
|
||||
"""
|
||||
# Create a temporary directory for testing
|
||||
test_dir = tmpdir.mkdir("test_dir")
|
||||
test_file = test_dir.join("test_file.txt")
|
||||
test_file.write("Hello, World!")
|
||||
|
||||
# Create a subdirectory with a file to exclude
|
||||
excluded_dir = test_dir.mkdir("excluded_dir")
|
||||
excluded_file = excluded_dir.join("excluded_file.txt")
|
||||
excluded_file.write("Excluded file, should not be checked.")
|
||||
|
||||
exclude_patterns = [f"{excluded_dir}"]
|
||||
|
||||
# Test when the path is a directory
|
||||
data_size, files_count = get_path_datasize(str(test_dir), exclude_patterns)
|
||||
assert data_size == len("Hello, World!")
|
||||
assert files_count == 1
|
||||
|
||||
# Test when the path is a file
|
||||
data_size, files_count = get_path_datasize(str(test_file), exclude_patterns)
|
||||
assert data_size == len("Hello, World!")
|
||||
assert files_count == 1
|
||||
|
||||
# Test when the path is a directory with an excluded file
|
||||
data_size, files_count = get_path_datasize(str(excluded_dir), exclude_patterns)
|
||||
assert data_size == 0
|
||||
assert files_count == 0
|
||||
|
||||
|
||||
def test_is_system_tray_available(mocker):
|
||||
"""
|
||||
sanity check to ensure proper behavior
|
||||
"""
|
||||
mocker.patch('PyQt6.QtWidgets.QSystemTrayIcon.isSystemTrayAvailable', return_value=False)
|
||||
assert is_system_tray_available() is False
|
||||
mocker.patch('PyQt6.QtWidgets.QSystemTrayIcon.isSystemTrayAvailable', return_value=True)
|
||||
assert is_system_tray_available() is True
|
||||
|
|
Loading…
Reference in New Issue