Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 53600200C2E for ; Sun, 5 Mar 2017 17:56:01 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 51E5A160B6B; Sun, 5 Mar 2017 16:56:01 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 72FD4160B57 for ; Sun, 5 Mar 2017 17:56:00 +0100 (CET) Received: (qmail 15726 invoked by uid 500); 5 Mar 2017 16:55:59 -0000 Mailing-List: contact dev-help@ariatosca.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ariatosca.incubator.apache.org Delivered-To: mailing list dev@ariatosca.incubator.apache.org Received: (qmail 15715 invoked by uid 99); 5 Mar 2017 16:55:59 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Mar 2017 16:55:59 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 2E9311A08A4 for ; Sun, 5 Mar 2017 16:55:59 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -5.568 X-Spam-Level: X-Spam-Status: No, score=-5.568 tagged_above=-999 required=6.31 tests=[HK_RANDOM_FROM=0.999, KAM_ASCII_DIVIDERS=0.8, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.999, SPF_NEUTRAL=0.652] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id vCToBNOTb8XL for ; Sun, 5 Mar 2017 16:55:57 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 5E20D5F479 for ; Sun, 5 Mar 2017 16:55:56 +0000 (UTC) Received: (qmail 15712 invoked by uid 99); 5 Mar 2017 16:55:55 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 05 Mar 2017 16:55:55 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 75DC6DFA1F; Sun, 5 Mar 2017 16:55:55 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: mxmrlv@apache.org To: dev@ariatosca.incubator.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: incubator-ariatosca git commit: ARIA-116-Missing-type_hierarchy-in-relationship [Forced Update!] Date: Sun, 5 Mar 2017 16:55:55 +0000 (UTC) archived-at: Sun, 05 Mar 2017 16:56:01 -0000 Repository: incubator-ariatosca Updated Branches: refs/heads/ARIA-116-Missing-type_hierarchy-in-relationship e6ea0c0be -> 7ec515022 (forced update) ARIA-116-Missing-type_hierarchy-in-relationship Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/7ec51502 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/7ec51502 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/7ec51502 Branch: refs/heads/ARIA-116-Missing-type_hierarchy-in-relationship Commit: 7ec51502269677fc4975387694fef513b4fda71a Parents: dc18c1d Author: max-orlov Authored: Sun Mar 5 18:31:36 2017 +0200 Committer: max-orlov Committed: Sun Mar 5 18:55:31 2017 +0200 ---------------------------------------------------------------------- aria/storage/modeling/instance_elements.py | 3 +- tests/storage/test_models.py | 81 +++++++++++++++++-------- 2 files changed, 59 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/7ec51502/aria/storage/modeling/instance_elements.py ---------------------------------------------------------------------- diff --git a/aria/storage/modeling/instance_elements.py b/aria/storage/modeling/instance_elements.py index 2b102f1..86e2ea6 100644 --- a/aria/storage/modeling/instance_elements.py +++ b/aria/storage/modeling/instance_elements.py @@ -1179,8 +1179,9 @@ class RelationshipBase(structure.ModelMixin): target_capability_name = Column(Text) type_name = Column(Text) template_name = Column(Text) + type_hierarchy = Column(aria_types.List) - # # region orchestrator required columns + # region orchestrator required columns source_position = Column(Integer) target_position = Column(Integer) http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/7ec51502/tests/storage/test_models.py ---------------------------------------------------------------------- diff --git a/tests/storage/test_models.py b/tests/storage/test_models.py index 1e8d6b5..5735408 100644 --- a/tests/storage/test_models.py +++ b/tests/storage/test_models.py @@ -91,12 +91,20 @@ def _node_template_storage(): def _nodes_storage(): - storage = _nodes_storage() + storage = _node_template_storage() service_instance = storage.service_instance.get_by_name(mock.models.DEPLOYMENT_NAME) - dependent_node_template = storage.node_template.get_by_name(mock.models.DEPENDENT_NODE_NAME) + dependency_node_template = storage.node_template.get_by_name(mock.models.DEPENDENCY_NODE_NAME) dependency_node = mock.models.get_dependency_node_instance(dependency_node_template, service_instance) + + req_template, cap_template = mock.models.get_relationship(dependency_node) + storage.requirement_template.put(req_template) + storage.capability_template.put(cap_template) + + dependent_node_template = mock.models.get_dependent_node(service_instance, + req_template, + cap_template) dependent_node = mock.models.get_dependent_node_instance(dependent_node_template, service_instance) storage.node.put(dependency_node) @@ -670,29 +678,54 @@ class TestNodeInstanceIP(object): return node_instance -@pytest.mark.skip('Should be reworked into relationship') class TestRelationshipInstance(object): - def test_relatiship_instance_model_creation(self, nodes_storage): - relationship = mock.models.get_relationship( - target=nodes_storage.node.get_by_name(mock.models.DEPENDENCY_NODE_NAME) - ) - nodes_storage.relationship.put(relationship) - node_instances = nodes_storage.node - source_node_instance = node_instances.get_by_name(mock.models.DEPENDENT_NODE_INSTANCE_NAME) - target_node_instance = node_instances.get_by_name(mock.models.DEPENDENCY_NODE_INSTANCE_NAME) - - relationship_instance = _test_model( - is_valid=True, - storage=nodes_storage, - model_cls=Relationship, - model_kwargs=dict( - relationship=relationship, - source_node_instance=source_node_instance, - target_node_instance=target_node_instance - )) - assert relationship_instance.relationship == relationship - assert relationship_instance.source_node_instance == source_node_instance - assert relationship_instance.target_node_instance == target_node_instance + @pytest.mark.parametrize( + 'is_valid, source_requirement_index, target_node_id, target_capability_name, type_name, ' + 'template_name, type_hierarchy, source_position, target_position', + [ + (False, m_cls, 'target_node_id', 'target_cap_name', 'type_name', 'template_name', [], 0, + 0), + (False, 0, m_cls, 'target_cap_name', 'type_name', 'template_name', [], 0, 0), + (False, 0, 'target_node_id', m_cls, 'type_name', 'template_name', [], 0, 0), + (False, 0, 'target_node_id', 'target_cap_name', m_cls, 'template_name', [], 0, 0), + (False, 0, 'target_node_id', 'target_cap_name', 'type_name', m_cls, [], 0, 0), + (False, 0, 'target_node_id', 'target_cap_name', 'type_name', 'template_name', m_cls, 0, + 0), + (False, 0, 'target_node_id', 'target_cap_name', 'type_name', 'template_name', [], m_cls, + 0), + (False, 0, 'target_node_id', 'target_cap_name', 'type_name', 'template_name', [], 0, + m_cls), + + (True, 0, 'target_node_id', 'target_cap_name', 'type_name', 'template_name', [], 0, 0), + (True, None, 'target_node_id', 'target_cap_name', 'type_name', 'template_name', [], 0, + 0), + (True, 0, None, 'target_cap_name', 'type_name', 'template_name', [], 0, 0), + (True, 0, 'target_node_id', None, 'type_name', 'template_name', [], 0, 0), + (True, 0, 'target_node_id', 'target_cap_name', None, 'template_name', [], 0, 0), + (True, 0, 'target_node_id', 'target_cap_name', 'type_name', None, [], 0, 0), + (True, 0, 'target_node_id', 'target_cap_name', 'type_name', 'template_name', [], None, + 0), + (True, 0, 'target_node_id', 'target_cap_name', 'type_name', 'template_name', [], 0, + None), + + ] + ) + def test_relationship(self, nodes_storage, is_valid, source_requirement_index, target_node_id, + target_capability_name, type_name, template_name, type_hierarchy, + source_position, target_position): + _test_model(is_valid=is_valid, + storage=nodes_storage, + model_cls=Relationship, + model_kwargs=dict( + source_requirement_index=source_requirement_index, + target_node_id=target_node_id, + target_capability_name=target_capability_name, + type_name=type_name, + template_name=template_name, + type_hierarchy=type_hierarchy, + source_position=source_position, + target_position=target_position + )) class TestPlugin(object):