php-ext-xlswriter/library/libxlsxwriter/test/functional/base_test_class.py

61 lines
1.9 KiB
Python

###############################################################################
#
# Base test class for libxlsxwriter functional tests.
#
# Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
#
import unittest
import os
from helper_functions import _compare_xlsx_files
class XLSXBaseTest(unittest.TestCase):
"""
Test file created with libxlsxwriter against a file created by Excel.
"""
def setUp(self):
self.maxDiff = None
self.no_system_error = 0
self.got_filename = ''
self.exp_filename = ''
self.ignore_files = []
self.ignore_elements = {}
def run_exe_test(self, exe_name, exp_filename=None):
"""Run C exe and compare output xlsx file with the Excel file."""
# Run the C executable to generate the "got" xlsx file.
got = os.system("cd test/functional/src; ./%s" % exe_name)
self.assertEqual(got, self.no_system_error)
# Create the path/file names for the xlsx/xlsm files to compare.
if exp_filename and exp_filename.endswith('.xlsm'):
got_filename = exe_name.replace('test_', '') + '.xlsm'
else:
got_filename = exe_name.replace('test_', '') + '.xlsx'
if not exp_filename:
exp_filename = got_filename
self.got_filename = 'test/functional/src/test_' + got_filename
self.exp_filename = 'test/functional/xlsx_files/' + exp_filename
# Do the comparison between the files.
got, exp = _compare_xlsx_files(self.got_filename,
self.exp_filename,
self.ignore_files,
self.ignore_elements)
self.assertEqual(exp, got)
def tearDown(self):
# Cleanup.
if os.path.exists(self.got_filename):
os.remove(self.got_filename)
self.ignore_files = []
self.ignore_elements = {}