Better exception handling
[testsuite/pythonsdk-tests.git] / src / onaptests / scenario / basic_network.py
1 #!/usr/bin/env python
2 """Basic VM test case."""
3 import logging
4 import time
5
6 from xtesting.core import testcase
7 from onapsdk.configuration import settings
8
9 import onaptests.utils.exceptions as onap_test_exceptions
10 from onaptests.steps.instantiate.vl_ala_carte import YamlTemplateVlAlaCarteInstantiateStep
11
12 class BasicNetwork(testcase.TestCase):
13     """Onboard then instantiate a simple Network with ONAP."""
14
15     __logger = logging.getLogger(__name__)
16
17     def __init__(self, **kwargs):
18         """Init Basic Network use case."""
19         # import basic_network_nomulticloud_settings needed
20         if "case_name" not in kwargs:
21             kwargs["case_name"] = 'basic_network'
22         super(BasicNetwork, self).__init__(**kwargs)
23         self.__logger.debug("BasicNetwork init started")
24         self.test = YamlTemplateVlAlaCarteInstantiateStep(
25                 cleanup=settings.CLEANUP_FLAG)
26         self.start_time = None
27         self.stop_time = None
28         self.result = 0
29
30     def run(self):
31         """Run onap_tests with basic network."""
32         self.start_time = time.time()
33         self.__logger.debug("start time")
34         try:
35             self.test.execute()
36             self.__logger.info("Service basic_network successfully created")
37             # The cleanup is part of the test, not only a teardown action
38             if settings.CLEANUP_FLAG:
39                 self.__logger.info("Service basic_network cleanup called")
40                 time.sleep(settings.CLEANUP_ACTIVITY_TIMER)
41                 try:
42                     self.test.cleanup()
43                 except ValueError as error:
44                     self.__logger.info("service deleted as expected {0}".format(error))
45                 self.result = 100
46             else:
47                 self.__logger.info("No cleanup requested. Test completed.")
48                 self.result = 100
49         except onap_test_exceptions.OnapTestException as exc:
50             self.result = 0
51             self.__logger.error(exc.error_message)
52         finally:
53             self.stop_time = time.time()
54
55     def clean(self):
56         """Clean Additional resources if needed."""
57         self.__logger.info("Generate Test report")
58         self.test.reports_collection.generate_report()