test_Loader.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. from panda3d.core import Filename, NodePath
  2. from direct.showbase.Loader import Loader
  3. import pytest
  4. @pytest.fixture
  5. def loader():
  6. return Loader(base=None)
  7. @pytest.fixture
  8. def temp_model():
  9. from panda3d.core import ModelPool, ModelRoot
  10. root = ModelRoot('model')
  11. root.fullpath = '/test-model.bam'
  12. ModelPool.add_model(root.fullpath, root)
  13. yield root.fullpath
  14. ModelPool.release_model(root.fullpath)
  15. def test_load_model_filename(loader, temp_model):
  16. model = loader.load_model(Filename(temp_model))
  17. assert model
  18. assert isinstance(model, NodePath)
  19. assert model.name == 'model'
  20. def test_load_model_str(loader, temp_model):
  21. model = loader.load_model(str(temp_model))
  22. assert model
  23. assert isinstance(model, NodePath)
  24. assert model.name == 'model'
  25. def test_load_model_list(loader, temp_model):
  26. models = loader.load_model([temp_model, temp_model])
  27. assert models
  28. assert isinstance(models, list)
  29. assert len(models) == 2
  30. assert isinstance(models[0], NodePath)
  31. assert isinstance(models[1], NodePath)
  32. def test_load_model_tuple(loader, temp_model):
  33. models = loader.load_model((temp_model, temp_model))
  34. assert models
  35. assert isinstance(models, list)
  36. assert len(models) == 2
  37. assert isinstance(models[0], NodePath)
  38. assert isinstance(models[1], NodePath)
  39. def test_load_model_set(loader, temp_model):
  40. models = loader.load_model({temp_model})
  41. assert models
  42. assert isinstance(models, list)
  43. assert len(models) == 1
  44. assert isinstance(models[0], NodePath)
  45. def test_load_model_missing(loader):
  46. with pytest.raises(IOError):
  47. loader.load_model('/nonexistent.bam')
  48. def test_load_model_okmissing(loader):
  49. model = loader.load_model('/nonexistent.bam', okMissing=True)
  50. assert model is None