| | |
| | from __future__ import absolute_import |
| | from __future__ import print_function |
| | from __future__ import unicode_literals |
| | from contextlib import closing |
| | import io |
| | import os.path |
| | import shutil |
| |
|
| | from hwp5.hwp5html import HTMLTransform |
| | from hwp5.plat import get_xslt |
| | from hwp5.storage.fs import FileSystemStorage |
| |
|
| | from . import test_xmlmodel |
| |
|
| |
|
| | class TestBase(test_xmlmodel.TestBase): |
| |
|
| | def make_base_dir(self): |
| | base_dir = self.id() |
| | if os.path.exists(base_dir): |
| | shutil.rmtree(base_dir) |
| | os.mkdir(base_dir) |
| | return base_dir |
| |
|
| |
|
| | class HtmlConvTest(TestBase): |
| |
|
| | @property |
| | def xslt(self): |
| | return get_xslt() |
| |
|
| | @property |
| | def xhwp5_path(self): |
| | return self.id() + '.xhwp5' |
| |
|
| | @property |
| | def transform(self): |
| | return HTMLTransform() |
| |
|
| | def create_xhwp5(self): |
| | xhwp5_path = self.xhwp5_path |
| | with io.open(xhwp5_path, 'wb') as xhwp5_file: |
| | self.hwp5file.xmlevents(embedbin=False).dump(xhwp5_file) |
| | return xhwp5_path |
| |
|
| | def test_generate_css_file(self): |
| | base_dir = self.make_base_dir() |
| | css_path = os.path.join(base_dir, 'styles.css') |
| |
|
| | with closing(self.hwp5file) as hwp5file: |
| | with io.open(css_path, 'wb+') as f: |
| | self.transform.transform_hwp5_to_css(hwp5file, f) |
| |
|
| | def test_generate_html_file(self): |
| | base_dir = self.make_base_dir() |
| | html_path = os.path.join(base_dir, 'index.xhtml') |
| |
|
| | with closing(self.hwp5file) as hwp5file: |
| | with io.open(html_path, 'wb+') as f: |
| | self.transform.transform_hwp5_to_xhtml(hwp5file, f) |
| |
|
| | def test_extract_bindata_dir(self): |
| | base_dir = self.make_base_dir() |
| | hwp5file = self.hwp5file |
| |
|
| | bindata_dir = os.path.join(base_dir, 'bindata') |
| |
|
| | self.transform.extract_bindata_dir(hwp5file, bindata_dir) |
| |
|
| | bindata_stg = hwp5file['BinData'] |
| |
|
| | self.assertEqual(set(bindata_stg), |
| | set(FileSystemStorage(bindata_dir))) |
| |
|
| | def test_extract_bindata_dir_without_bindata(self): |
| | self.hwp5file_name = 'charshape.hwp' |
| | base_dir = self.make_base_dir() |
| | hwp5file = self.hwp5file |
| |
|
| | bindata_dir = os.path.join(base_dir, 'bindata') |
| |
|
| | self.transform.extract_bindata_dir(hwp5file, bindata_dir) |
| | self.assertFalse(os.path.exists(bindata_dir)) |
| |
|