| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- from panda3d.core import PythonTask
- import pytest
- import types
- import sys
- def test_pythontask_property_builtin():
- task = PythonTask()
- # Read-write property
- assert task.name == ""
- task.name = "ABC"
- # Read-only property
- assert task.dt == 0.0
- with pytest.raises(AttributeError):
- task.dt = 1.0
- assert task.dt == 0.0
- # Non-existent property
- with pytest.raises(AttributeError):
- task.abc
- def test_pythontask_property_custom():
- task = PythonTask()
- assert not hasattr(task, 'custom_field')
- task.custom_field = 1.0
- assert hasattr(task, 'custom_field')
- assert task.custom_field == 1.0
- task.custom_field = 2.0
- assert task.custom_field == 2.0
- del task.custom_field
- assert not hasattr(task, 'custom_field')
- def test_pythontask_property_override():
- task = PythonTask()
- assert isinstance(task.gather, types.BuiltinMethodType)
- task.gather = 123
- assert task.gather == 123
- del task.gather
- assert isinstance(task.gather, types.BuiltinMethodType)
- def test_pythontask_dict_get():
- task = PythonTask()
- d = task.__dict__
- rc1 = sys.getrefcount(d)
- task.__dict__
- task.__dict__
- rc2 = sys.getrefcount(d)
- assert rc1 == rc2
- def test_pythontask_dict_set():
- task = PythonTask()
- d = {}
- rc1 = sys.getrefcount(d)
- task.__dict__ = d
- rc2 = sys.getrefcount(d)
- assert rc1 + 1 == rc2
- task.__dict__ = {}
- rc2 = sys.getrefcount(d)
- assert rc1 == rc2
|