summaryrefslogtreecommitdiffstats
path: root/TestUnits/cli/volume/replace_brick/testunit.py
blob: 222140ca8ec1bd0fb7f6acb27e17916b0dc6224f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
"""testunit.py is the main module for the testunit.

This module "main" function is called from atfexecute to execute the testunit.
"""
from atfglobals import GlobalObj
import os
import parser
import atfutils
import managerutils
import testcases

reload(testcases)
filename = os.path.abspath(__file__)
dir_path = os.path.dirname(filename)

def initialize():
    """
    """
    logger = GlobalObj.getLoggerObj()
    return_status = 1
    testenv_file = GlobalObj.testenv_file
    testenv_abspath =  os.path.join(dir_path, testenv_file)

    if not (os.path.isfile(testenv_abspath)):
        logger.error("%s not found in %s" % (testenv_file, dir_path))

    if parser.parse_testenv_configfile(testenv_abspath):
        return return_status
    if managerutils.ssh_connect_allhosts():
        return return_status

    return 0

def setup():
    """
    """
    return_status = 1
    if atfutils.set_active_volume("volume1"):
        return return_status
    return 0

def execute():
    """
    """
    logger = GlobalObj.getLoggerObj()
    return_status = 1
    testcaseslist_file = GlobalObj.testcaseslist_file
    testcaseslist_abspath = os.path.join(dir_path, testcaseslist_file)

    if not (os.path.isfile(testcaseslist_abspath)):
        logger.error("%s not found in %s" % (testcaseslist_file, dir_path))
        return return_status

    else:
        testcaseslist = []
        testcaseslist = parser.parse_testcaseslist_file(testcaseslist_abspath)
        if not testcaseslist:
            logger.error("Skipping TestUnit %s. No testcases to execute"
                         % dir_path)
            return 0
        else:
            passedtestcases = 0
            failedtestcases = 0
            selectedtestcases = len(testcaseslist)

            logger.info("Starting TestUnit: '%s' test execution" % dir_path)
            for testcase in testcaseslist:
                function_obj = getattr(testcases, testcase)
                if function_obj:
                    logger.debug("Starting Test: ' %s '" % testcase)
                    return_status = function_obj()
                    if return_status:
                        logger.debug("TestCase '%s' Failed" % testcase)
                        failedtestcases +=1
                    else:
                        logger.debug("TestCase '%s' Passed" % testcase)
                        passedtestcases +=1
                    logger.debug("Ending Test: '%s'" % testcase)
                else:
                    logger.info("TestCase %s not defined in 'testcases' module"
                                % testcase)
                    continue


            logger.info("Selected %d : Passed %d, Failed %d"
                        % (selectedtestcases,
                           passedtestcases,
                           failedtestcases))

            logger.info("Ending TestUnit: '%s' test execution" % dir_path)

    return 0

def cleanup():
    """
    """
    pass

def main():
    """
    """
    return_status = 1
    if execute():
        return return_status
    if cleanup():
        return return_status

    return 0