test_collision_node.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from panda3d.core import *
  2. import sys
  3. class CustomObject:
  4. pass
  5. def test_collision_node_owner():
  6. owner = CustomObject()
  7. initial_rc = sys.getrefcount(owner)
  8. node = CollisionNode("node")
  9. assert node.owner is None
  10. node.owner = owner
  11. assert sys.getrefcount(owner) == initial_rc
  12. assert node.owner is owner
  13. node.owner = owner
  14. assert sys.getrefcount(owner) == initial_rc
  15. assert node.owner is owner
  16. node.owner = None
  17. assert sys.getrefcount(owner) == initial_rc
  18. assert node.owner is None
  19. del node
  20. assert sys.getrefcount(owner) == initial_rc
  21. # Assign owner and then delete node
  22. node = CollisionNode("node")
  23. assert sys.getrefcount(owner) == initial_rc
  24. node.owner = owner
  25. assert sys.getrefcount(owner) == initial_rc
  26. del node
  27. assert sys.getrefcount(owner) == initial_rc
  28. # Delete owner and see what happens to the node
  29. node = CollisionNode("node")
  30. assert sys.getrefcount(owner) == initial_rc
  31. node.owner = owner
  32. assert sys.getrefcount(owner) == initial_rc
  33. del owner
  34. assert node.owner is None