import unittest
import importlib
import pkgutil
import tempfile


class TestAllFormats(unittest.TestCase):
    def test_load_all_modules(self):
        """Make sure that every format module has been loaded at least once.
        Otherwise, the code coverage will not know about the file."""
        package = importlib.import_module("formats")
        modules = [module.name for module in pkgutil.iter_modules(package.__path__)]
        for module in modules:
            format_check_module = importlib.import_module("formats." + module)
            with tempfile.NamedTemporaryFile(delete=True) as temp_file:
                resource = {}
                resource["url"] = "https://test.invalid/data"
                try:
                    format_check_module.is_valid(resource, temp_file)
                except Exception as e:
                    print(f"Module for format {module} failed.")
                    raise (e)


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