Commit workspace transition from test_utils.py to test_forensics.py with new signatures CLI test case
This commit is contained in:
@@ -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
1
tests/env/alloc_test.bin
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
1
tests/env/inode_test.bin
vendored
Normal file
1
tests/env/inode_test.bin
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
data
|
||||||
1
tests/env/link_test.bin
vendored
Normal file
1
tests/env/link_test.bin
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
link
|
||||||
1
tests/env/owner_test.bin
vendored
Normal file
1
tests/env/owner_test.bin
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
data
|
||||||
1
tests/env/perm_test.bin
vendored
Normal file
1
tests/env/perm_test.bin
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
data
|
||||||
1
tests/env/xattr_test.bin
vendored
Normal file
1
tests/env/xattr_test.bin
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
data
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user