|
@@ -0,0 +1,70 @@
|
|
|
|
|
+from panda3d.core import Filename, NodePath
|
|
|
|
|
+from direct.showbase.Loader import Loader
|
|
|
|
|
+import pytest
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
[email protected]
|
|
|
|
|
+def loader():
|
|
|
|
|
+ return Loader(base=None)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
[email protected]
|
|
|
|
|
+def temp_model():
|
|
|
|
|
+ from panda3d.core import ModelPool, ModelRoot
|
|
|
|
|
+
|
|
|
|
|
+ root = ModelRoot('model')
|
|
|
|
|
+ root.fullpath = '/test-model.bam'
|
|
|
|
|
+
|
|
|
|
|
+ ModelPool.add_model(root.fullpath, root)
|
|
|
|
|
+ yield root.fullpath
|
|
|
|
|
+ ModelPool.release_model(root.fullpath)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def test_load_model_filename(loader, temp_model):
|
|
|
|
|
+ model = loader.load_model(Filename(temp_model))
|
|
|
|
|
+ assert model
|
|
|
|
|
+ assert isinstance(model, NodePath)
|
|
|
|
|
+ assert model.name == 'model'
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def test_load_model_str(loader, temp_model):
|
|
|
|
|
+ model = loader.load_model(str(temp_model))
|
|
|
|
|
+ assert model
|
|
|
|
|
+ assert isinstance(model, NodePath)
|
|
|
|
|
+ assert model.name == 'model'
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def test_load_model_list(loader, temp_model):
|
|
|
|
|
+ models = loader.load_model([temp_model, temp_model])
|
|
|
|
|
+ assert models
|
|
|
|
|
+ assert isinstance(models, list)
|
|
|
|
|
+ assert len(models) == 2
|
|
|
|
|
+ assert isinstance(models[0], NodePath)
|
|
|
|
|
+ assert isinstance(models[1], NodePath)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def test_load_model_tuple(loader, temp_model):
|
|
|
|
|
+ models = loader.load_model((temp_model, temp_model))
|
|
|
|
|
+ assert models
|
|
|
|
|
+ assert isinstance(models, list)
|
|
|
|
|
+ assert len(models) == 2
|
|
|
|
|
+ assert isinstance(models[0], NodePath)
|
|
|
|
|
+ assert isinstance(models[1], NodePath)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def test_load_model_set(loader, temp_model):
|
|
|
|
|
+ models = loader.load_model({temp_model})
|
|
|
|
|
+ assert models
|
|
|
|
|
+ assert isinstance(models, list)
|
|
|
|
|
+ assert len(models) == 1
|
|
|
|
|
+ assert isinstance(models[0], NodePath)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def test_load_model_missing(loader):
|
|
|
|
|
+ with pytest.raises(IOError):
|
|
|
|
|
+ loader.load_model('/nonexistent.bam')
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def test_load_model_okmissing(loader):
|
|
|
|
|
+ model = loader.load_model('/nonexistent.bam', okMissing=True)
|
|
|
|
|
+ assert model is None
|