#\r
\r
from packager import csar\r
+import sys\r
import logging\r
import argparse\r
from aria import install_aria_extensions\r
shutil.rmtree(workdir, ignore_errors=True)\r
\r
\r
-def main():\r
+def parse_args(args_list):\r
"""\r
CLI entry point\r
"""\r
'source',\r
help='CSAR file location')\r
\r
- args = parser.parse_args()\r
+ return parser.parse_args(args_list)\r
+\r
+def main():\r
+ args = parse_args(sys.argv)\r
args.func(args)\r
\r
\r
--- /dev/null
+#
+# Copyright (c) 2017 GigaSpaces Technologies Ltd. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+import os
+
+ROOT_DIR = os.path.dirname(os.path.dirname(__file__))
--- /dev/null
+#
+# Copyright (c) 2017 GigaSpaces Technologies Ltd. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
--- /dev/null
+#\r
+# Copyright (c) 2017 GigaSpaces Technologies Ltd. All rights reserved.\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
+# not use this file except in compliance with the License. You may obtain\r
+# a copy of the License at\r
+#\r
+# http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
+# License for the specific language governing permissions and limitations\r
+# under the License.\r
+#\r
+\r
+import pytest\r
+from cli import __main__\r
+\r
+def test_main(capsys):\r
+ with pytest.raises(SystemExit):\r
+ args = __main__.parse_args(['csar-create', '-h'])\r
+ args.func(args)\r
+ out, err = capsys.readouterr()\r
+ assert out.startswith('usage:')\r
+\r
--- /dev/null
+#
+# Copyright (c) 2017 GigaSpaces Technologies Ltd. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
--- /dev/null
+#
+# Copyright (c) 2017 GigaSpaces Technologies Ltd. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+import filecmp
+from packager import csar
+import logging
+import tempfile
+import shutil
+
+def test_CSARWrite():
+ CSAR_RESOURCE_DIR = 'tests/resources/csar'
+ CSAR_ENTRY_FILE = 'test_entry.yaml'
+ CSAR_OUTPUT_FILE = 'output.csar'
+
+ 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.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 )
+ finally:
+ shutil.rmtree(csar_target_dir, ignore_errors=True)
+ shutil.rmtree(csar_extract_dir, ignore_errors=True)
+
+
--- /dev/null
+#
+# Copyright (c) 2017 GigaSpaces Technologies Ltd. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+testtools
+mock==1.0.1
+pylint==1.6.4
+pytest==3.0.2
+pytest-cov==2.3.1
+pytest-mock==1.2
\ No newline at end of file
--- /dev/null
+#\r
+# Copyright (c) 2017 GigaSpaces Technologies Ltd. All rights reserved.\r
+#\r
+# Licensed under the Apache License, Version 2.0 (the "License"); you may\r
+# not use this file except in compliance with the License. You may obtain\r
+# a copy of the License at\r
+#\r
+# http://www.apache.org/licenses/LICENSE-2.0\r
+#\r
+# Unless required by applicable law or agreed to in writing, software\r
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT\r
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r
+# License for the specific language governing permissions and limitations\r
+# under the License.\r
+#\r
+\r
+tosca_definitions_version: tosca_simple_yaml_1_0\r
+\r
+topology_template:\r
+ node_templates:\r
+ test_node:\r
+ type: tosca.nodes.Compute\r
+\r
--- /dev/null
+#
+# Copyright (c) 2017 GigaSpaces Technologies Ltd. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+[tox]
+envlist=py27
+
+[testenv]
+passenv =
+ TRAVIS
+ PYTHON
+ PYTHON_VERSION
+ PYTHON_ARCH
+setenv =
+ INSTALL_CTX=1
+deps =
+ -rrequirements.txt
+ -rtests/requirements.txt
+basepython =
+ py27: python2.7
+
+[testenv:py27]
+commands =
+ pytest tests --cov-report term-missing --cov packager --cov cli
+