Esempio n. 1
0
def get_available_seat():
    film_plan_seat = []
    if len(film_plan_seat) == 0:
        return film_plan_seat
    else:
        url = url_query()
        client = suds.client.Client(url)
        plan_list = get_film_plan()
        # # 获取一下可购买影票的影厅
        # for i in range(len(plan_list[0])):
        #     if plan_list[1][i] not in hall_code:
        #         hall_code.append(plan_list[1][i])
        # 排期+排期的座位 film_plan_seat[0]是所有排期,后边全部是可选座位
        film_plan_seat.append(plan_list[0])
        for i in range(len(plan_list[0])):
            xml = OnlineTicketingServiceQuery.plan_seat_xml(plan_list[0][i])
            # 选取一个影厅获取可购买座位
            res = client.service['NetSaleWebServicePort'].query(xml)
            # 获取所有座位
            seat_all = repxml.get_value("Code", res)
            # 获取座位可售状态
            status = repxml.get_value("Status", res)
            # 获取可买座位
            seat = []
            for j in range(len(status)):
                if status[j] == "Available":
                    seat.append(seat_all[j])
            film_plan_seat.append(seat)
        # 返回的是放映计划加上座位列表
        return film_plan_seat
    def test_003_get_film_plan(self):
        # 所有放映计划列表信息
        plan_list = []
        url = url_query()
        client = suds.client.Client(url)
        xml = OnlineTicketingServiceQuery.film_plan_xml()
        res = client.service['NetSaleWebServicePort'].query(xml)

        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')
        # 先判断一下是否有放映计划
        error_code = repxml.get_error_code(res)
        if len(error_code) > 0:
            print(repxml.get_error_message(res))
            return plan_list
        else:
            # 获取放映计划列表
            # 放映计划iD
            film_planx = repxml.get_value("Code", res)
            # 因为返回的xml中有两个code,一个是放映计划,一个是影片的code,需要删除影片code
            film_plan = []
            start_time = []
            for i in range(len(film_planx)):
                if len(film_planx[i]) > 12:
                    film_plan.append(film_planx[i])
            # 放映计划的影厅
            film_hall = repxml.get_screen_code(res)
            # 影片名称
            film_name = repxml.get_value("Name", res)
            # 放映时间
            start_timex = repxml.get_value("StartTime", res)
            # 调整时间格式
            for t in range(len(start_timex)):
                temp = start_timex[t].replace("T", " ")
                start_time.append(temp)
            # 最低票价
            lowest_price = repxml.get_value("LowestPrice", res)
            # 标准票价
            standard_price = repxml.get_value("StandardPrice", res)
            plan_list.append(film_plan)
            plan_list.append(start_time)
            plan_list.append(film_hall)
            plan_list.append(film_name)
            plan_list.append(lowest_price)
            plan_list.append(standard_price)
            # 处理小于当前日期的放映计划
            temp = []
            for i in range(len(plan_list[0])):
                if repxml.time_compare(plan_list[1][i]) == 0:
                    temp.append(i)
            temp.sort()
            temp.reverse()
            for p in range(len(plan_list)):
                for q in range(len(temp)):
                    del plan_list[p][temp[q]]
            if len(plan_list[0]) == 0:
                plan_list = []
                return plan_list
            else:
                return plan_list
    def test_001_get_film_info(self):
        '''获取影院信息'''
        url = url_query()
        client = suds.client.Client(url)
        xml = OnlineTicketingServiceQuery.film_info_xml()
        rp = client.service['NetSaleWebServicePort'].query(xml)
        print rp

        status = repxml.get_status(rp)
        self.assertEqual(status, 'Success')
Esempio n. 4
0
 def setUpClass(cls):
     cls.url = url_query()
     cls.OrderCode = '0'
     cls.SeatCode = '0'
     cls.PrintNo = '0'
     cls.VerifyCode = '0'
     cls.ServiceFee = '0'
     cls.plan_list = []
     cls.SeatCode = '0'
     cls.SessionPlanCode = '0'
Esempio n. 5
0
def get_cinema_info():
    url = url_query()
    client = suds.client.Client(url)
    xml = OnlineTicketingServiceQuery.cinema_info_xml()
    res = client.service['NetSaleWebServicePort'].query(xml)
    # 后别这块加一下如果没有影厅的处理
    cinema_info = []
    cinema_code = repxml.get_value("Code", res)
    cinema_name = repxml.get_value("Name", res)
    cinema_info.append(cinema_code)
    cinema_info.append(cinema_name)
    return cinema_info
Esempio n. 6
0
def order_sure():
    lockseat = lock_seat()
    if len(lockseat) != 0:
        url = url_query()
        client = suds.client.Client(url)
        xml = OnlineTicketingServiceQuery.order_sure_xml(
            lockseat[0], lockseat[1], lockseat[2], lockseat[3])
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        if status == "Success":
            print("购买1张票成功")
        else:
            print(repxml.get_error_message(res))
 def test_004_get_plan_nomal_seat():
     # 可用的座位除去情侣座
     seat_status_type = []
     # 返回的数组,包含影厅和座位
     hall_seat = []
     # 第三个参数是影厅
     film_plan = get_film_plan()
     # 没有放映计划就不查座位了
     if len(film_plan) < 1:
         return seat_status_type
     else:
         url = url_query()
         client = suds.client.Client(url)
         # 影厅去重
         hall_code = list(set(film_plan[2]))
         hall_seat.append(hall_code)
         # 获取所有影厅的座位
         for i in range(len(hall_code)):
             xml = OnlineTicketingServiceQuery.plan_hall_seat_xml(
                 hall_code[i])
             res = client.service['NetSaleWebServicePort'].query(xml)
             seat_code = repxml.get_value("Code", res)
             seat_status = repxml.get_value("Status", res)
             seat_lovers = repxml.get_value("Lovers", res)
             seat_status_type.append(seat_code)
             seat_status_type.append(seat_status)
             seat_status_type.append(seat_lovers)
             # 先删除不可用座位
             temp = []
             for a in range(len(seat_status_type[0])):
                 if seat_status_type[1][a] != 'Available':
                     temp.append(a)
             if len(temp) > 0:
                 temp.reverse()
                 for a in range(len(temp)):
                     del seat_status_type[0][temp[a]]
                     del seat_status_type[1][temp[a]]
                     del seat_status_type[2][temp[a]]
             # 删除情侣座位
             temp1 = []
             for j in range(len(seat_status_type[0])):
                 if seat_status_type[2][j] != "":
                     temp1.append(j)
             if len(temp1) > 0:
                 temp1.reverse()
                 for a in range(len(temp)):
                     del seat_status_type[0][temp[a]]
                     del seat_status_type[1][temp[a]]
                     del seat_status_type[2][temp[a]]
             seat_status.append(seat_status_type[0])
         return seat_status_type
 def test_002_get_cinema_info(self):
     url = url_query()
     client = suds.client.Client(url)
     xml = OnlineTicketingServiceQuery.cinema_info_xml()
     res = client.service['NetSaleWebServicePort'].query(xml)
     status = repxml.get_status(res)
     self.assertEqual(status, 'Success')
     # 后别这块加一下如果没有影厅的处理
     cinema_info = []
     cinema_code = repxml.get_value("Code", res)
     cinema_name = repxml.get_value("Name", res)
     cinema_info.append(cinema_code)
     cinema_info.append(cinema_name)
     return cinema_info
 def test_001_search_show_plan(self):
     '''获取影片信息_ID_DQueryFilm'''
     #说明:查询电影院在一段时期中上映的影片信息,测试得来的结果还必须是当天有排期,如果没排期,依然不显示,有拷贝也不行
     requestName = get_current_function_name()
     url = url_query()
     client = suds.client.Client(url)
     xml = OnlineTicketingServiceQuery_D.film_info_xml()
     res = client.service['NetSaleWebServicePort'].query(xml)
     print res
     status = repxml.get_status(res)
     self.assertEqual(status, 'Success')
     SessionPlanCode = repxml.get_value("Code", res)[0]
     logger.info(requestName + '--' +
                 repxml.get_keyOfValue("ErrorMessage", res) +
                 "SessionPlanCode" + ':' + SessionPlanCode)
Esempio n. 10
0
class SearchShowPlan(unittest.TestCase):
	url = url_query()
	OrderCode = '0'
	SeatCode = '0'
	PrintNo = '0'
	VerifyCode = '0'
	ServiceFee = '0'
	plan_list=[]
	SeatCode='0'
	SessionPlanCode='0'
	
	def test_001_no_show_plan(self):
		'''查询放映计划_ID_DQuerySession'''
		global SessionPlanCode
		requestName = get_current_function_name()
		client = suds.client.Client(self.url)
		xml = OnlineTicketingServiceQuery_D.film_plan_xml()
		res = client.service['NetSaleWebServicePort'].query(xml)
		status = repxml.get_status(res)
		self.assertEqual(status, 'Success')
		SessionPlanCode = repxml.get_value("Code", res)[0]
		logger.info(requestName + '--' + repxml.get_keyOfValue("ErrorMessage", res) + "SessionPlanCode" + ':' + SessionPlanCode)
class NoMemberBuyTicker(unittest.TestCase):
    url = url_query()
    OrderCode = '0'
    SeatCode = '0'
    PrintNo = '0'
    VerifyCode = '0'
    ServiceFee = '0'
    plan_list = []
    SeatCode = '0'
    SessionPlanCode = '0'

    # currentTime=datetime.datetime.strptime(string, '%Y-%m-%d %H:%M:%S')

    def test_001_searchShowPlanInfo(self):
        '''查询放映计划'''
        global SessionPlanCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.film_plan_xml()
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')
        SessionPlanCode = repxml.get_value("Code", res)[0]
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) +
                    "SessionPlanCode" + ':' + SessionPlanCode)

    def test_002_plan_seat_xml(self):
        '''查询放映计划可用座位'''
        global SeatCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.plan_seat_xml(SessionPlanCode)
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')
        SeatCode = getAvilableSaleSeat(res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "SeatCode" +
                    ':' + SeatCode)

    def test_003_lock_seat_xml(self):
        '''锁定座位(D)'''
        global OrderCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.lock_seat_xml(
            SessionPlanCode, SeatCode)
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        OrderCode = repxml.get_keyOfValue("OrderCode", res)
        self.assertEqual(status, 'Success')
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "OrderCode" +
                    ':' + OrderCode)

    def test_004_confirmSCTSOrder(self):
        '''确认SCTS订单交易接口'''
        global PrintNo, VerifyCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.order_sure_xml(
            OrderCode, SessionPlanCode, SeatCode, '50', '40', '10', '3')
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        PrintNo = repxml.get_keyOfValue("PrintNo", res)
        VerifyCode = repxml.get_keyOfValue("VerifyCode", res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "PrintNo" +
                    ':' + PrintNo + "VerifyCode" + ':' + VerifyCode)
        self.assertEqual(status, 'Success')

    def test_005_takeTicketConfirm(self):
        '''取票确认信息接口'''
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.take_ticket_info(
            PrintNo, VerifyCode)
        res = client.service['NetSaleWebServicePort'].query(xml)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res))
        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')

    def test_006_recordTicketInfo(self):
        '''记录信息'''
        currentTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        with open('buyTicketInfo.txt', 'a') as text:
            text.write('%s=%s' % ('testcaseTime', currentTime))
            text.write('%s=%s' % ('SessionPlanCode', SessionPlanCode))
            text.write('%s=%s' % ('SeatCode', SeatCode))
            text.write('%s=%s' % ('OrderCode', OrderCode))
            text.write('%s=%s' % ('PrintNo', PrintNo))
            text.write('%s=%s' % ('VerifyCode', VerifyCode))
            text.write("\n")
class ReleaseSeatSuccess(unittest.TestCase):
    '''成功解锁'''
    url = url_query()
    OrderCode = '0'
    SeatCode = '0'
    PrintNo = '0'
    VerifyCode = '0'
    ServiceFee = '0'
    plan_list = []
    SeatCode = '0'
    SessionPlanCode = '0'

    def test_001_search_show_plan(self):
        '''查询放映计划_ID_DQuerySession'''
        global SessionPlanCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.film_plan_xml()
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')
        SessionPlanCode = repxml.get_value("Code", res)[0]
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) +
                    "SessionPlanCode" + ':' + SessionPlanCode)
        self.assertEqual(repxml.get_keyOfValue("ErrorMessage", res), 'NULL')

    def test_002_plan_seat_xml(self):
        '''查询放映计划可用座位_ID_DQuerySessionSeat'''
        requestName = get_current_function_name()
        global SeatCode
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.plan_seat_xml(SessionPlanCode)
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')
        SeatCode = getAvilableSaleSeat(res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "SeatCode" +
                    ':' + SeatCode)
        self.assertEqual(repxml.get_keyOfValue("ErrorMessage", res), 'NULL')

    def test_003_lock_seat_xml(self):
        '''锁定座位_ID_DLockSeat'''
        requestName = get_current_function_name()
        global OrderCode
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.lock_seat_xml(
            SessionPlanCode, SeatCode)
        res = client.service['NetSaleWebServicePort'].query(xml)
        OrderCode = repxml.get_keyOfValue("OrderCode", res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "OrderCode" +
                    ':' + OrderCode)
        self.assertEqual(repxml.get_status(res), 'Success')
        self.assertEqual(repxml.get_keyOfValue("ErrorMessage", res), 'NULL')

    def test_004_confirmSCTS_order(self):
        '''解锁座位_ID_SubmitOrder'''

        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.release_seat(
            OrderCode, SessionPlanCode, SeatCode)
        res = client.service['NetSaleWebServicePort'].query(xml)

        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res))
        self.assertEqual(repxml.get_status(res), 'Success')
        self.assertEqual(repxml.get_keyOfValue("ErrorMessage", res), 'NULL')
Esempio n. 13
0
class RefundTicket(unittest.TestCase):
    '''网售退票'''
    url = url_query()
    OrderCode = '0'
    SeatCode = '0'
    PrintNo = '0'
    VerifyCode = '0'
    ServiceFee = '0'
    plan_list = []
    SeatCode = '0'
    SessionPlanCode = '0'

    def test_001_search_show_plan(self):
        '''查询放映计划_ID_DQuerySession'''
        global SessionPlanCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.film_plan_xml()
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')
        SessionPlanCode = repxml.get_value("Code", res)[0]
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) +
                    "SessionPlanCode" + ':' + SessionPlanCode)

    def test_002_plan_seat_xml(self):
        '''查询放映计划可用座位_ID_DQuerySessionSeat'''
        requestName = get_current_function_name()
        global SeatCode
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.plan_seat_xml(SessionPlanCode)
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')
        SeatCode = getAvilableSaleSeat(res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "SeatCode" +
                    ':' + SeatCode)

    def test_003_lock_seat_xml(self):
        '''锁定座位_ID_DLockSeat'''
        requestName = get_current_function_name()
        global OrderCode
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.lock_seat_xml(
            SessionPlanCode, SeatCode)
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        OrderCode = repxml.get_keyOfValue("OrderCode", res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "OrderCode" +
                    ':' + OrderCode)
        self.assertEqual(status, 'Success')

    def test_004_confirmSCTS_order(self):
        '''确认SCTS订单交易接口_ID_SubmitOrder'''
        global PrintNo, VerifyCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.order_sure_xml(
            OrderCode, SessionPlanCode, SeatCode, '50', '40', '10', '3')
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        PrintNo = repxml.get_keyOfValue("PrintNo", res)
        VerifyCode = repxml.get_keyOfValue("VerifyCode", res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res))
        self.assertEqual(status, 'Success')

    def test_005_refund_ticket(self):
        '''退票接口_ID_RefundTicket'''
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.refound_ticket(PrintNo, VerifyCode)
        res = client.service['NetSaleWebServicePort'].query(xml)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "PrintNo" +
                    ':' + PrintNo + "VerifyCode" + ':' + VerifyCode)
        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')

    # def test_006_refundRecordTicketInfo(self):
    # 	'''记录信息'''
    # 	currentTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    # 	with open('rufundTicketInfo.txt', 'a') as text:
    # 		text.write('%s=%s' % ('testcaseTime', currentTime))
    # 		text.write('%s=%s' % ('SessionPlanCode', SessionPlanCode))
    # 		text.write('%s=%s' % ('SeatCode', SeatCode))
    # 		text.write('%s=%s' % ('OrderCode', OrderCode))
    # 		text.write('%s=%s' % ('PrintNo', PrintNo))
    # 		text.write('%s=%s' % ('VerifyCode', VerifyCode))
    # 		text.write("\n")
class NoMemberBuyTicker(unittest.TestCase):
    '''非会员买票'''
    url = url_query()
    OrderCode = '0'
    SeatCode = '0'
    PrintNo = '0'
    VerifyCode = '0'
    ServiceFee = '0'
    plan_list = []
    SeatCode = '0'
    SessionPlanCode = '0'

    def test_001_search_show_plan(self):
        '''查询放映计划_ID_DQuerySession'''
        global SessionPlanCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.film_plan_xml()
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')
        SessionPlanCode = repxml.get_value("Code", res)[0]
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) +
                    "SessionPlanCode" + ':' + SessionPlanCode)

    def test_002_plan_seat_xml(self):
        '''查询放映计划可用座位_ID_DQuerySessionSeat'''
        global SeatCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.plan_seat_xml(SessionPlanCode)
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')
        SeatCode = getAvilableSaleSeat(res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "SeatCode" +
                    ':' + SeatCode)

    def test_003_lock_seat_xml(self):
        '''锁定座位_ID_DLockSeat'''
        global OrderCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.lock_seat_xml(
            SessionPlanCode, SeatCode)
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        OrderCode = repxml.get_keyOfValue("OrderCode", res)
        self.assertEqual(status, 'Success')
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "OrderCode" +
                    ':' + OrderCode)

    def test_004_confirm_SCTS_order(self):
        '''确认SCTS订单交易接口_ID_SubmitOrder'''
        global PrintNo, VerifyCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.order_sure_xml(
            OrderCode, SessionPlanCode, SeatCode, '50', '40', '10', '3')
        res = client.service['NetSaleWebServicePort'].query(xml)
        status = repxml.get_status(res)
        PrintNo = repxml.get_keyOfValue("PrintNo", res)
        VerifyCode = repxml.get_keyOfValue("VerifyCode", res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "PrintNo" +
                    ':' + PrintNo + "VerifyCode" + ':' + VerifyCode)
        self.assertEqual(status, 'Success')

    def test_005_take_ticket_confirm(self):
        '''取票确认信息接口_ID_DTakeTicketConfirm'''
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.take_ticket_info(
            PrintNo, VerifyCode)
        res = client.service['NetSaleWebServicePort'].query(xml)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res))
        status = repxml.get_status(res)
        self.assertEqual(status, 'Success')
Esempio n. 15
0
class SecondRefundTicket(unittest.TestCase):
    '''已经退票再次退票'''
    url = url_query()
    OrderCode = '0'
    SeatCode = '0'
    PrintNo = '0'
    VerifyCode = '0'
    ServiceFee = '0'
    plan_list = []
    SeatCode = '0'
    SessionPlanCode = '0'

    def test_001_search_show_plan(self):
        '''查询放映计划_ID_DQuerySession'''
        global SessionPlanCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.film_plan_xml()
        res = client.service['NetSaleWebServicePort'].query(xml)

        self.assertEqual(repxml.get_status(res), 'Success')
        SessionPlanCode = repxml.get_value("Code", res)[0]
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) +
                    "SessionPlanCode" + ':' + SessionPlanCode)

    def test_002_plan_seat_xml(self):
        '''查询放映计划可用座位_ID_DQuerySessionSeat'''
        requestName = get_current_function_name()
        global SeatCode
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.plan_seat_xml(SessionPlanCode)
        res = client.service['NetSaleWebServicePort'].query(xml)

        self.assertEqual(repxml.get_status(res), 'Success')
        SeatCode = getAvilableSaleSeat(res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "SeatCode" +
                    ':' + SeatCode)

    def test_003_lock_seat_xml(self):
        '''锁定座位_ID_DLockSeat'''
        requestName = get_current_function_name()
        global OrderCode
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.lock_seat_xml(
            SessionPlanCode, SeatCode)
        res = client.service['NetSaleWebServicePort'].query(xml)

        OrderCode = repxml.get_keyOfValue("OrderCode", res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "OrderCode" +
                    ':' + OrderCode)
        self.assertEqual(repxml.get_status(res), 'Success')

    def test_004_confirmSCTS_order(self):
        '''确认SCTS订单交易接口_ID_SubmitOrder'''
        global PrintNo, VerifyCode
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.order_sure_xml(
            OrderCode, SessionPlanCode, SeatCode, '50', '40', '10', '3')
        res = client.service['NetSaleWebServicePort'].query(xml)

        PrintNo = repxml.get_keyOfValue("PrintNo", res)
        VerifyCode = repxml.get_keyOfValue("VerifyCode", res)
        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res))
        self.assertEqual(repxml.get_status(res), 'Success')

    def test_005_refund_ticket(self):
        '''退票接口_ID_RefundTicket'''
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.refound_ticket(PrintNo, VerifyCode)
        res = client.service['NetSaleWebServicePort'].query(xml)

        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "PrintNo" +
                    ':' + PrintNo + "VerifyCode" + ':' + VerifyCode)
        self.assertEqual(repxml.get_status(res), 'Success')

    def test_006_second_refund_ticket(self):
        '''已经退票再次退票_ID_RefundTicket'''
        requestName = get_current_function_name()
        client = suds.client.Client(self.url)
        xml = OnlineTicketingServiceQuery_D.refound_ticket(PrintNo, VerifyCode)
        res = client.service['NetSaleWebServicePort'].query(xml)

        logger.info(requestName + '--' +
                    repxml.get_keyOfValue("ErrorMessage", res) + "PrintNo" +
                    ':' + PrintNo + "VerifyCode" + ':' + VerifyCode)
        self.assertEqual(repxml.get_status(res), 'Failure')
        self.assertEqual(repxml.get_keyOfValue("ErrorMessage", res),
                         '退票失败,取票号或验证码查不到影票信息')
Esempio n. 16
0
def get_film_info():
    url = url_query()
    client = suds.client.Client(url)
    xml = OnlineTicketingServiceQuery.film_info_xml()
    res = client.service['NetSaleWebServicePort'].query(xml)
Esempio n. 17
0
def lock_seat():
    lock_info = []
    url = url_query()
    client = suds.client.Client(url)
    # 顺序为 放映计划,放映时间,放映大厅code,大厅名称,电影名称,最低票价,标准票价
    film_plan = get_film_plan()
    # 放映计划为空,直接返回空
    if len(film_plan) < 1:
        print("今日没有放映计划,请添加计划")
        return lock_info
    else:
        # 放映计划+座位
        film_plan_seat = get_available_seat()
        # 大厅编码+座位
        hall_seat = get_plan_nomal_seat()
        cinema_info = get_cinema_info()
        # 做一下可买座位和可用座位的匹配,去除情侣座位
        temp = []
        # 需要先标记在删除

        # 如果放映计划为空,则直接提示停止
        if len(film_plan_seat[0]) < 1:
            print("今日没有放映计划或电影已开场,请添加计划后再尝试")
            return lock_info
        else:
            # 如果该计划下已经没有座位则重新选取放映计划
            for p in range(len(film_plan_seat[0])):
                if len(film_plan_seat[p + 1]) > 0:
                    xml = OnlineTicketingServiceQuery.lock_seat_xml(
                        film_plan_seat[0][p], film_plan_seat[p + 1][0])
                    res = client.service['NetSaleWebServicePort'].query(xml)
                    # 获取订单信息,这块情侣座不能单卖,那么就要跳过情侣座 明天搞
                    order_code = repxml.get_order_code(res)
                    ordercode = order_code[0]
                    for i in range(len(film_plan[0])):
                        if film_plan_seat[0][0] in film_plan[0][i]:
                            filmplan = film_plan[0][i]
                            starttime = film_plan[1][i]
                            hallcode = film_plan[2][i]
                            filmname = film_plan[3][i]
                            lowest = film_plan[4][i]
                            stander = film_plan[5][i]
                            break
                    for j in range(len(cinema_info[0])):
                        if hallcode in cinema_info[0][j]:
                            hallname = cinema_info[1][j]
                            break
                else:
                    continue
                print("订单编号是:%s" % ordercode)
                print("订单的放映计划是:%s" % filmplan)
                print("订单的放映时间是:%s" % starttime)
                print("订单的影厅编码是:%s" % hallcode)
                print("订单的影厅名称是:%s" % hallname)
                print("订单的影片是:%s" % filmname)
                print("订单的座位是:%s" % film_plan_seat[1][1])
                print("订单的最低票价是:%s" % lowest)
                print("订单的标准票价是:%s" % stander)

                # 订单
                lock_info.append(ordercode)
                # 放映计划
                lock_info.append(filmplan)
                # 座位
                lock_info.append(film_plan_seat[1][0])
                # 价格
                lock_info.append(stander)
                break
        return lock_info