fix(agent): Windows-proof file_operations

Make file_operations and test_file_operations behave more consistently between Unix and Windows
pull/7033/head
Reinier van der Leer 2024-03-20 17:13:47 +01:00
parent a7c0440e9b
commit 596487b9ad
No known key found for this signature in database
GPG Key ID: CDC1180FDAE06193
1 changed files with 7 additions and 4 deletions

View File

@ -92,9 +92,9 @@ def is_duplicate_operation(
True if the operation has already been performed on the file
"""
state = file_operations_state(agent.get_file_operation_lines())
if operation == "delete" and str(file_path) not in state:
if operation == "delete" and file_path.as_posix() not in state:
return True
if operation == "write" and state.get(str(file_path)) == checksum:
if operation == "write" and state.get(file_path.as_posix()) == checksum:
return True
return False
@ -113,11 +113,14 @@ async def log_operation(
file_path: The name of the file the operation was performed on
checksum: The checksum of the contents to be written
"""
log_entry = f"{operation}: {file_path}"
log_entry = (
f"{operation}: "
f"{file_path.as_posix() if isinstance(file_path, Path) else file_path}"
)
if checksum is not None:
log_entry += f" #{checksum}"
logger.debug(f"Logging file operation: {log_entry}")
await agent.log_file_operation(f"{log_entry}")
await agent.log_file_operation(log_entry)
@command(