Improve xtesting integration
[testsuite/pythonsdk-tests.git] / src / onaptests / scenario / clearwater_ims.py
1 #!/usr/bin/env python
2 """vIMS VM test case."""
3 import logging
4 import time
5
6 from xtesting.core import testcase
7 from onapsdk.configuration import settings
8 from onaptests.steps.instantiate.vf_module_ala_carte import YamlTemplateVfModuleAlaCarteInstantiateStep
9
10 class ClearwaterIms(testcase.TestCase):
11     """Onboard then instantiate a clearwater vIMS with ONAP."""
12
13     __logger = logging.getLogger(__name__)
14
15     def __init__(self, **kwargs):
16         """Init Clearwater IMS."""
17         # import clearwater_ims_nomulticloud_settings needed
18         if "case_name" not in kwargs:
19             kwargs["case_name"] = 'clearwater_ims'
20         super(ClearwaterIms, self).__init__(**kwargs)
21         self.__logger.debug("vIMS init started")
22         self.test = YamlTemplateVfModuleAlaCarteInstantiateStep(
23                 cleanup=settings.CLEANUP_FLAG)
24         self.start_time = None
25         self.stop_time = None
26         self.result = 0
27
28     def run(self):
29         """Run vIMS test."""
30         self.start_time = time.time()
31         self.__logger.debug("start time")
32         try:
33             self.test.execute()
34             self.__logger.info("VNF clearwater IMS successfully created")
35             # The cleanup is part of the test, not only a teardown action
36             if settings.CLEANUP_FLAG:
37                 self.__logger.info("VNF clearwater IMS cleanup called")
38                 time.sleep(settings.CLEANUP_ACTIVITY_TIMER)
39                 self.test.cleanup()
40                 self.result = 100
41             else:
42                 self.__logger.info("No cleanup requested. Test completed.")
43                 self.result = 100
44             self.stop_time = time.time()
45         except:
46             self.__logger.error("Clearwater IMS test case failed.")
47             self.result = 0
48             self.stop_time = time.time()
49
50     def clean(self):
51         """Clean Additional resources if needed."""
52         try:
53             self.test.reports_collection.generate_report()
54         except:
55             self.__logger.error("Impossible to generate reporting")