Doctests for the modify_substitutestringpalette spell
=====================================================

NifToaster check
----------------

>>> from pyffi.formats.nif import NifFormat
>>> filename = "tests/nif/test_fix_cleanstringpalette.nif"
>>> outfilename = "tests/nif/_test_fix_cleanstringpalette.nif"
>>> # check current string palette
>>> data = NifFormat.Data()
>>> data.read(open(filename, "rb"))
>>> print(data.roots[0].controller.controller_sequences[0].string_palette.palette.get_all_strings())
[b'Test', b'Hello', b'People', b'NiTransformController', b'Test NonAccum', b'Useless', b'Crap']
>>> # substitute
>>> import sys
>>> sys.path.append("scripts/nif")
>>> import niftoaster
>>> sys.argv = ["niftoaster.py", "--prefix", "_", "--noninteractive", "modify_substitutestringpalette", "-a", "/Test/Woops", filename]
>>> niftoaster.NifToaster().cli()
pyffi.toaster:INFO:=== tests/nif/test_fix_cleanstringpalette.nif ===
pyffi.toaster:INFO:  --- modify_substitutestringpalette ---
pyffi.toaster:INFO:    ~~~ NiNode [TestCleanStringPalette] ~~~
pyffi.toaster:INFO:      ~~~ NiControllerManager [] ~~~
pyffi.toaster:INFO:        parsing string palette
pyffi.toaster:INFO:        b'Test' -> b'Woops'
pyffi.toaster:INFO:        b'Test NonAccum' -> b'Woops NonAccum'
pyffi.toaster:INFO:        b'Test' -> b'Woops'
pyffi.toaster:INFO:        b'Test NonAccum' -> b'Woops NonAccum'
pyffi.toaster:INFO:  writing tests/nif/_test_fix_cleanstringpalette.nif
pyffi.toaster:INFO:Finished.
>>> # check cleaned palette
>>> data = NifFormat.Data()
>>> data.read(open(outfilename, "rb"))
>>> print(data.roots[0].controller.controller_sequences[0].string_palette.palette.get_all_strings())
[b'Woops', b'NiTransformController', b'Woops NonAccum']
>>> # clean up
>>> import os
>>> os.remove(outfilename)
