try:
module = importlib.import_module(run_dict['module'])
cls = getattr(module, run_dict['class'])
- test_case = cls()
+ test_case = cls(case_name=test_name)
try:
kwargs = run_dict['args']
class Feature(base.TestCase):
- def __init__(self, project='functest', case='', repo='', cmd=''):
- super(Feature, self).__init__()
+ def __init__(self, project='functest', case_name='', repo='', cmd=''):
+ super(Feature, self).__init__(case_name=case_name)
self.project_name = project
- self.case_name = case
self.cmd = cmd
self.repo = CONST.__getattribute__(repo)
self.result_file = self.get_result_file()
logger = ft_logger.Logger(__name__).getLogger()
- def __init__(self):
+ def __init__(self, case_name=""):
self.details = {}
self.project_name = "functest"
- self.case_name = ""
+ self.case_name = case_name
self.criteria = ""
self.start_time = ""
self.stop_time = ""
It could be overriden if the common implementation is not
suitable. The following attributes must be set before pushing
the results to DB:
+ * project_name,
* case_name,
* criteria,
* start_time,
logger = ft_logger.Logger(__name__).getLogger()
- def __init__(self, project='functest', case='', repo='', cmd=''):
- super(VnfOnBoardingBase, self).__init__()
+ def __init__(self, project='functest', case_name='', repo='', cmd=''):
+ super(VnfOnBoardingBase, self).__init__(case_name=case_name)
self.repo = repo
self.project_name = project
- self.case_name = case
self.cmd = cmd
self.details = {}
self.result_dir = CONST.dir_results
def __init__(self):
super(BarometerCollectd, self).__init__(project='barometer',
- case='barometercollectd',
+ case_name='barometercollectd',
repo='dir_repo_barometer')
def execute(self):
class Copper(base.Feature):
def __init__(self):
super(Copper, self).__init__(project='copper',
- case='copper-notification',
+ case_name='copper-notification',
repo='dir_repo_copper')
self.cmd = 'cd %s/tests && bash run.sh && cd -' % self.repo
class Doctor(base.Feature):
def __init__(self):
super(Doctor, self).__init__(project='doctor',
- case='doctor-notification',
+ case_name='doctor-notification',
repo='dir_repo_doctor')
self.cmd = 'cd %s/tests && ./run.sh' % self.repo
class Domino(base.Feature):
def __init__(self):
super(Domino, self).__init__(project='domino',
- case='domino-multinode',
+ case_name='domino-multinode',
repo='dir_repo_domino')
self.cmd = 'cd %s && ./tests/run_multinode.sh' % self.repo
def __init__(self):
super(GluonVping, self).__init__(project='netready',
- case='gluon_vping',
+ case_name='gluon_vping',
repo='dir_repo_netready')
dir_netready_functest = '{}/test/functest'.format(self.repo)
self.cmd = ('cd %s && python ./gluon-test-suite.py' %
def __init__(self):
super(OpenDaylightSFC, self).__init__(project='sfc',
- case='functest-odl-sfc',
+ case_name='functest-odl-sfc',
repo='dir_repo_sfc')
dir_sfc_functest = '{}/sfc/tests/functest'.format(self.repo)
self.cmd = 'cd %s && python ./run_tests.py' % dir_sfc_functest
class Promise(base.Feature):
def __init__(self):
super(Promise, self).__init__(project='promise',
- case='promise',
+ case_name='promise',
repo='dir_repo_promise')
dir_promise_functest = '{}/promise/test/functest'.format(self.repo)
self.cmd = 'cd %s && python ./run_tests.py' % dir_promise_functest
def __init__(self):
super(SdnVpnTests, self).__init__(project='sdnvpn',
- case='bgpvpn',
+ case_name='bgpvpn',
repo='dir_repo_sdnvpn')
dir_sfc_functest = '{}/sdnvpn/test/functest'.format(self.repo)
self.cmd = 'cd %s && python ./run_tests.py' % dir_sfc_functest
class SecurityScan(base.Feature):
def __init__(self):
super(SecurityScan, self).__init__(project='securityscanning',
- case='security_scan',
+ case_name='security_scan',
repo='dir_repo_securityscan')
self.cmd = ('. {0}/stackrc && '
'cd {1} && '
RALLY_PRIVATE_SUBNET_CIDR = CONST.rally_subnet_cidr
RALLY_ROUTER_NAME = CONST.rally_router_name
- def __init__(self):
- super(RallyBase, self).__init__()
+ def __init__(self, case_name=''):
+ super(RallyBase, self).__init__(case_name)
self.mode = ''
self.summary = []
self.scenario_dir = ''
class RefstackClient(testcase.TestCase):
- def __init__(self):
- super(RefstackClient, self).__init__()
- self.case_name = "refstack_defcore"
+ def __init__(self, case_name="refstack_defcore"):
+ super(RefstackClient, self).__init__(case_name)
self.FUNCTEST_TEST = CONST.dir_functest_test
self.CONF_PATH = CONST.refstack_tempest_conf_path
self.DEFCORE_LIST = CONST.refstack_defcore_list
class RefstackClientParser(testcase.TestCase):
- def __init__(self):
- super(RefstackClientParser, self).__init__()
+ def __init__(self, case_name=''):
+ super(RefstackClientParser, self).__init__(case_name)
self.FUNCTEST_TEST = CONST.dir_functest_test
self.CONF_PATH = CONST.refstack_tempest_conf_path
self.DEFCORE_LIST = CONST.refstack_defcore_list
class TempestCommon(testcase.TestCase):
- def __init__(self):
- super(TempestCommon, self).__init__()
+ def __init__(self, case_name=''):
+ super(TempestCommon, self).__init__(case_name)
self.MODE = ""
self.OPTION = ""
self.VERIFIER_ID = conf_utils.get_verifier_id()
class TempestSmokeSerial(TempestCommon):
- def __init__(self):
- TempestCommon.__init__(self)
- self.case_name = "tempest_smoke_serial"
+ def __init__(self, case_name='tempest_smoke_serial'):
+ TempestCommon.__init__(self, case_name)
self.MODE = "smoke"
self.OPTION = "--concurrency 1"
class TempestSmokeParallel(TempestCommon):
- def __init__(self):
- TempestCommon.__init__(self)
- self.case_name = "tempest_smoke_parallel"
+ def __init__(self, case_name='tempest_smoke_parallel'):
+ TempestCommon.__init__(self, case_name)
self.MODE = "smoke"
self.OPTION = ""
class TempestFullParallel(TempestCommon):
- def __init__(self):
- TempestCommon.__init__(self)
- self.case_name = "tempest_full_parallel"
+ def __init__(self, case_name="tempest_full_parallel"):
+ TempestCommon.__init__(self, case_name)
self.MODE = "full"
class TempestMultisite(TempestCommon):
- def __init__(self):
- TempestCommon.__init__(self)
- self.case_name = "multisite"
+ def __init__(self, case_name="multisite"):
+ TempestCommon.__init__(self, case_name)
self.MODE = "feature_multisite"
self.OPTION = "--concurrency 1"
conf_utils.install_verifier_ext(CONST.dir_repo_kingbird)
class TempestCustom(TempestCommon):
- def __init__(self):
- TempestCommon.__init__(self)
- self.case_name = "tempest_custom"
+ def __init__(self, case_name="tempest_custom"):
+ TempestCommon.__init__(self, case_name)
self.MODE = "custom"
self.OPTION = "--concurrency 1"
class TempestDefcore(TempestCommon):
- def __init__(self):
- TempestCommon.__init__(self)
- self.case_name = "tempest_defcore"
+ def __init__(self, case_name="tempest_defcore"):
+ TempestCommon.__init__(self, case_name)
self.MODE = "defcore"
self.OPTION = "--concurrency 1"
class VPingBase(testcase.TestCase):
- def __init__(self):
- super(VPingBase, self).__init__()
+ def __init__(self, case_name=''):
+ super(VPingBase, self).__init__(case_name)
self.logger = None
self.functest_repo = CONST.dir_repo_functest
self.repo = CONST.dir_vping
class VPingSSH(vping_base.VPingBase):
- def __init__(self):
- super(VPingSSH, self).__init__()
- self.case_name = 'vping_ssh'
+ def __init__(self, case_name='vping_ssh'):
+ super(VPingSSH, self).__init__(case_name)
self.logger = ft_logger.Logger(self.case_name).getLogger()
def do_vping(self, vm, test_ip):
class VPingUserdata(vping_base.VPingBase):
- def __init__(self):
- super(VPingUserdata, self).__init__()
- self.case_name = 'vping_userdata'
+ def __init__(self, case_name='vping_userdata'):
+ super(VPingUserdata, self).__init__(case_name)
self.logger = ft_logger.Logger(self.case_name).getLogger()
def boot_vm_preparation(self, config, vmname, test_ip):
res_dir = '/home/opnfv/functest/results/odl/'
logger = ft_logger.Logger("opendaylight").getLogger()
- def __init__(self):
- testcase.TestCase.__init__(self)
- self.case_name = "odl"
-
@classmethod
def set_robotframework_vars(cls, odlusername="admin", odlpassword="admin"):
"""Set credentials in csit/variables/Variables.py.
onos_sfc_path = os.path.join(CONST.dir_repo_functest,
CONST.dir_onos_sfc)
- def __init__(self):
- super(OnosBase, self).__init__()
-
def run(self):
self.start_time = time.time()
try:
class Onos(OnosBase):
- def __init__(self):
- super(Onos, self).__init__()
- self.case_name = 'onos'
+ def __init__(self, case_name='onos'):
+ super(Onos, self).__init__(case_name)
self.log_path = os.path.join(self.onos_repo_path, 'TestON/logs')
def set_onos_ip(self):
logger = ft_logger.Logger("VNF AAA").getLogger()
def __init__(self):
- super(AaaVnf, self).__init__(case="aaa")
+ super(AaaVnf, self).__init__(case_name="aaa")
def deploy_orchestrator(self):
self.logger.info("No VNFM needed to deploy a free radius here")
kwargs = {}
return self.main(**kwargs)
+
if __name__ == '__main__':
parser = argparse.ArgumentParser()
args = vars(parser.parse_args())
class CloudifyIms(clearwater_ims_base.ClearwaterOnBoardingBase):
- def __init__(self, project='functest', case='cloudify_ims',
+ def __init__(self, project='functest', case_name='cloudify_ims',
repo='', cmd=''):
- super(CloudifyIms, self).__init__(project, case, repo, cmd)
+ super(CloudifyIms, self).__init__(project, case_name, repo, cmd)
self.logger = ft_logger.Logger(__name__).getLogger()
# Retrieve the configuration
class OperaIms(clearwater_ims_base.ClearwaterOnBoardingBase):
- def __init__(self, project='functest', case='opera_ims',
+ def __init__(self, project='functest', case_name='opera_ims',
repo=CONST.dir_repo_opera, cmd=''):
- super(OperaIms, self).__init__(project, case, repo, cmd)
+ super(OperaIms, self).__init__(project, case_name, repo, cmd)
self.logger = ft_logger.Logger(__name__).getLogger()
self.ellis_file = os.path.join(self.result_dir, 'ellis.info')
self.live_test_file = os.path.join(self.result_dir,
class ImsVnf(vnf_base.VnfOnBoardingBase):
- def __init__(self, project='functest', case='orchestra_ims',
+ def __init__(self, project='functest', case_name='orchestra_ims',
repo='', cmd=''):
- super(ImsVnf, self).__init__(project, case, repo, cmd)
+ super(ImsVnf, self).__init__(project, case_name, repo, cmd)
self.ob_password = "openbaton"
self.ob_username = "admin"
self.ob_https = False
logging.disable(logging.CRITICAL)
+ _case_name = "base"
+
def setUp(self):
- self.test = testcase.TestCase()
+ self.test = testcase.TestCase(case_name=self._case_name)
self.test.project = "functest"
- self.test.case_name = "base"
self.test.start_time = "1"
self.test.stop_time = "2"
self.test.criteria = "PASS"
testcase.TestCase.EX_PUSH_TO_DB_ERROR)
mock_function.assert_not_called()
+ def test_missing_project_name(self):
+ self.test.project_name = None
+ self._test_missing_attribute()
+
def test_missing_case_name(self):
self.test.case_name = None
self._test_missing_attribute()
self.assertEqual(self.test.push_to_db(),
testcase.TestCase.EX_OK)
mock_function.assert_called_once_with(
- self.test.project, self.test.case_name, self.test.start_time,
+ self.test.project, self._case_name, self.test.start_time,
self.test.stop_time, self.test.criteria, self.test.details)
@mock.patch('functest.utils.functest_utils.push_results_to_db',
self.assertEqual(self.test.push_to_db(),
testcase.TestCase.EX_PUSH_TO_DB_ERROR)
mock_function.assert_called_once_with(
- self.test.project, self.test.case_name, self.test.start_time,
+ self.test.project, self._case_name, self.test.start_time,
self.test.stop_time, self.test.criteria, self.test.details)
@mock.patch('functest.utils.functest_utils.push_results_to_db',
self.assertEqual(self.test.push_to_db(),
testcase.TestCase.EX_OK)
mock_function.assert_called_once_with(
- self.test.project, self.test.case_name, self.test.start_time,
+ self.test.project, self._case_name, self.test.start_time,
self.test.stop_time, self.test.criteria, self.test.details)
def test_check_criteria_missing(self):
def setUp(self):
self.test = vnf_base.VnfOnBoardingBase(project='functest',
- case='aaa')
+ case_name='aaa')
self.test.project = "functest"
- self.test.case_name = "aaa"
self.test.start_time = "1"
self.test.stop_time = "5"
self.test.criteria = ""