mirror of https://github.com/tLDP/python-tldp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.5 KiB
79 lines
2.5 KiB
# -*- 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
|
|
|