forked from panda3d/panda3d
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_Loader.py
More file actions
70 lines (50 loc) · 1.78 KB
/
test_Loader.py
File metadata and controls
70 lines (50 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from panda3d.core import Filename, NodePath
from direct.showbase.Loader import Loader
import pytest
@pytest.fixture
def loader():
return Loader(base=None)
@pytest.fixture
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