summaryrefslogtreecommitdiff
path: root/test-cli/test/helpers/testsrv_db.py
blob: b7b75b16f707aac5ab119b95e6534845af4168c9 (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
from test.helpers.psqldb import PgSQLConnection


def find_between(s, first, last):
    try:
        start = s.index(first) + len(first)
        end = s.index(last, start)
        return s[start:end]
    except ValueError:
        return ""


class TestSrv_Database(object):
    ''' TestSrv Database Helper '''

    __sqlObject = None
    __xml_setup = None

    def __init__(self):
        pass

    def open(self, xmlObj):
        self.__xml_setup = xmlObj
        self.__sqlObject = PgSQLConnection()
        return self.__sqlObject.db_connect(self.__xml_setup.getdbConnectionStr())

    def create_board(self, processor_id, model_id, variant, station, bmac=None):
        '''create a new board'''
        if bmac is None:
            sql = "SELECT isee.f_create_board('{}', '{}', '{}', NULL, '{}');".format(processor_id, model_id, variant,
                                                                                     station)
        else:
            sql = "SELECT isee.f_create_board('{}', '{}', '{}', '{}', '{}');".format(processor_id, model_id, variant,
                                                                                     bmac, station)
        # print('>>>' + sql)
        try:
            res = self.__sqlObject.db_execute_query(sql)
            # print(res)
            return res[0][0]
        except Exception as err:
            r = find_between(str(err), '#', '#')
            # print(r)
        return None

    def get_tests_list(self, board_uuid):
        '''get the board test list'''
        sql = "SELECT * FROM isee.f_get_tests_list('{}')".format(board_uuid)
        # print('>>>' + sql)
        try:
            res = self.__sqlObject.db_execute_query(sql)
            # print(res)
            return res;
        except Exception as err:
            r = find_between(str(err), '#', '#')
            # print(r)
        return None

    def get_test_params_list(self, testid):
        '''get the board test list'''
        sql = "SELECT * FROM isee.f_get_test_params_list('{}')".format(testid)
        # print('>>>' + sql)
        try:
            res = self.__sqlObject.db_execute_query(sql)
            # print(res)
            return res
        except Exception as err:
            r = find_between(str(err), '#', '#')
            # print(r)
        return None

    def open_test(self, board_uuid):
        '''get the board test list'''
        sql = "SELECT * FROM isee.f_open_test('{}')".format(board_uuid)
        # print('>>>' + sql)
        try:
            res = self.__sqlObject.db_execute_query(sql)
            # print(res)
            return res
        except Exception as err:
            r = find_between(str(err), '#', '#')
            # print(r)
        return None

    def run_test(self, testid_ctl, testid):
        '''get the board test list'''
        sql = "SELECT * FROM isee.f_run_test('{}','{}')".format(testid_ctl, testid)
        # print('>>>' + sql)
        try:
            res = self.__sqlObject.db_execute_query(sql)
            # print(res)
            return res
        except Exception as err:
            r = find_between(str(err), '#', '#')
            # print(r)
        return None

    def finish_test(self, testid_ctl, testid, newstatus):
        '''get the board test list'''
        sql = "SELECT * FROM isee.f_finish_test('{}','{}','{}')".format(testid_ctl, testid, newstatus)
        # print('>>>' + sql)
        try:
            res = self.__sqlObject.db_execute_query(sql)
            # print(res)
            return res
        except Exception as err:
            r = find_between(str(err), '#', '#')
            # print(r)
        return None