blob: 5ef9fbdb8d721cc33791b899ed8497c98ba025da [file] [log] [blame]
"""Tests for zap_file_parser.py
Usage:
python -m unittest
"""
import os
import shutil
import tempfile
import unittest
import zap_file_parser
try:
import yaml
except ImportError:
print("Missing yaml library. Install with:\npip install pyyaml")
exit(1)
_HERE = os.path.abspath(os.path.dirname(__file__))
_TEST_FILE = os.path.join(_HERE, "test_files", "sample_zap_file.zap")
_TEST_METADATA = os.path.join(_HERE, "test_files", "sample_zap_file_hashmeta.yaml")
class TestZapFileParser(unittest.TestCase):
"""Testcases for zap_file_parser.py."""
def test_generate_hash(self):
"""Tests generate_hash function."""
hash_string = zap_file_parser.generate_hash(_TEST_FILE)
self.assertEqual(hash_string, "Xir1gEfjij", "Hash is incorrectly generated.")
def test_generate_metadata(self):
"""Tests generate_metadata."""
generated_metadata = zap_file_parser.generate_hash_metadata(_TEST_FILE)
with open(_TEST_METADATA) as f:
expected_metadata = yaml.load(f.read(), Loader=yaml.FullLoader)
self.assertEqual(
generated_metadata, expected_metadata, "Metadata not generated correctly.")
def test_generate_metadata_file(self):
"""Tests generate_metadata_file."""
with tempfile.TemporaryDirectory(dir=os.path.dirname(_HERE)) as dir:
zap_file = os.path.join(dir, "test_file.zap")
hashmeta_file = os.path.join(dir, "test_file_hashmeta.yaml")
shutil.copy(_TEST_FILE, zap_file)
zap_file_parser.generate_hash_metadata_file(zap_file)
with open(hashmeta_file) as f:
generated_metadata = yaml.load(f.read(), Loader=yaml.FullLoader)
with open(_TEST_METADATA) as f:
expected_metadata = yaml.load(f.read(), Loader=yaml.FullLoader)
self.assertEqual(
generated_metadata, expected_metadata, "Metadata file not generated correctly.")
def test_generate_name(self):
"""Tests generate_name."""
name = zap_file_parser.generate_name(_TEST_FILE)
self.assertEqual(name, "rootnode_dimmablelight_Xir1gEfjij", "Name incorrectly generated.")
if __name__ == "__main__":
unittest.main()