Spaces:
Running
Running
| # -*- coding: utf-8 -*- | |
| 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): | |
| def xslt(self): | |
| return get_xslt() | |
| def xhwp5_path(self): | |
| return self.id() + '.xhwp5' | |
| 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)) | |