This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
md-pdf/tests/__init__.py
2017-06-01 22:04:21 +01:00

64 lines
1.6 KiB
Python

import unittest
import os
from md_pdf.consts import TEMPLATES_DIR, STATIC_DIR
from md_pdf.build.templates import FILE_NAME_FORMAT
from bs4 import BeautifulSoup
class BaseTestCase(unittest.TestCase):
def setUp(self):
super().setUp()
self.BASE_VALID_CONFIG = {
'title': 'test title',
'input': 'test-files/*.md',
'output_formats': [
'html', 'pdf'
],
'output_dir': 'out/',
}
def parse_html(self, html):
return BeautifulSoup(html, 'html.parser')
def remove_file(self, file):
try:
os.remove(file)
except OSError:
pass
def touch_file(self, file):
open(file, 'w').close()
def create_fake_templates(self):
for template in [
'header',
'footer',
'cover'
]:
self.touch_file(FILE_NAME_FORMAT.format(template))
def extend_config(self, *args):
base_config = self.BASE_VALID_CONFIG.copy()
for arg in args:
base_config = dict(base_config, **arg)
return base_config
def delete_templates(self):
for template in [
'header.html',
'footer.html',
'cover.html',
'toc.xsl',
]:
self.remove_file(os.path.join(TEMPLATES_DIR, template))
def tearDown(self):
self.delete_templates()
self.remove_file(os.path.join(STATIC_DIR, 'style.css'))
def call_to_args(self, call):
args = tuple(call.call_args)[0]
kwargs = tuple(call.call_args)[1]
return args, kwargs