[CPS] Create basic_cps test
[testsuite/pythonsdk-tests.git] / src / onaptests / scenario / basic_cps.py
1 #!/usr/bin/env python
2 """Basic CPS test case."""
3 import logging
4 import time
5 from xtesting.core import testcase
6 from onapsdk.configuration import settings
7 from onapsdk.exceptions import SDKException
8 from onaptests.steps.onboard.service import YamlTemplateServiceOnboardStep
9 from onaptests.utils.exceptions import OnapTestException
10
11 class BasicCps(testcase.TestCase):
12     """Create CPS resources:
13             - dataspace
14             - schemaset
15             - anchor
16         And create a node. Use bookstore YANG model (available on CPS repository
17         https://github.com/onap/cps/blob/master/cps-service/src/test/resources/bookstore.yang).
18         At the end delete what's available to be deleted.
19
20     """
21
22     __logger = logging.getLogger(__name__)
23
24     def __init__(self, **kwargs):
25         """Init Basic CPS."""
26         if "case_name" not in kwargs:
27             kwargs["case_name"] = 'basic_cps'
28         super().__init__(**kwargs)
29         self.__logger.debug("BasicCps init started")
30         # self.test = YamlTemplateServiceOnboardStep(  # To be created
31         #     cleanup=settings.CLEANUP_FLAG)
32         self.start_time = None
33         self.stop_time = None
34         self.result = 0
35
36     def run(self):
37         """Run basic_cps and create some CPS resources"""
38         self.start_time = time.time()
39         self.__logger.debug("start time")
40         try:
41             self.test.execute()
42             self.test.cleanup()
43             self.__logger.info("Basic CPS test passed")
44             self.result = 100
45         except OnapTestException as exc:
46             self.result = 0
47             self.__logger.exception(exc.error_message)
48         except SDKException:
49             self.result = 0
50             self.__logger.exception("SDK Exception")
51         finally:
52             self.stop_time = time.time()
53
54     def clean(self):
55         """Clean Additional resources if needed."""
56         self.__logger.info("Generate Test report")
57         self.test.reports_collection.generate_report()