python-tldp/tests/test_outputs.py

80 lines
2.5 KiB
Python

# -*- coding: utf8 -*-
#
# Copyright (c) 2016 Linux Documentation Project
from __future__ import absolute_import, division, print_function
from __future__ import unicode_literals
import os
import errno
import unittest
import random
from tldptesttools import TestToolsFilesystem
# -- SUT
from tldp.outputs import OutputCollection
from tldp.outputs import OutputDirectory
from tldp.outputs import OutputNamingConvention
class TestOutputNamingConvention(unittest.TestCase):
def test_namesets(self):
onc = OutputNamingConvention("/path/to/output/", "Stem")
self.assertTrue(onc.name_txt.endswith(".txt"))
self.assertTrue(onc.name_pdf.endswith(".pdf"))
self.assertTrue(onc.name_epub.endswith(".epub"))
self.assertTrue(onc.name_html.endswith(".html"))
self.assertTrue(onc.name_htmls.endswith("-single.html"))
self.assertTrue(onc.name_indexhtml.endswith("index.html"))
class TestOutputCollection(TestToolsFilesystem):
def test_not_a_directory(self):
missing = os.path.join(self.tempdir, 'vanishing')
with self.assertRaises(IOError) as ecm:
OutputCollection(missing)
e = ecm.exception
self.assertEqual(errno.ENOENT, e.errno)
def test_file_in_output_collection(self):
reldir, absdir = self.adddir('collection')
self.addfile('collection', __file__, stem='non-directory')
oc = OutputCollection(absdir)
self.assertEqual(0, len(oc))
def test_manyfiles(self):
reldir, absdir = self.adddir('manyfiles')
count = random.randint(8, 15)
for x in range(count):
self.adddir('manyfiles/Document-Stem-' + str(x))
oc = OutputCollection(absdir)
self.assertEqual(count, len(oc))
class TestOutputDirectory(TestToolsFilesystem):
def test_no_parent_dir(self):
odoc = os.path.join(self.tempdir, 'non-existent-parent', 'stem')
with self.assertRaises(IOError) as ecm:
OutputDirectory(odoc)
e = ecm.exception
self.assertEqual(errno.ENOENT, e.errno)
def test_iscomplete(self):
reldir, absdir = self.adddir('outputs/Frobnitz-HOWTO')
o = OutputDirectory(absdir)
self.assertFalse(o.iscomplete)
for prop in o.expected:
fname = getattr(o, prop, None)
assert fname is not None
with open(fname, 'w'):
pass
self.assertTrue(o.iscomplete)
self.assertTrue('Frobnitz' in str(o))
#
# -- end of file