循环实例方法与列表元素

时间:2018-05-11 13:39:16

标签: python python-2.7 rest

我正在尝试编写一个程序(API测试)来循环遍历类中的实例方法。其中一种方法" get_one_sale_license"有一个变量" self.sale_sgid_in_test"我需要为列表中的每个元素分配此变量" sale_list_final" 。变量用于实例方法以及main函数。我在类之外放了一个for循环,它与输出一起正常工作(这是使用框架从应用程序中修改的单个文件的一部分)。   但是,我想删除包装类的循环并以更加pythonic的方式尝试。

import json
from datetime import *
from N import NSession
from N import NArgParser
from i_data_provider import iDataProvider

sale_list = open("sales.txt").readlines()
sale_list_final = [s.rstrip() for s in sale_list]
tests_list = open("tests.txt").readlines()
tests_list_final = [t.rstrip() for t in tests_list]

cnt=0
cnt2=0
cnt3=0
cnt6=0
cnt11=0

for i  in sale_list_final:


    class iDeployChecks:

        def __init__(self, badge, environment):
            self.session = NSession(badge=badge,environment=environment)
            self.logger = self.session.logger
           # self.sale_sgid_list = []
            self.sale_sgid_in_test = ''
            self.i_session = iDataProvider(self.session)


        def get_all_saleable_sales(self):
            global cnt2
            if cnt2 == 0:
                self.i_session.get_sale_seller_info()
                self.logger.info('SUCCESS..... Get all sales api\n')
                cnt2 += 1


        def get_all_sale_dashboard(self):
            global cnt6
            if cnt6 == 0:
                self.i_session.get_All_sale()
                self.logger.info('SUCCESS..... Get all sales on dashboard api\n')
                cnt6 += 1

        def get_current_user_sale_dashboard(self):
            global cnt11
            if cnt11 == 0:
                self.i_session.get_current_user_sale()
                self.logger.info('SUCCESS..... Get current sales on dashboard api\n')
                cnt11 += 1


        def get_one_sale_license(self):

            self.logger.info('Getting sale details from:')
            self.sale_sgid_list1 = [item.get('salesgid') for item in self.i_session.get_sale_seller_info()]
            #self.sale_sgid_list =[item.get('salesgid') for item in self.i_session.get_sale_seller_info() if item.get('salesgid') == i]
            print "                           for sale " + str(i)
            self.sale_sgid_in_test = ''.join(i)
            self.logger.info('\n')
            self.logger.info('Get License for sale with sale sgid {}'.format(self.sale_sgid_in_test))
            self.i_session.get_sale_license(self.sale_sgid_in_test)
            self.logger.info('SUCCESS..... Get license api\n')

        def get_weekly_stats_count(self):
            global cnt
            if cnt == 0:
                self.i_session.get_weekly_statistics()
                self.logger.info('SUCCESS..... Weekly statistics api\n')
                cnt += 1

        def get_sconfig_value_count(self):
            self.i_session.get_sconfig_value(self.sale_sgid_in_test)
            self.logger.info('SUCCESS..... sconfig api\n')


        def main(self):
            start = datetime.utcnow()

            # check if the method  in the list  is present in the class, if yes  run it.
            for j in tests_list_final:

                k = "self." + j + "()"
                l= [x.strip() for x in j.split(',')]

                m= "self."+l[0]+"(self,year)"

                n= "self."+l[0]+"(self,year,month)"

                if k == str("self.get_all_saleable_sales()"):
                    if cnt2 == 0:
                        self.logger.info('Get All sales')
                    self.get_all_saleable_sales()


                    self.logger.info('checking if sale with GSID ' + i + ' exists')
                    if i not in str(self.i_session.get_sale_seller_info()):
                        print "the sale with GSID " + i + " does not exist !!"
                        end1 = datetime.utcnow()
                        self.logger.info('i health check completed in {} seconds.'.format((end1 - start).seconds))
                        return
                    else:
                        print "sale exists !!"


                    continue

                elif k == str("self.get_one_sale_license()"):

                    self.get_one_sale_license()
                    continue

                elif k == str("self.get_sale_node_status_value()"):
                    try:
                        self.logger.info('Get sale node status for  sale sgid {}'.format(self.sale_sgid_in_test))
                        self.get_sale_node_status_value()
                    except Exception as e: print e

                else:
                    global cnt3
                    if (cnt3==0):
                        print '\n'
                        print "  The testcase " +k + "test does not exist,please recheck test name !!"
                        print '\n'
                        cnt3 +=1
            end = datetime.utcnow()
            self.logger.info('IBDL health check completed in {} seconds.'.format((end - start).seconds))




    if __name__ == '__main__':
        parser = NArgParser(description='i Checks')
        args = parser.parse_args()
        iDeployChecks(args.badge, args.environment).main()

0 个答案:

没有答案