Commit workspace transition from test_utils.py to test_forensics.py with new signatures CLI test case

This commit is contained in:
venus
2026-07-17 01:27:14 -05:00
parent 3664208c74
commit aebdf8f31b
8 changed files with 22 additions and 4 deletions

View File

@@ -69,12 +69,12 @@ def inspect(path):
except Exception: except Exception:
magic = "" magic = ""
# Task 1: POSIX Permissions # POSIX Permissions
mode = stat_info.st_mode mode = stat_info.st_mode
permissions_octal = oct(stat.S_IMODE(mode)) permissions_octal = oct(stat.S_IMODE(mode))
permissions_symbolic = stat.filemode(mode) permissions_symbolic = stat.filemode(mode)
# Task 2: Ownership Identity # Ownership Identity
owner_uid = stat_info.st_uid owner_uid = stat_info.st_uid
owner_gid = stat_info.st_gid owner_gid = stat_info.st_gid
owner_username = str(owner_uid) owner_username = str(owner_uid)
@@ -91,13 +91,13 @@ def inspect(path):
except KeyError: except KeyError:
pass pass
# Task 3: Allocation Metrics # Allocation Metrics
if hasattr(stat_info, "st_blocks"): if hasattr(stat_info, "st_blocks"):
allocated_size = stat_info.st_blocks * 512 allocated_size = stat_info.st_blocks * 512
else: else:
allocated_size = size allocated_size = size
# Task 4: Hard Links # Hard Links
hard_links = stat_info.st_nlink hard_links = stat_info.st_nlink
# Task 5: Inode & Device Identifiers # Task 5: Inode & Device Identifiers

1
tests/env/alloc_test.bin vendored Normal file
View File

@@ -0,0 +1 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

1
tests/env/inode_test.bin vendored Normal file
View File

@@ -0,0 +1 @@
data

1
tests/env/link_test.bin vendored Normal file
View File

@@ -0,0 +1 @@
link

1
tests/env/owner_test.bin vendored Normal file
View File

@@ -0,0 +1 @@
data

1
tests/env/perm_test.bin vendored Normal file
View File

@@ -0,0 +1 @@
data

1
tests/env/xattr_test.bin vendored Normal file
View File

@@ -0,0 +1 @@
data

View File

@@ -253,3 +253,15 @@ def test_forensics_inspect_cli_missing_file():
result = runner.invoke(forensics_group, ["inspect", "non_existent_file.png"]) result = runner.invoke(forensics_group, ["inspect", "non_existent_file.png"])
assert result.exit_code != 0 assert result.exit_code != 0
assert "does not exist" in result.output assert "does not exist" in result.output
def test_forensics_signatures_cli():
"""
Verifies that 'forensics signatures' runs successfully and displays
the list of supported file signatures.
"""
runner = CliRunner()
result = runner.invoke(forensics_group, ["signatures"])
assert result.exit_code == 0
assert "Supported Magic Signatures" in result.output
assert "PNG Image" in result.output
assert "89504E47" in result.output