47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
from panda3d.core import *
|
|
import sys
|
|
|
|
|
|
class CustomObject:
|
|
pass
|
|
|
|
|
|
def test_collision_node_owner():
|
|
owner = CustomObject()
|
|
initial_rc = sys.getrefcount(owner)
|
|
|
|
node = CollisionNode("node")
|
|
assert node.owner is None
|
|
|
|
node.owner = owner
|
|
assert sys.getrefcount(owner) == initial_rc
|
|
assert node.owner is owner
|
|
|
|
node.owner = owner
|
|
assert sys.getrefcount(owner) == initial_rc
|
|
assert node.owner is owner
|
|
|
|
node.owner = None
|
|
assert sys.getrefcount(owner) == initial_rc
|
|
assert node.owner is None
|
|
|
|
del node
|
|
assert sys.getrefcount(owner) == initial_rc
|
|
|
|
# Assign owner and then delete node
|
|
node = CollisionNode("node")
|
|
assert sys.getrefcount(owner) == initial_rc
|
|
node.owner = owner
|
|
assert sys.getrefcount(owner) == initial_rc
|
|
del node
|
|
assert sys.getrefcount(owner) == initial_rc
|
|
|
|
# Delete owner and see what happens to the node
|
|
node = CollisionNode("node")
|
|
assert sys.getrefcount(owner) == initial_rc
|
|
node.owner = owner
|
|
assert sys.getrefcount(owner) == initial_rc
|
|
del owner
|
|
assert node.owner is None
|
|
|