mirror of https://github.com/tLDP/python-tldp
76 lines
2.5 KiB
Python
76 lines
2.5 KiB
Python
|
|
||
|
from __future__ import absolute_import, division, print_function
|
||
|
|
||
|
import io
|
||
|
import os
|
||
|
import codecs
|
||
|
import shutil
|
||
|
|
||
|
from tldptesttools import TestInventoryBase, TestSourceDocSkeleton
|
||
|
|
||
|
# -- Test Data
|
||
|
import example
|
||
|
|
||
|
# -- SUT
|
||
|
import tldp.driver
|
||
|
|
||
|
opb = os.path.basename
|
||
|
opj = os.path.join
|
||
|
|
||
|
|
||
|
class TestInventoryHandling(TestInventoryBase):
|
||
|
|
||
|
def test_lifecycle(self):
|
||
|
self.add_docbook4xml_xsl_to_config()
|
||
|
c = self.config
|
||
|
argv = self.argv
|
||
|
argv.extend(['--publish'])
|
||
|
argv.extend(['--docbook4xml-xslprint', c.docbook4xml_xslprint])
|
||
|
argv.extend(['--docbook4xml-xslchunk', c.docbook4xml_xslchunk])
|
||
|
argv.extend(['--docbook4xml-xslsingle', c.docbook4xml_xslsingle])
|
||
|
mysource = TestSourceDocSkeleton(c.sourcedir)
|
||
|
ex = example.ex_docbook4xml_dir
|
||
|
exdir = os.path.dirname(ex.filename)
|
||
|
mysource.copytree(exdir)
|
||
|
inv = tldp.inventory.Inventory(c.pubdir, c.sourcedir)
|
||
|
self.assertEqual(1, len(inv.new.keys()))
|
||
|
|
||
|
# -- run first build (will generate MD5SUMS file
|
||
|
#
|
||
|
exitcode = tldp.driver.run(argv)
|
||
|
self.assertEqual(exitcode, os.EX_OK)
|
||
|
inv = tldp.inventory.Inventory(c.pubdir, c.sourcedir)
|
||
|
self.assertEqual(1, len(inv.published.keys()))
|
||
|
|
||
|
# -- remove a source file, add a source file, change a source file
|
||
|
#
|
||
|
main = opj(mysource.dirname, opb(exdir), opb(ex.filename))
|
||
|
disappearing = opj(mysource.dirname, opb(exdir), 'disappearing.xml')
|
||
|
brandnew = opj(mysource.dirname, opb(exdir), 'brandnew.xml')
|
||
|
shutil.copy(disappearing, brandnew)
|
||
|
os.unlink(opj(mysource.dirname, opb(exdir), 'disappearing.xml'))
|
||
|
with codecs.open(main, 'w', encoding='utf-8') as f:
|
||
|
f.write(ex.content.replace('FIXME', 'TOTALLY-FIXED'))
|
||
|
inv = tldp.inventory.Inventory(c.pubdir, c.sourcedir)
|
||
|
self.assertEqual(1, len(inv.stale.keys()))
|
||
|
stdout = io.StringIO()
|
||
|
c.verbose = True
|
||
|
tldp.driver.detail(c, inv.all.values(), file=stdout)
|
||
|
stdout.seek(0)
|
||
|
data = stdout.read()
|
||
|
self.assertTrue('new source' in data)
|
||
|
self.assertTrue('gone source' in data)
|
||
|
self.assertTrue('changed source' in data)
|
||
|
|
||
|
# -- rebuild (why not?)
|
||
|
#
|
||
|
exitcode = tldp.driver.run(argv)
|
||
|
self.assertEqual(exitcode, os.EX_OK)
|
||
|
inv = tldp.inventory.Inventory(c.pubdir, c.sourcedir)
|
||
|
self.assertEqual(1, len(inv.published.keys()))
|
||
|
|
||
|
# -- remove a file (known extraneous file, build should succeed)
|
||
|
|
||
|
#
|
||
|
# -- end of file
|