summaryrefslogtreecommitdiff
path: root/python/collaboration/examples/sync_test.py
diff options
context:
space:
mode:
authorJosh Ferrell <josh@vector35.com>2025-08-27 21:02:59 -0400
committerAlexander Taylor <alex@vector35.com>2025-11-04 22:09:16 -0500
commit5ab92a703fe01634e086cbf278dc8ca36c438a54 (patch)
tree8d3e7341ffa1e896cb51afe075ba32ea0d330ec8 /python/collaboration/examples/sync_test.py
parentae1dbe7e69e3a1d5cc69fa5362fba1b85ba5b6b8 (diff)
Add auto downloading of project file dependencies, clean up download APIs
Diffstat (limited to 'python/collaboration/examples/sync_test.py')
-rw-r--r--python/collaboration/examples/sync_test.py30
1 files changed, 15 insertions, 15 deletions
diff --git a/python/collaboration/examples/sync_test.py b/python/collaboration/examples/sync_test.py
index 31b4518a..fdebe8c3 100644
--- a/python/collaboration/examples/sync_test.py
+++ b/python/collaboration/examples/sync_test.py
@@ -56,27 +56,27 @@ def main():
project_dir = Path(file.default_path).parent
print(f'Snapshots: {[snapshot.id for snapshot in file.snapshots]}')
- bv = binaryninja.load(file.default_path)
- view_type = bv.view_type
- assert collaboration.RemoteFile.get_for_bv(bv) == file
+ with binaryninja.load(file.default_path) as bv:
+ assert collaboration.RemoteFile.get_for_bv(bv) == file
+ assert bv.entry_function is not None, "Failed to get binary entry function"
- print(f'Setting entry function at 0x{bv.entry_function.start:08x} name to \'entry_function\'')
- bv.entry_function.name = 'entry_function'
- bv.file.save_auto_snapshot()
+ print(f'Setting entry function at 0x{bv.entry_function.start:08x} name to \'entry_function\'')
+ bv.entry_function.name = 'entry_function'
+ bv.file.save_auto_snapshot()
- file.sync(bv, lambda conflicts: False)
- print(f'Snapshots: {[snapshot.id for snapshot in file.snapshots]}')
+ file.sync(bv, lambda conflicts: False)
+ print(f'Snapshots: {[snapshot.id for snapshot in file.snapshots]}')
- # Try deleting the bndb, redownload and see if the function name is preserved
- bv.file.close()
+ # Delete the bndb, redownload and see if the function name is preserved
Path(file.default_path).unlink()
print(f'Redownloading {project.name}/{file.name}...')
- metadata = file.download_to_bndb()
- bv = metadata.get_view_of_type(view_type)
- print(f'Entry function name: {bv.entry_function.name}')
- assert bv.entry_function.name == 'entry_function'
- bv.file.close()
+ file.download()
+ with binaryninja.load(file.core_file) as bv:
+ assert bv.entry_function is not None, "Failed to get binary entry function after redownload"
+
+ print(f'Entry function name: {bv.entry_function.name}')
+ assert bv.entry_function.name == 'entry_function'
finally:
# Clean up