Doctests for the modify_delvertexcolor spell
============================================

NifToaster modify_delvertexcolor check
--------------------------------------

>>> import os
>>> from os.path import dirname
>>> dirpath = __file__
>>> for i in range(3): #recurse up to root repo dir
...     dirpath = dirname(dirpath)
>>> repo_root = dirpath
>>> script_dir = os.path.join(repo_root, "scripts", "nif")
>>> import sys
>>> script = os.path.join(script_dir, "niftoaster.py")
>>> sys.path.insert(-1, script_dir.replace("\\\\", "/"))
>>> nif_dir = "tests/spells/nif/files/"
>>> file_name = "test_vertexcolor.nif"
>>> file_name_full = nif_dir + file_name
>>> nif_dir_out = nif_dir + "out/"
>>> file_name_out = "_" + file_name
>>> file_name_full_out = nif_dir + file_name_out

>>> from pyffi.formats.nif import NifFormat
>>> # check that file has vertex color
>>> data = NifFormat.Data()
>>> data.read(open(file_name_full, "rb"))
>>> print([block.__class__.__name__ for block in data.blocks])
['NiNode', 'NiTriStrips', 'NiStencilProperty', 'NiSpecularProperty', 'NiMaterialProperty', 'NiVertexColorProperty', 'NiTriStripsData']
>>> print(data.roots[0].children[0].data.has_vertex_colors)
True
>>> # delete vertex color
>>> import niftoaster
>>> sys.argv = ["niftoaster.py", "--prefix", "_", "--noninteractive", "modify_delvertexcolor", file_name_full]
>>> niftoaster.NifToaster().cli() # doctest: +ELLIPSIS +REPORT_NDIFF
pyffi.toaster:INFO:=== ...test_vertexcolor.nif ===
pyffi.toaster:INFO:  --- modify_delvertexcolor ---
pyffi.toaster:INFO:    ~~~ NiNode [Scene Root] ~~~
pyffi.toaster:INFO:      ~~~ NiTriStrips [Cube] ~~~
pyffi.toaster:INFO:        ~~~ NiVertexColorProperty [] ~~~
pyffi.toaster:INFO:          stripping this branch
pyffi.toaster:INFO:        ~~~ NiTriStripsData [] ~~~
pyffi.toaster:INFO:          removing vertex colors
pyffi.toaster:INFO:  writing ..._test_vertexcolor.nif
pyffi.toaster:INFO:Finished.
>>> # check that file has no vertex color
>>> data = NifFormat.Data()
>>> data.read(open(file_name_full_out, "rb"))
>>> print([block.__class__.__name__ for block in data.blocks])
['NiNode', 'NiTriStrips', 'NiStencilProperty', 'NiSpecularProperty', 'NiMaterialProperty', 'NiTriStripsData']
>>> print(data.roots[0].children[0].data.has_vertex_colors)
False
>>> # clean up
>>> import os
>>> os.remove(file_name_full_out)
