From fe3a0ed447ec4dcaa990d2d9136f1102046871f6 Mon Sep 17 00:00:00 2001 From: "Martin A. Brown" Date: Mon, 29 Feb 2016 21:31:55 -0800 Subject: [PATCH] initial commot of test_driver.py --- tests/test_driver.py | 130 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 tests/test_driver.py diff --git a/tests/test_driver.py b/tests/test_driver.py new file mode 100644 index 0000000..f348c99 --- /dev/null +++ b/tests/test_driver.py @@ -0,0 +1,130 @@ + +from __future__ import absolute_import, division, print_function + +import os +import time +import random +import shutil +import unittest +from cStringIO import StringIO +from argparse import Namespace + +from tldp.outputs import OutputNamingConvention +from tldptesttools import TestInventoryBase + +# -- Test Data +import example + +# -- SUT +import tldp.config +import tldp.driver + +widths = Namespace(status=20, stem=50) + + +class TestDriverDetail(TestInventoryBase): + + def test_stale_detail_verbosity(self): + self.add_stale('Frobnitz-HOWTO', example.ex_docbook4xml) + config = Namespace( + pubdir=self.pubdir, + sourcedir=self.sourcedirs, + verbose=True, + ) + stdout = StringIO() + tldp.driver.detail(config, None, None, file=stdout) + stdout.seek(0) + self.assertTrue('newer file' in stdout.read()) + + def test_broken_detail_verbosity(self): + self.add_broken('Frobnitz-HOWTO', example.ex_docbook4xml) + config = Namespace( + pubdir=self.pubdir, + sourcedir=self.sourcedirs, + verbose=True, + ) + stdout = StringIO() + tldp.driver.detail(config, None, None, file=stdout) + stdout.seek(0) + self.assertTrue('missing file' in stdout.read()) + + +class TestDriverBuild(TestInventoryBase): + + def test_build_linuxdoc(self): + self.add_new('Frobnitz-Linuxdoc-HOWTO', example.ex_linuxdoc) + config, args = tldp.config.collectconfiguration('ldptool', []) + config.pubdir = self.pubdir + config.sourcedir = self.sourcedirs + config.skip=[] + inv = tldp.inventory.Inventory(config.pubdir, config.sourcedir) + self.assertEquals(1, len(inv.all.keys())) + docs = inv.all.values() + tldp.driver.build(config, docs, inv) + doc = docs.pop(0) + self.assertTrue(doc.output.iscomplete) + + def test_build_docbooksgml(self): + self.add_new('Frobnitz-DocBook-SGML-HOWTO', example.ex_docbooksgml) + config, args = tldp.config.collectconfiguration('ldptool', []) + config.pubdir = self.pubdir + config.sourcedir = self.sourcedirs + config.skip=['Frobnitz-DocBook-SGML-HOWTO'] + inv = tldp.inventory.Inventory(config.pubdir, config.sourcedir) + self.assertEquals(1, len(inv.all.keys())) + docs = inv.all.values() + tldp.driver.build(config, docs, inv) + doc = docs.pop(0) + self.assertFalse(doc.output.iscomplete) + # -- after figuring out collateindex and friends, this should say + # self.assertTrue(doc.output.iscomplete) + + def test_build_docbook4xml(self): + self.add_new('Frobnitz-DocBook-XML-4-HOWTO', example.ex_docbook4xml) + config, args = tldp.config.collectconfiguration('ldptool', []) + config.pubdir = self.pubdir + config.sourcedir = self.sourcedirs + config.skip=['Frobnitz-DocBook-XML-4-HOWTO'] + inv = tldp.inventory.Inventory(config.pubdir, config.sourcedir) + self.assertEquals(1, len(inv.all.keys())) + docs = inv.all.values() + tldp.driver.build(config, docs, inv) + doc = docs.pop(0) + self.assertFalse(doc.output.iscomplete) + # -- after figuring out the XSL files at test time, this should say + # self.assertTrue(doc.output.iscomplete) + + +class TestDriverSummary(TestInventoryBase): + + def test_summary(self): + self.add_new('Frobnitz-DocBook-XML-4-HOWTO', example.ex_docbook4xml) + config, args = tldp.config.collectconfiguration('ldptool', []) + config.pubdir = self.pubdir + config.sourcedir = self.sourcedirs + stdout = StringIO() + tldp.driver.summary(config, None, file=stdout) + stdout.seek(0) + parts = stdout.read().split() + idx = parts.index('new') + self.assertEqual(['new', '1'], parts[idx:idx+2]) + + +class TestDriverRun(TestInventoryBase): + + def test_run(self): + ex = example.ex_linuxdoc + self.add_published('Published-HOWTO', ex) + self.add_new('New-HOWTO', ex) + self.add_stale('Stale-HOWTO', ex) + self.add_orphan('Orphan-HOWTO', ex) + self.add_broken('Broken-HOWTO', ex) + argv = ['--pubdir', self.pubdir, '--sourcedir', self.sourcedir] + fullpath = os.path.join(self.tempdir, 'sources', 'Published-HOWTO') + argv.extend(['stale', 'Orphan-HOWTO', fullpath]) + tldp.driver.run(argv) + inv = tldp.inventory.Inventory(self.pubdir, self.sourcedirs) + self.assertEquals(3, len(inv.published.keys())) + +# +# -- end of file