docs: Add comprehensive documentation and update planning
- Add docs/README.md with project overview and current status - Add docs/architecture.md with detailed architecture documentation - Add docs/development.md with development guide for contributors - Update .notes/todo.md to reflect architecture fix completion - Update .notes/plan.md with completed phases and next priorities Architecture fixes (daemon and dbus), bubblewrap integration are now complete. Ready for OCI integration phase.
This commit is contained in:
parent
1cc175c110
commit
97a9c40d7e
33 changed files with 4488 additions and 118 deletions
125
scripts/test-dbus-python.py
Normal file
125
scripts/test-dbus-python.py
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
D-Bus Communication Test for apt-ostree
|
||||
This script tests the D-Bus interface programmatically
|
||||
"""
|
||||
|
||||
import sys
|
||||
import dbus
|
||||
import dbus.exceptions
|
||||
|
||||
def test_dbus_connection():
|
||||
"""Test basic D-Bus connection to apt-ostree daemon"""
|
||||
print("=== apt-ostree D-Bus Python Test ===")
|
||||
print()
|
||||
|
||||
try:
|
||||
# Connect to system bus
|
||||
print("1. Connecting to system D-Bus...")
|
||||
bus = dbus.SystemBus()
|
||||
print("✓ Connected to system D-Bus")
|
||||
|
||||
# Get the apt-ostree daemon object
|
||||
print("\n2. Getting apt-ostree daemon object...")
|
||||
daemon = bus.get_object('org.aptostree.dev', '/org/aptostree/dev')
|
||||
print("✓ Got daemon object")
|
||||
|
||||
# Get the interface
|
||||
print("\n3. Getting daemon interface...")
|
||||
interface = dbus.Interface(daemon, 'org.aptostree.dev.Daemon')
|
||||
print("✓ Got daemon interface")
|
||||
|
||||
# Test Ping method
|
||||
print("\n4. Testing Ping method...")
|
||||
result = interface.Ping()
|
||||
print(f"✓ Ping result: {result}")
|
||||
|
||||
# Test GetStatus method
|
||||
print("\n5. Testing GetStatus method...")
|
||||
status = interface.GetStatus()
|
||||
print(f"✓ Status result: {status}")
|
||||
|
||||
# List available methods
|
||||
print("\n6. Available methods:")
|
||||
methods = daemon.Introspect()
|
||||
print(methods)
|
||||
|
||||
print("\n=== All tests passed! ===")
|
||||
return True
|
||||
|
||||
except dbus.exceptions.DBusException as e:
|
||||
print(f"✗ D-Bus error: {e}")
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f"✗ General error: {e}")
|
||||
return False
|
||||
|
||||
def test_dbus_introspection():
|
||||
"""Test D-Bus introspection"""
|
||||
print("\n=== D-Bus Introspection Test ===")
|
||||
|
||||
try:
|
||||
bus = dbus.SystemBus()
|
||||
daemon = bus.get_object('org.aptostree.dev', '/org/aptostree/dev')
|
||||
|
||||
# Get introspection data
|
||||
introspection = daemon.Introspect()
|
||||
print("✓ Introspection successful")
|
||||
print("Introspection data:")
|
||||
print(introspection)
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"✗ Introspection failed: {e}")
|
||||
return False
|
||||
|
||||
def test_dbus_properties():
|
||||
"""Test D-Bus properties"""
|
||||
print("\n=== D-Bus Properties Test ===")
|
||||
|
||||
try:
|
||||
bus = dbus.SystemBus()
|
||||
daemon = bus.get_object('org.aptostree.dev', '/org/aptostree/dev')
|
||||
|
||||
# Get properties interface
|
||||
props = dbus.Interface(daemon, 'org.freedesktop.DBus.Properties')
|
||||
|
||||
# List all properties
|
||||
all_props = props.GetAll('org.aptostree.dev.Daemon')
|
||||
print("✓ Properties retrieved")
|
||||
print("Properties:")
|
||||
for key, value in all_props.items():
|
||||
print(f" {key}: {value}")
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"✗ Properties test failed: {e}")
|
||||
return False
|
||||
|
||||
def main():
|
||||
"""Main test function"""
|
||||
success = True
|
||||
|
||||
# Test basic connection
|
||||
if not test_dbus_connection():
|
||||
success = False
|
||||
|
||||
# Test introspection
|
||||
if not test_dbus_introspection():
|
||||
success = False
|
||||
|
||||
# Test properties
|
||||
if not test_dbus_properties():
|
||||
success = False
|
||||
|
||||
if success:
|
||||
print("\n🎉 All D-Bus tests passed!")
|
||||
sys.exit(0)
|
||||
else:
|
||||
print("\n❌ Some D-Bus tests failed!")
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue