diff --git a/pungi/scripts/gather_modules.py b/pungi/scripts/gather_modules.py index f3928727..507d9a39 100644 --- a/pungi/scripts/gather_modules.py +++ b/pungi/scripts/gather_modules.py @@ -12,6 +12,9 @@ import createrepo_c as cr from typing.io import BinaryIO +EMPTY_FILE = '.empty' + + def _is_compressed_file(first_two_bytes: bytes, initial_bytes: bytes): return binascii.hexlify(first_two_bytes) == initial_bytes @@ -65,6 +68,9 @@ def collect_modules(modules_paths: List[BinaryIO], target_dir: str): module_defaults_path = os.path.join(target_dir, 'module_defaults') os.makedirs(modules_path, exist_ok=True) os.makedirs(module_defaults_path, exist_ok=True) + # Defaults modules can be empty, but pungi detects + # empty folder while copying and raises the exception in this case + Path(os.path.join(module_defaults_path, EMPTY_FILE)).touch() for module_file in modules_paths: data = module_file.read() diff --git a/tests/test_gather_modules.py b/tests/test_gather_modules.py index 0930ef06..7cbef4fa 100644 --- a/tests/test_gather_modules.py +++ b/tests/test_gather_modules.py @@ -3,7 +3,7 @@ import gzip import os from io import StringIO import yaml -from pungi.scripts.gather_modules import collect_modules +from pungi.scripts.gather_modules import collect_modules, EMPTY_FILE import unittest from pyfakefs.fake_filesystem_unittest import TestCase @@ -106,7 +106,7 @@ class TestModulesYamlParser(TestCase): self.assertEqual(['mariadb-devel-10.3_1-8010020200108182321.cdc1202b', 'javapackages-tools-201801-8000020190628172923.b07bea58'], os.listdir(os.path.join(PATH_TO_KOJI, 'modules/x86_64'))) - self.assertEqual(['ant.yaml'], + self.assertEqual([EMPTY_FILE, 'ant.yaml'], os.listdir(os.path.join(PATH_TO_KOJI, 'module_defaults'))) # check that modules were exported