Files
AIC-Project/Tools/ModelTranslator/tests/test_model_decimate_cli.py
T

42 lines
1.3 KiB
Python

import os
import sys
import unittest
from unittest import mock
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import model_decimate
class TestModelDecimateCli(unittest.TestCase):
def test_default_reducer_is_quad(self):
summary = {
"src": "store.fbx",
"tris_before": 49966,
"tris_after": 3000,
"target": 3000,
"reducer": "quad",
"uv": {
"mode": "seam",
"islands": 1,
"fill": 1.0,
"flipped": 0.0,
"overlap": 0.0,
},
"warnings": [],
}
argv = ["model_decimate.py", "store.fbx", "--tris", "3000"]
with mock.patch.object(sys, "argv", argv), \
mock.patch.object(model_decimate, "find_blender", return_value="blender"), \
mock.patch.object(model_decimate, "run_blender_script", return_value=summary) as run:
model_decimate.main()
args = run.call_args.args[2]
# argv 顺序:input, out, tris, unwrap, overlap, reducer, qr_input_cap
self.assertEqual(args[5], "quad") # reducer 默认 quad
self.assertEqual(args[6], "50000") # qr_input_cap 默认 50000
if __name__ == "__main__":
unittest.main()