You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by av...@apache.org on 2017/04/15 13:07:51 UTC

[05/16] incubator-ariatosca git commit: Add tests for services list

Add tests for services list


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/5968eb5d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/5968eb5d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/5968eb5d

Branch: refs/heads/ARIA-48-aria-cli
Commit: 5968eb5d13c63fd5baaa19de6fe5d59cb40378d9
Parents: 3560ea2
Author: Avia Efrat <av...@gigaspaces.com>
Authored: Wed Apr 12 15:58:32 2017 +0300
Committer: Avia Efrat <av...@gigaspaces.com>
Committed: Sat Apr 15 15:51:54 2017 +0300

----------------------------------------------------------------------
 aria/cli/commands/services.py       |  4 +--
 tests/cli/base_test.py              |  2 +-
 tests/cli/test_services.py          | 57 ++++++++++++++++++++++++++++++++
 tests/cli/utils.py                  | 15 ++++++++-
 tests/storage/test_model_storage.py |  2 +-
 5 files changed, 75 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5968eb5d/aria/cli/commands/services.py
----------------------------------------------------------------------
diff --git a/aria/cli/commands/services.py b/aria/cli/commands/services.py
index 1059e10..b785006 100644
--- a/aria/cli/commands/services.py
+++ b/aria/cli/commands/services.py
@@ -58,10 +58,10 @@ def list(service_template_name,
     if service_template_name:
         logger.info('Listing services for service template {0}...'.format(
             service_template_name))
-        service_template = model_storage.service_template.get(service_template_name)
+        service_template = model_storage.service_template.get_by_name(service_template_name)
         filters = dict(service_template=service_template)
     else:
-        logger.info('Listing all service...')
+        logger.info('Listing all services...')
         filters = {}
 
     services_list = [d.to_dict() for d in model_storage.service.list(

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5968eb5d/tests/cli/base_test.py
----------------------------------------------------------------------
diff --git a/tests/cli/base_test.py b/tests/cli/base_test.py
index 430781a..a1a1acd 100644
--- a/tests/cli/base_test.py
+++ b/tests/cli/base_test.py
@@ -6,7 +6,7 @@ from utils import setup_logger, MockStorage
 import pytest
 
 
-@pytest.fixture()
+@pytest.fixture
 def mock_storage():
     return MockStorage()
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5968eb5d/tests/cli/test_services.py
----------------------------------------------------------------------
diff --git a/tests/cli/test_services.py b/tests/cli/test_services.py
new file mode 100644
index 0000000..4f7b98b
--- /dev/null
+++ b/tests/cli/test_services.py
@@ -0,0 +1,57 @@
+import pytest
+from mock import ANY
+
+from tests.cli.base_test import TestCliBase, mock_storage
+from aria.cli.env import Environment
+
+
+class TestServicesList(TestCliBase):
+
+    @pytest.mark.parametrize('sort_by, order, sort_by_in_output, order_in_output', [
+        ('', '', 'created_at', 'asc'),
+        ('', ' --descending', 'created_at', 'desc'),
+        (' --sort-by name', '', 'name', 'asc'),
+        (' --sort-by name', ' --descending', 'name', 'desc')
+    ])
+    def test_services_list_specified_service_template(self, monkeypatch, mock_storage, sort_by,
+                                                      order, sort_by_in_output, order_in_output):
+
+        monkeypatch.setattr(Environment, 'model_storage', mock_storage)
+        self.invoke('services list -t test_st{sort_by}{order}'.format(sort_by=sort_by,
+                                                                      order=order))
+        assert 'Listing services for service template test_st...' in self.logger_output_string
+        assert 'Listing all services...' not in self.logger_output_string
+
+        services_list = mock_storage.service.list
+        services_list.assert_called_once_with(sort={sort_by_in_output: order_in_output},
+                                              filters={'service_template': ANY})
+        assert 'Services:' in self.logger_output_string
+        assert 'test_st' in self.logger_output_string
+        assert 'test_s' in self.logger_output_string
+
+    @pytest.mark.parametrize('sort_by, order, sort_by_in_output, order_in_output', [
+        ('', '', 'created_at', 'asc'),
+        ('', ' --descending', 'created_at', 'desc'),
+        (' --sort-by name', '', 'name', 'asc'),
+        (' --sort-by name', ' --descending', 'name', 'desc')
+    ])
+    def test_services_list_no_specified_service_template(self, monkeypatch, mock_storage, sort_by,
+                                                         order, sort_by_in_output, order_in_output):
+
+        monkeypatch.setattr(Environment, 'model_storage', mock_storage)
+        self.invoke('services list{sort_by}{order}'.format(sort_by=sort_by,
+                                                           order=order))
+        assert 'Listing all services...' in self.logger_output_string
+        assert 'Listing services for service template' not in self.logger_output_string
+
+        services_list = mock_storage.service.list
+        services_list.assert_called_once_with(sort={sort_by_in_output: order_in_output}, filters={})
+        assert 'Services:' in self.logger_output_string
+        assert 'test_st' in self.logger_output_string
+        assert 'test_s' in self.logger_output_string
+
+
+
+
+
+

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5968eb5d/tests/cli/utils.py
----------------------------------------------------------------------
diff --git a/tests/cli/utils.py b/tests/cli/utils.py
index c046ed3..97f6a67 100644
--- a/tests/cli/utils.py
+++ b/tests/cli/utils.py
@@ -1,5 +1,7 @@
 import logging
 
+from mock import MagicMock
+
 from tests.mock import models
 
 
@@ -46,6 +48,7 @@ class MockStorage(object):
 
     def __init__(self):
         self.service_template = MockServiceTemplateStorage
+        self.service = MockServiceStorage()
 
 
 class MockServiceTemplateStorage(object):
@@ -80,4 +83,14 @@ class MockServiceTemplateStorage(object):
             st.inputs = {'input1': input}
         if name == 'without_inputs':
             st.inputs = {}
-        return st
\ No newline at end of file
+        if name == 'one_service':
+            service = models.create_service(st, 'test_s')
+            st.services = [service]
+        return st
+
+
+class MockServiceStorage(object):
+
+    def __init__(self):
+        st = models.create_service_template('test_st')
+        self.list = MagicMock(return_value=[models.create_service(st, 'test_s')])

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5968eb5d/tests/storage/test_model_storage.py
----------------------------------------------------------------------
diff --git a/tests/storage/test_model_storage.py b/tests/storage/test_model_storage.py
index 4dabfaf..8dd781b 100644
--- a/tests/storage/test_model_storage.py
+++ b/tests/storage/test_model_storage.py
@@ -167,7 +167,7 @@ class MockModel(modeling.models.aria_declarative_base, modeling.mixins.ModelMixi
 
 class TestFilterOperands(object):
 
-    @pytest.fixture()
+    @pytest.fixture
     def storage(self):
         model_storage = application_model_storage(
             sql_mapi.SQLAlchemyModelAPI, initiator=tests_storage.init_inmemory_model_storage)