quicktest.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/usr/bin/env python
  2. #-*- coding: UTF-8 -*-
  3. """
  4. This module uses the sample.py script to load all test models it finds.
  5. Note: this is not an exhaustive test suite, it does not check the
  6. data structures in detail. It just verifies whether basic
  7. loading and querying of 3d models using pyassimp works.
  8. """
  9. import os
  10. import sys
  11. # Make the development (ie. GIT repo) version of PyAssimp available for import.
  12. sys.path.insert(0, '..')
  13. import sample
  14. from pyassimp import errors
  15. # Paths to model files.
  16. basepaths = [os.path.join('..', '..', '..', 'test', 'models'),
  17. os.path.join('..', '..', '..', 'test', 'models-nonbsd')]
  18. # Valid extensions for 3D model files.
  19. extensions = ['.3ds', '.x', '.lwo', '.obj', '.md5mesh', '.dxf', '.ply', '.stl',
  20. '.dae', '.md5anim', '.lws', '.irrmesh', '.nff', '.off', '.blend']
  21. def run_tests():
  22. ok, err = 0, 0
  23. for path in basepaths:
  24. print("Looking for models in %s..." % path)
  25. for root, dirs, files in os.walk(path):
  26. for afile in files:
  27. base, ext = os.path.splitext(afile)
  28. if ext in extensions:
  29. try:
  30. sample.main(os.path.join(root, afile))
  31. ok += 1
  32. except errors.AssimpError as error:
  33. # Assimp error is fine; this is a controlled case.
  34. print(error)
  35. err += 1
  36. except Exception:
  37. print("Error encountered while loading <%s>"
  38. % os.path.join(root, afile))
  39. print('** Loaded %s models, got controlled errors for %s files'
  40. % (ok, err))
  41. if __name__ == '__main__':
  42. run_tests()