import unittest
from formats.docx_format import is_valid


class TestDocxFormat(unittest.TestCase):
    def test_is_valid__valid(self):
        resource = {}
        with open("tests/data/valid.docx", "r") as file:
            self.assertTrue(is_valid(resource, file))
            self.assertIsNone(resource.get("error"))

    def test_is_valid__invalid_no_zip(self):
        resource = {}
        with open("tests/data/correct.json", "r") as file:
            self.assertFalse(is_valid(resource, file))
            self.assertIsNotNone(resource.get("error"))

    def test_is_valid__invalid_no_excel(self):
        resource = {}
        with open("tests/data/valid.xlsx", "r") as file:
            self.assertFalse(is_valid(resource, file))
            self.assertIsNotNone(resource.get("error"))

    def test_is_valid__invalid_zip(self):
        resource = {}
        with open("tests/data/valid.odt", "r") as file:
            self.assertFalse(is_valid(resource, file))
            self.assertIsNotNone(resource.get("error"))


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