You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by em...@apache.org on 2017/03/17 19:38:35 UTC

[07/18] incubator-ariatosca git commit: ARIA-105 Integrate parser and orchestrator models

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/09f826a1/tests/storage/test_resource_storage.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_resource_storage.py b/tests/storage/test_resource_storage.py
index 4d01a88..efacb2e 100644
--- a/tests/storage/test_resource_storage.py
+++ b/tests/storage/test_resource_storage.py
@@ -28,20 +28,20 @@ from . import TestFileSystem
 
 class TestResourceStorage(TestFileSystem):
     def _create(self, storage):
-        storage.register('blueprint')
+        storage.register('service_template')
 
     def _upload(self, storage, tmp_path, id):
         with open(tmp_path, 'w') as f:
             f.write('fake context')
 
-        storage.blueprint.upload(entry_id=id, source=tmp_path)
+        storage.service_template.upload(entry_id=id, source=tmp_path)
 
     def _upload_dir(self, storage, tmp_dir, tmp_file_name, id):
         file_source = os.path.join(tmp_dir, tmp_file_name)
         with open(file_source, 'w') as f:
             f.write('fake context')
 
-        storage.blueprint.upload(entry_id=id, source=tmp_dir)
+        storage.service_template.upload(entry_id=id, source=tmp_dir)
 
     def _create_storage(self):
         return ResourceStorage(FileSystemResourceAPI,
@@ -50,27 +50,27 @@ class TestResourceStorage(TestFileSystem):
     def test_name(self):
         api = FileSystemResourceAPI
         storage = ResourceStorage(FileSystemResourceAPI,
-                                  items=['blueprint'],
+                                  items=['service_template'],
                                   api_kwargs=dict(directory=self.path))
         assert repr(storage) == 'ResourceStorage(api={api})'.format(api=api)
         assert 'directory={resource_dir}'.format(resource_dir=self.path) in \
-               repr(storage.registered['blueprint'])
+               repr(storage.registered['service_template'])
 
     def test_create(self):
         storage = self._create_storage()
         self._create(storage)
-        assert os.path.exists(os.path.join(self.path, 'blueprint'))
+        assert os.path.exists(os.path.join(self.path, 'service_template'))
 
     def test_upload_file(self):
         storage = ResourceStorage(FileSystemResourceAPI, api_kwargs=dict(directory=self.path))
         self._create(storage)
         tmpfile_path = tempfile.mkstemp(suffix=self.__class__.__name__, dir=self.path)[1]
-        self._upload(storage, tmpfile_path, id='blueprint_id')
+        self._upload(storage, tmpfile_path, id='service_template_id')
 
         storage_path = os.path.join(
             self.path,
-            'blueprint',
-            'blueprint_id',
+            'service_template',
+            'service_template_id',
             os.path.basename(tmpfile_path))
         assert os.path.exists(storage_path)
 
@@ -82,11 +82,11 @@ class TestResourceStorage(TestFileSystem):
         self._create(storage)
         tmpfile_path = tempfile.mkstemp(suffix=self.__class__.__name__, dir=self.path)[1]
         tmpfile_name = os.path.basename(tmpfile_path)
-        self._upload(storage, tmpfile_path, 'blueprint_id')
+        self._upload(storage, tmpfile_path, 'service_template_id')
 
         temp_dir = tempfile.mkdtemp(dir=self.path)
-        storage.blueprint.download(
-            entry_id='blueprint_id',
+        storage.service_template.download(
+            entry_id='service_template_id',
             destination=temp_dir,
             path=tmpfile_name)
 
@@ -97,23 +97,23 @@ class TestResourceStorage(TestFileSystem):
         storage = self._create_storage()
         self._create(storage)
         with pytest.raises(exceptions.StorageError):
-            storage.blueprint.download(entry_id='blueprint_id', destination='', path='fake_path')
+            storage.service_template.download(entry_id='service_template_id', destination='',
+                                              path='fake_path')
 
     def test_data_non_existing_file(self):
         storage = self._create_storage()
         self._create(storage)
         with pytest.raises(exceptions.StorageError):
-            storage.blueprint.read(entry_id='blueprint_id', path='fake_path')
+            storage.service_template.read(entry_id='service_template_id', path='fake_path')
 
     def test_data_file(self):
         storage = self._create_storage()
         self._create(storage)
         tmpfile_path = tempfile.mkstemp(suffix=self.__class__.__name__, dir=self.path)[1]
-        self._upload(storage, tmpfile_path, 'blueprint_id')
+        self._upload(storage, tmpfile_path, 'service_template_id')
 
-        assert storage.blueprint.read(
-            entry_id='blueprint_id',
-            path=os.path.basename(tmpfile_path)) == 'fake context'
+        assert storage.service_template.read(entry_id='service_template_id',
+                                             path=os.path.basename(tmpfile_path)) == 'fake context'
 
     def test_upload_dir(self):
         storage = self._create_storage()
@@ -121,12 +121,12 @@ class TestResourceStorage(TestFileSystem):
         tmp_dir = tempfile.mkdtemp(suffix=self.__class__.__name__, dir=self.path)
         second_level_tmp_dir = tempfile.mkdtemp(dir=tmp_dir)
         tmp_filename = tempfile.mkstemp(dir=second_level_tmp_dir)[1]
-        self._upload_dir(storage, tmp_dir, tmp_filename, id='blueprint_id')
+        self._upload_dir(storage, tmp_dir, tmp_filename, id='service_template_id')
 
         destination = os.path.join(
             self.path,
-            'blueprint',
-            'blueprint_id',
+            'service_template',
+            'service_template_id',
             os.path.basename(second_level_tmp_dir),
             os.path.basename(tmp_filename))
 
@@ -138,21 +138,21 @@ class TestResourceStorage(TestFileSystem):
         tmp_dir = tempfile.mkdtemp(suffix=self.__class__.__name__, dir=self.path)
         second_level_tmp_dir = tempfile.mkdtemp(dir=tmp_dir)
         tmp_filename = tempfile.mkstemp(dir=second_level_tmp_dir)[1]
-        self._upload_dir(storage, tmp_dir, tmp_filename, id='blueprint_id')
+        self._upload_dir(storage, tmp_dir, tmp_filename, id='service_template_id')
 
         second_update_file = tempfile.mkstemp(dir=self.path)[1]
         with open(second_update_file, 'w') as f:
             f.write('fake context2')
 
-        storage.blueprint.upload(
-            entry_id='blueprint_id',
+        storage.service_template.upload(
+            entry_id='service_template_id',
             source=second_update_file,
             path=os.path.basename(second_level_tmp_dir))
 
         assert os.path.isfile(os.path.join(
             self.path,
-            'blueprint',
-            'blueprint_id',
+            'service_template',
+            'service_template_id',
             os.path.basename(second_level_tmp_dir),
             os.path.basename(second_update_file)))
 
@@ -162,11 +162,11 @@ class TestResourceStorage(TestFileSystem):
         tmp_dir = tempfile.mkdtemp(suffix=self.__class__.__name__, dir=self.path)
         second_level_tmp_dir = tempfile.mkdtemp(dir=tmp_dir)
         tmp_filename = tempfile.mkstemp(dir=second_level_tmp_dir)[1]
-        self._upload_dir(storage, tmp_dir, tmp_filename, id='blueprint_id')
+        self._upload_dir(storage, tmp_dir, tmp_filename, id='service_template_id')
 
         temp_destination_dir = tempfile.mkdtemp(dir=self.path)
-        storage.blueprint.download(
-            entry_id='blueprint_id',
+        storage.service_template.download(
+            entry_id='service_template_id',
             destination=temp_destination_dir)
 
         destination_file_path = os.path.join(
@@ -187,26 +187,28 @@ class TestResourceStorage(TestFileSystem):
         tempfile.mkstemp(dir=tmp_dir)
         tempfile.mkstemp(dir=tmp_dir)
 
-        storage.blueprint.upload(entry_id='blueprint_id', source=tmp_dir)
+        storage.service_template.upload(entry_id='service_template_id', source=tmp_dir)
 
         with pytest.raises(exceptions.StorageError):
-            storage.blueprint.read(entry_id='blueprint_id', path='')
+            storage.service_template.read(entry_id='service_template_id', path='')
 
     def test_delete_resource(self):
         storage = self._create_storage()
         self._create(storage)
         tmpfile_path = tempfile.mkstemp(suffix=self.__class__.__name__, dir=self.path)[1]
-        self._upload(storage, tmpfile_path, 'blueprint_id')
+        self._upload(storage, tmpfile_path, 'service_template_id')
         tmpfile2_path = tempfile.mkstemp(suffix=self.__class__.__name__, dir=self.path)[1]
-        self._upload(storage, tmpfile2_path, 'blueprint_id')
+        self._upload(storage, tmpfile2_path, 'service_template_id')
 
         # deleting the first resource and expecting an error on read
-        storage.blueprint.delete(entry_id='blueprint_id', path=os.path.basename(tmpfile_path))
+        storage.service_template.delete(entry_id='service_template_id',
+                                        path=os.path.basename(tmpfile_path))
         with pytest.raises(exceptions.StorageError):
-            storage.blueprint.read(entry_id='blueprint_id', path=os.path.basename(tmpfile_path))
+            storage.service_template.read(entry_id='service_template_id',
+                                          path=os.path.basename(tmpfile_path))
         # the second resource should still be available for reading
-        assert storage.blueprint.read(
-            entry_id='blueprint_id',
+        assert storage.service_template.read(
+            entry_id='service_template_id',
             path=os.path.basename(tmpfile2_path)) == 'fake context'
 
     def test_delete_directory(self):
@@ -217,31 +219,31 @@ class TestResourceStorage(TestFileSystem):
         tmp_dir = tempfile.mkdtemp(suffix=self.__class__.__name__, dir=self.path)
         second_level_tmp_dir = tempfile.mkdtemp(dir=tmp_dir)
         tmp_filename = tempfile.mkstemp(dir=second_level_tmp_dir)[1]
-        self._upload_dir(storage, tmp_dir, tmp_filename, id='blueprint_id')
+        self._upload_dir(storage, tmp_dir, tmp_filename, id='service_template_id')
         file_path_in_dir = os.path.join(
             os.path.basename(second_level_tmp_dir),
             os.path.basename(tmp_filename))
 
         # should be able to read the file and download the directory..
-        assert storage.blueprint.read(
-            entry_id='blueprint_id',
+        assert storage.service_template.read(
+            entry_id='service_template_id',
             path=file_path_in_dir) == 'fake context'
-        storage.blueprint.download(
-            entry_id='blueprint_id',
+        storage.service_template.download(
+            entry_id='service_template_id',
             path=os.path.basename(second_level_tmp_dir),
             destination=temp_destination_dir)
 
         # after deletion, the file and directory should both be gone
-        storage.blueprint.delete(
-            entry_id='blueprint_id',
+        storage.service_template.delete(
+            entry_id='service_template_id',
             path=os.path.basename(second_level_tmp_dir))
         with pytest.raises(exceptions.StorageError):
-            assert storage.blueprint.read(
-                entry_id='blueprint_id',
+            assert storage.service_template.read(
+                entry_id='service_template_id',
                 path=file_path_in_dir) == 'fake context'
         with pytest.raises(exceptions.StorageError):
-            storage.blueprint.download(
-                entry_id='blueprint_id',
+            storage.service_template.download(
+                entry_id='service_template_id',
                 path=os.path.basename(second_level_tmp_dir),
                 destination=temp_destination_dir)
 
@@ -253,20 +255,20 @@ class TestResourceStorage(TestFileSystem):
         tmp_dir = tempfile.mkdtemp(suffix=self.__class__.__name__, dir=self.path)
         second_level_tmp_dir = tempfile.mkdtemp(dir=tmp_dir)
         tmp_filename = tempfile.mkstemp(dir=second_level_tmp_dir)[1]
-        self._upload_dir(storage, tmp_dir, tmp_filename, id='blueprint_id')
+        self._upload_dir(storage, tmp_dir, tmp_filename, id='service_template_id')
         file_path_in_dir = os.path.join(
             os.path.basename(second_level_tmp_dir),
             os.path.basename(tmp_filename))
 
         # deleting without specifying a path - delete all resources of this entry
-        storage.blueprint.delete(entry_id='blueprint_id')
+        storage.service_template.delete(entry_id='service_template_id')
         with pytest.raises(exceptions.StorageError):
-            assert storage.blueprint.read(
-                entry_id='blueprint_id',
+            assert storage.service_template.read(
+                entry_id='service_template_id',
                 path=file_path_in_dir) == 'fake context'
         with pytest.raises(exceptions.StorageError):
-            storage.blueprint.download(
-                entry_id='blueprint_id',
+            storage.service_template.download(
+                entry_id='service_template_id',
                 path=os.path.basename(second_level_tmp_dir),
                 destination=temp_destination_dir)
 
@@ -274,4 +276,5 @@ class TestResourceStorage(TestFileSystem):
         storage = self._create_storage()
         self._create(storage)
         # deleting a nonexisting resource - no effect is expected to happen
-        assert storage.blueprint.delete(entry_id='blueprint_id', path='fake-file') is False
+        assert storage.service_template.delete(entry_id='service_template_id',
+                                               path='fake-file') is False

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/09f826a1/tests/storage/test_structures.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_structures.py b/tests/storage/test_structures.py
deleted file mode 100644
index 27e99d7..0000000
--- a/tests/storage/test_structures.py
+++ /dev/null
@@ -1,218 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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 pytest
-
-import sqlalchemy
-
-from aria.storage import (
-    ModelStorage,
-    sql_mapi,
-    exceptions,
-    modeling,
-)
-from aria.storage.modeling import type
-
-from ..storage import release_sqlite_storage, structure, init_inmemory_model_storage
-from . import MockModel
-from ..mock import (
-    models,
-    context as mock_context
-)
-
-
-@pytest.fixture
-def storage():
-    base_storage = ModelStorage(sql_mapi.SQLAlchemyModelAPI,
-                                initiator=init_inmemory_model_storage)
-    base_storage.register(MockModel)
-    yield base_storage
-    release_sqlite_storage(base_storage)
-
-
-@pytest.fixture(scope='module', autouse=True)
-def module_cleanup():
-    modeling.model.aria_declarative_base.metadata.remove(MockModel.__table__)  #pylint: disable=no-member
-
-
-@pytest.fixture
-def context(tmpdir):
-    ctx = mock_context.simple(str(tmpdir))
-    yield ctx
-    release_sqlite_storage(ctx.model)
-
-
-def test_inner_dict_update(storage):
-    inner_dict = {'inner_value': 1}
-
-    mock_model = MockModel(model_dict={'inner_dict': inner_dict, 'value': 0})
-    storage.mock_model.put(mock_model)
-
-    storage_mm = storage.mock_model.get(mock_model.id)
-    assert storage_mm == mock_model
-
-    storage_mm.model_dict['inner_dict']['inner_value'] = 2
-    storage_mm.model_dict['value'] = -1
-    storage.mock_model.update(storage_mm)
-    storage_mm = storage.mock_model.get(storage_mm.id)
-
-    assert storage_mm.model_dict['inner_dict']['inner_value'] == 2
-    assert storage_mm.model_dict['value'] == -1
-
-
-def test_inner_list_update(storage):
-    mock_model = MockModel(model_list=[0, [1]])
-    storage.mock_model.put(mock_model)
-
-    storage_mm = storage.mock_model.get(mock_model.id)
-    assert storage_mm == mock_model
-
-    storage_mm.model_list[1][0] = 'new_inner_value'
-    storage_mm.model_list[0] = 'new_value'
-    storage.mock_model.update(storage_mm)
-    storage_mm = storage.mock_model.get(storage_mm.id)
-
-    assert storage_mm.model_list[1][0] == 'new_inner_value'
-    assert storage_mm.model_list[0] == 'new_value'
-
-
-def test_model_to_dict(context):
-    service_instance = context.service_instance
-    service_instance = service_instance.to_dict()
-
-    expected_keys = [
-        'description',
-        '_metadata',
-        'created_at',
-        'permalink',
-        'policy_triggers',
-        'policy_types',
-        'scaling_groups',
-        'updated_at',
-        'workflows',
-    ]
-
-    for expected_key in expected_keys:
-        assert expected_key in service_instance
-
-
-def test_relationship_model_ordering(context):
-    service_instance = context.model.service_instance.get_by_name(models.DEPLOYMENT_NAME)
-    source_node = context.model.node.get_by_name(models.DEPENDENT_NODE_INSTANCE_NAME)
-    target_node = context.model.node.get_by_name(models.DEPENDENCY_NODE_INSTANCE_NAME)
-    new_node_template = modeling.model.NodeTemplate(
-        name='new_node',
-        type_name='test_node_type',
-        type_hierarchy=[],
-        default_instances=1,
-        min_instances=1,
-        max_instances=1,
-        service_template=service_instance.service_template
-    )
-    new_node = modeling.model.Node(
-        name='new_node_instance',
-        runtime_properties={},
-        service_instance=service_instance,
-        node_template=new_node_template,
-        state='',
-        scaling_groups=[]
-    )
-
-    source_to_new_relationship = modeling.model.Relationship(
-        target_node=new_node,
-        source_node=source_node,
-    )
-
-    new_to_target_relationship = modeling.model.Relationship(
-        source_node=new_node,
-        target_node=target_node,
-    )
-
-    context.model.node_template.put(new_node_template)
-    context.model.node.put(new_node)
-    context.model.relationship.put(source_to_new_relationship)
-    context.model.relationship.put(new_to_target_relationship)
-
-    def flip_and_assert(node, direction):
-        """
-        Reversed the order of relationships and assert effects took place.
-        :param node: the node instance to operatate on
-        :param direction: the type of relationships to flip (inbound/outbount)
-        :return:
-        """
-        assert direction in ('inbound', 'outbound')
-
-        relationships = getattr(node, direction + '_relationships').all()
-        assert len(relationships) == 2
-
-        reversed_relationship_instances = list(reversed(relationships))
-        assert relationships != reversed_relationship_instances
-
-        relationships[:] = reversed_relationship_instances
-        context.model.node.update(node)
-        assert relationships == reversed_relationship_instances
-
-    flip_and_assert(source_node, 'outbound')
-    flip_and_assert(target_node, 'inbound')
-
-
-class StrictClass(modeling.model.aria_declarative_base, structure.ModelMixin):
-    __tablename__ = 'strict_class'
-
-    strict_dict = sqlalchemy.Column(type.StrictDict(basestring, basestring))
-    strict_list = sqlalchemy.Column(type.StrictList(basestring))
-
-
-def test_strict_dict():
-
-    strict_class = StrictClass()
-
-    def assert_strict(sc):
-        with pytest.raises(exceptions.StorageError):
-            sc.strict_dict = {'key': 1}
-
-        with pytest.raises(exceptions.StorageError):
-            sc.strict_dict = {1: 'value'}
-
-        with pytest.raises(exceptions.StorageError):
-            sc.strict_dict = {1: 1}
-
-    assert_strict(strict_class)
-    strict_class.strict_dict = {'key': 'value'}
-    assert strict_class.strict_dict == {'key': 'value'}
-
-    assert_strict(strict_class)
-    with pytest.raises(exceptions.StorageError):
-        strict_class.strict_dict['key'] = 1
-    with pytest.raises(exceptions.StorageError):
-        strict_class.strict_dict[1] = 'value'
-    with pytest.raises(exceptions.StorageError):
-        strict_class.strict_dict[1] = 1
-
-
-def test_strict_list():
-    strict_class = StrictClass()
-
-    def assert_strict(sc):
-        with pytest.raises(exceptions.StorageError):
-            sc.strict_list = [1]
-
-    assert_strict(strict_class)
-    strict_class.strict_list = ['item']
-    assert strict_class.strict_list == ['item']
-
-    assert_strict(strict_class)
-    with pytest.raises(exceptions.StorageError):
-        strict_class.strict_list[0] = 1