summaryrefslogtreecommitdiffstats
path: root/tests/packager/test_package.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/packager/test_package.py')
-rw-r--r--tests/packager/test_package.py55
1 files changed, 48 insertions, 7 deletions
diff --git a/tests/packager/test_package.py b/tests/packager/test_package.py
index f0c27d4..b4c4526 100644
--- a/tests/packager/test_package.py
+++ b/tests/packager/test_package.py
@@ -13,25 +13,66 @@
# License for the specific language governing permissions and limitations
# under the License.
#
+import collections
import filecmp
-from packager import csar
import logging
+import os
import tempfile
import shutil
-def test_CSARWrite():
- CSAR_RESOURCE_DIR = 'tests/resources/csar'
- CSAR_ENTRY_FILE = 'test_entry.yaml'
- CSAR_OUTPUT_FILE = 'output.csar'
+from packager import csar
+
+CSAR_RESOURCE_DIR = 'tests/resources/csar'
+CSAR_ENTRY_FILE = 'test_entry.yaml'
+CSAR_OUTPUT_FILE = 'output.csar'
+
+Args = collections.namedtuple('Args',
+ ['source', 'entry', 'manifest', 'history', 'tests', 'licenses'])
+
+ARGS_MANIFEST = {
+ 'source': CSAR_RESOURCE_DIR,
+ 'entry': CSAR_ENTRY_FILE,
+ 'manifest': 'test_entry.mf',
+ 'history': 'ChangeLog.txt',
+ 'tests': 'Tests',
+ 'licenses': 'Licenses',
+ }
+ARGS_NO_MANIFEST = {
+ 'source': CSAR_RESOURCE_DIR,
+ 'entry': CSAR_ENTRY_FILE,
+ 'manifest': None,
+ 'history': None,
+ 'tests': None,
+ 'licenses': None,
+ }
+
+
+def csar_write_test(args):
csar_target_dir = tempfile.mkdtemp()
csar_extract_dir = tempfile.mkdtemp()
try:
- csar.write(CSAR_RESOURCE_DIR, CSAR_ENTRY_FILE, csar_target_dir + '/' + CSAR_OUTPUT_FILE, logging)
+ csar.write(args.source, args.entry, csar_target_dir + '/' + CSAR_OUTPUT_FILE, logging, args)
csar.read(csar_target_dir + '/' + CSAR_OUTPUT_FILE, csar_extract_dir, logging)
- assert filecmp.cmp(CSAR_RESOURCE_DIR + '/' + CSAR_ENTRY_FILE, csar_extract_dir + '/' + CSAR_ENTRY_FILE )
+ assert filecmp.cmp(args.source + '/' + args.entry, csar_extract_dir + '/' + args.entry)
+ if(args.manifest):
+ assert filecmp.cmp(args.source + '/' + args.manifest,
+ csar_extract_dir + '/' + args.manifest)
+ if(args.history):
+ assert filecmp.cmp(args.source + '/' + args.history,
+ csar_extract_dir + '/' + args.history)
finally:
shutil.rmtree(csar_target_dir, ignore_errors=True)
shutil.rmtree(csar_extract_dir, ignore_errors=True)
+def test_CSARWrite():
+ csar_write_test(Args(**ARGS_NO_MANIFEST))
+
+
+def test_CSARWrite_manifest():
+ # Because git can not store emptry directory, we need to create manually here
+ license_path = ARGS_MANIFEST['source'] + '/' + ARGS_MANIFEST['licenses']
+ if not os.path.exists(license_path):
+ os.makedirs(license_path)
+ csar_write_test(Args(**ARGS_MANIFEST))