Skip to content
Snippets Groups Projects
test_html_writer.py 1.69 KiB
Newer Older
Andreas Fischer's avatar
Andreas Fischer committed
#!/usr/bin/env python3

import unittest
from html_writer import read_html, read_csv, csv_to_html, combine_template_with_data

class TestHTMLWriter(unittest.TestCase):

    def setUp(self):
        self.csvdata = [["First", "Last", "E-Mail"]]
        self.htmldata = "<tr><td>A</td><td>B</td><td>C</td></tr>"
        self.template = read_html()

    def test_read_csv_type(self):
        result = read_csv("test.csv")
        self.assertIsInstance(result, list)

    def test_read_csv_data(self):
        result = read_csv("test.csv")
        first = result[0][0]
        self.assertEqual(first, "Andreas")

    def test_csv_to_html_type(self):
        htmlstring = csv_to_html(self.csvdata)
        self.assertIsInstance(htmlstring, str)

    def test_csv_to_html_is_table_row(self):
        htmlstring = csv_to_html(self.csvdata)
        self.assertIn("<tr>", htmlstring)
        self.assertIn("</tr>", htmlstring)

    def test_csv_to_html_has_table_data(self):
        htmlstring = csv_to_html(self.csvdata)
        self.assertIn("<td>", htmlstring)
        self.assertIn("</td>", htmlstring)

    def test_csv_to_html_replaced_brackets(self):
        htmlstring = csv_to_html(self.csvdata)
        self.assertNotIn("{}", htmlstring)

    def test_combine_template_with_data_type(self):
        content = combine_template_with_data(self.template, "")
        self.assertIsInstance(content, str)

    def test_combine_template_with_data_replace(self):
        content = combine_template_with_data(self.template, self.htmldata)
        self.assertTrue(content.startswith("<!DOCTYPE html>"))
        self.assertTrue(content.endswith("</html>\n"))
        self.assertNotIn("{}", content)

if __name__ == "__main__":
    unittest.main()