Ejemplo n.º 1
0
def pack_ncm2():
    ConfigReader.read_config()
    advis_url = ConfigReader.get_string('advis', 'advis_url')

    headers = {'Content-Type': 'application/json'}

    pack_uuid = str(uuid.uuid4())
    screen = random.randint(1, 24)
    pack_name = 'a'.join(random.sample(string.ascii_letters + string.digits,
                                       5))

    f = open(root.get_root_path() + "/output/pos_info.txt", "r")
    datalist = f.readlines()[1:2]
    screen = datalist[0][:36]
    screen1 = screen.replace('\n', '')

    f1 = open(root.get_root_path() + "/output/pos_info.txt", "r")
    datalist2 = f1.readlines()[2:3]
    start = datalist2[0][:36]
    start1 = start.replace('\n', '')

    payload = {
        "pack": {
            "UUID":
            pack_uuid,
            "PackName":
            pack_name,
            "Issuer":
            "AAM",
            "PlaceholderName":
            "3D Advertisement",
            "PerformanceDateTime":
            start1,
            "Screen":
            screen1,
            "Elements": [{
                "ContentTitleText": "2211_XiBanYaHangKong_15S_jpg239",
                "UUID": "1f48272e-3b98-4a35-9c48-0ca03754be5f",
                "Duration": 312,
                "EditRate": "24 1"
            }, {
                "ContentTitleText": "702_AoDi_A6L_30S_jpg239",
                "UUID": "34a287f6-8597-40df-9764-0ad9e4554b2e",
                "Duration": 312,
                "EditRate": "24 1"
            }, {
                "ContentTitleText":
                "PULP-FIC-FTRETTE_SHR_F_EN-XX_INT_20_2K_PRKC_20121227_AAM_OV",
                "UUID": "45e695fe-30fd-4410-a211-f18a56bf87ac",
                "Duration": 312,
                "EditRate": "24 1"
            }]
        }
    }

    resp = requests.post(advis_url + '/v1/pack', headers=headers, json=payload)
    json_obj = json.loads(resp.content)
    pack_uuid = json_obj['UUID']
    with open(root.get_root_path() + '/output/pack_uuid.txt', 'w') as f:
        f.write(pack_uuid + '\n')
Ejemplo n.º 2
0
def delete_pack2():
    ConfigReader.read_config()
    advis_url = ConfigReader.get_string('advis', 'advis_url')
    f = open(root.get_root_path() + "/output/pack_uuid.txt", "r")
    datalist = f.readlines()
    pack_uuid = datalist[0][:36]

    resp = requests.request("DELETE", advis_url + '/v1/pack/' + pack_uuid)
Ejemplo n.º 3
0
def pack_screenvision():
    ConfigReader.read_config()
    advis_url = ConfigReader.get_string('advis', 'advis_url')

    headers = {'Content-Type': 'application/json'}

    pack_uuid = str(uuid.uuid4())
    screen = random.randint(1, 24)
    pack_name = 'a'.join(random.sample(string.ascii_letters + string.digits,
                                       5))
    f = open(root.get_root_path() + "/output/pos_info.txt", "r")
    datalist = f.readlines()[3:4]
    feature_id = datalist[0][:36]

    payload = {
        "pack": {
            "UUID":
            pack_uuid,
            "PackName":
            pack_name,
            "Issuer":
            "DTDC Screenvision",
            "PlaceholderName":
            "3D Advertisement",
            "Title":
            feature_id,
            "NotValidBeforeDate":
            "2020-01-01",
            "NotValidAfterDate":
            "2020-12-31",
            # "Screen": str(screen),
            "Elements": [{
                "ContentTitleText": "2211_XiBanYaHangKong_15S_jpg239",
                "UUID": "1f48272e-3b98-4a35-9c48-0ca03754be5f",
                "Duration": 312,
                "EditRate": "24 1"
            }, {
                "ContentTitleText":
                "PULP-FIC-FTRETTE_SHR_F_EN-XX_INT_20_2K_PRKC_20121227_AAM_OV",
                "UUID": "45e695fe-30fd-4410-a211-f18a56bf87ac",
                "Duration": 312,
                "EditRate": "24 1"
            }]
        }
    }

    resp = requests.post(advis_url + '/v1/pack', headers=headers, json=payload)
    json_obj = json.loads(resp.content)
    pack_uuid = json_obj['UUID']

    with open(root.get_root_path() + '/output/pack_uuid.txt', 'w') as f:
        f.write(pack_uuid + '\n')
def performance():
    ConfigReader.read_config()
    advis_url = ConfigReader.get_string('advis', 'advis_url')

    f = open(root.get_root_path() + "/output/pos_info.txt", "r")
    datalist = f.readlines()[1:2]
    screen = datalist[0][:36]
    screen1 = screen.replace('\n', '')

    f1 = open(root.get_root_path() + "/output/pos_info.txt", "r")
    datalist2 = f1.readlines()[2:3]
    start = datalist2[0][:36]
    start1 = start.replace('\n', '')
    start2 = start1.replace('T', ' ')

    source_start = datetime.datetime.strptime(start2, "%Y-%m-%d %H:%M:%S")
    now_time = datetime.datetime.now()

    f2 = open(root.get_root_path() + "/output/pos_info.txt", "r")
    datalist3 = f2.readlines()[4:5]
    feature_title = datalist3[0][:36]
    feature_title1 = feature_title.replace('\n', '')

    url = advis_url + "/v1/performance-status?screen=%s&performance_datetime=%s" % (
        screen1, start1)
    not_find_str = screen1 + "号厅" + feature_title1 + '影片在' + start1 + '场次未找到对应占位符匹配的内容包'
    find_str = screen1 + "号厅" + feature_title1 + '影片在' + start1 + '场次已添加对应占位符匹配的内容包CPL'
    resp = requests.request("GET", url)
    resp2 = resp.json()
    if (resp2.get('Packs')):
        return find_str
    else:
        if (source_start - now_time) < datetime.timedelta(hours=2):
            if schedule_validate():
                return find_str + '(保护场次)'

            else:
                return not_find_str

        else:
            return not_find_str
 def test_read_config(self):
     cf = ConfigReader.read_config()
     self.assertIsNotNone(cf)
Ejemplo n.º 6
0
# coding=utf-8
import requests
import json
import root
from project.utils.config_reader import ConfigReader

ConfigReader.read_config()
api = ConfigReader.get_string('server', 'url')


def get_tooken():
    payload = {"username": "******", "password": "******"}
    c = requests.Session()
    res = c.post(url=api + '/login_user', data=payload)
    tk = res.cookies.get_dict().get('tms2_9000')
    # c.headers={"cookies":"tms2_9000="+tk}
    # return c.headers
    return tk


def delete_pack():
    headers = {'Content-Type': 'application/json'}

    f = open(root.get_root_path() + "/output/pack_uuid.txt", "r")
    a = list(f)
    a1 = [x.strip() for x in a if x.strip() != ""]

    payload = {"pack_uuids": a1}

    resp = requests.post(api + '/core/pack/delete',
                         json=payload,
Ejemplo n.º 7
0
    def single_run(self):
        ConfigReader.read_config()
        server_url = ConfigReader.get_string('server', 'url')
        username = ConfigReader.get_string('account', 'username')
        password = ConfigReader.get_string('account', 'password')

        # 模拟登陆
        Login(server_url, username, password).execute()
        #生成LMS的uuid到一个txt文件上
        GetLmsUuid(server_url).execute()
        #配置->通用->Advanced->pos_spl_mapping_enabled 开关
        InitAdvancedSpl(server_url).execute()
        #配置->通用->POS设置
        InitPOSSetting(server_url).execute()
        #配置->影院设备
        InitPOSSystem(server_url).execute()
        #查询POS信息
        query_pos()
        #下发pack(screevision样本、ncm样本)
        #pack_screenvision()
        pack_ncm()
        #创建、查询占位符
        Create_Placeholder(server_url).execute()
        GetPlaceholderUuid(server_url).execute()
        #创建playlist
        CreatePlaylist(server_url).execute()
        #playlist匹配POS场次
        PosMapping(server_url).execute()

        #获取POS
        f = open(root.get_root_path() + "/output/pos_info.txt", "r")
        datalist = f.readlines()[1:2]
        screen = datalist[0][:36]
        screen1 = screen.replace('\n', '')

        f1 = open(root.get_root_path() + "/output/pos_info.txt", "r")
        datalist2 = f1.readlines()[2:3]
        start = datalist2[0][:36]
        start1 = start.replace('\n', '')

        f2 = open(root.get_root_path() + "/output/pos_info.txt", "r")
        datalist3 = f2.readlines()[4:5]
        feature_title = datalist3[0][:36]
        feature_title1 = feature_title.replace('\n', '')

        #统计测试结果变量
        send_pack = True
        delete_pack = True
        alter_pack = True
        alter_delete = True

        #排期同步
        ScheduleSync(server_url).execute()
        print("下发Pack且排期同步后,期望结果:\n" + screen1 + "号厅" + feature_title1 +
              '影片在' + start1 + "场次应添加对应占位符匹配的内容包CPL")
        logging.info("下发Pack且排期同步后,期望结果:\n %s号厅 %s影片在 %s场次应添加对应占位符匹配的内容包CPL" %
                     (screen1, feature_title1, start1))
        time.sleep(30)
        print("排期同步完成校验排期,实际结果:")
        logging.info("排期同步完成校验排期,实际结果:")
        res = performance()
        print(res)
        logging.info(res)
        if '已添加' in res:
            print('测试结果:通过\n')
            logging.info('测试结果:通过\n')
        else:
            print('测试结果:不通过!!!\n')
            send_pack = False
            logging.info('测试结果:不通过!!!\n')

        time.sleep(20)
        #查询pack、删除pack
        #query_pack()
        #delete_pack()
        delete_pack2()
        # 排期同步
        ScheduleSync(server_url).execute()
        print("删除Pack且排期同步后,期望结果:\n" + screen1 + "号厅" + feature_title1 +
              '影片在' + start1 + "场次找不到对应占位符匹配的内容包(保护场次不受Pack删除影响)")
        logging.info(
            "删除Pack且排期同步后,期望结果:\n %s号厅 %s影片在 %s场次找不到对应占位符匹配的内容包(保护场次不受Pack删除影响)"
            % (screen1, feature_title1, start1))
        #time.sleep(30)
        print("排期同步完成校验排期,实际结果:")
        logging.info("排期同步完成校验排期,实际结果:")
        res = performance()
        print(res)
        logging.info(res)
        if '未找到' in res:
            print('测试结果:通过\n')
            logging.info('测试结果:通过\n')
        elif '保护场次' in res:
            print('测试结果:通过\n')
            logging.info('测试结果:通过\n')
        else:
            print('测试结果:不通过!!!\n')
            delete_pack = False
            logging.info('测试结果:不通过!!!\n')
        time.sleep(20)

        #下发pack(screevision样本、ncm样本)
        #pack_screenvision()
        pack_ncm2()
        # 排期同步
        ScheduleSync(server_url).execute()
        print("修改Pack且排期同步后,期望结果:\n" + screen1 + "号厅" + feature_title1 +
              '影片在' + start1 + "场次应添加对应占位符匹配的内容包CPL(保护场次不受Pack修改影响)")
        logging.info(
            "修改Pack且排期同步后,期望结果:\n %s号厅 %s影片在 %s场次应添加对应占位符匹配的内容包CPL(保护场次不受Pack修改影响)"
            % (screen1, feature_title1, start1))
        time.sleep(30)
        print("排期同步完成校验排期,实际结果:")
        logging.info("排期同步完成校验排期,实际结果:")
        res = performance()
        print(res)
        logging.info(res)
        if '已添加' in res:
            print('测试结果:通过\n')
            logging.info('测试结果:通过\n')
        else:
            print('测试结果:不通过!!!\n')
            alter_pack = False
            logging.info('测试结果:不通过!!!\n')

        time.sleep(20)
        # 查询pack、删除pack
        # query_pack()
        # delete_pack()
        delete_pack2()
        # 排期同步
        ScheduleSync(server_url).execute()
        print("删除Pack且排期同步后,期望结果:\n" + screen1 + "号厅" + feature_title1 +
              '影片在' + start1 + "场次找不到对应占位符匹配的内容包(保护场次不受Pack删除影响)")
        logging.info("删除Pack且排期同步后,期望结果:\n" + screen1 + "号厅" + feature_title1 +
                     '影片在' + start1 + "场次找不到对应占位符匹配的内容包(保护场次不受Pack删除影响)")
        time.sleep(30)
        print("排期同步完成校验排期,实际结果:")
        logging.info("排期同步完成校验排期,实际结果:")
        res = performance()
        print(res)
        logging.info(res)
        if '未找到' in res:
            print('测试结果:通过\n')
            logging.info('测试结果:通过\n')
        elif '保护场次' in res:
            print('测试结果:通过\n')
            logging.info('测试结果:通过\n')
        else:
            print('测试结果:不通过!!!\n')
            alter_delete = False
            logging.info('测试结果:不通过!!!\n')

        print('Advis测试结果统计:')
        logging.info('Advis测试结果统计:')
        if send_pack:
            print('Pack下发测试结果: %s' % '通过')
            logging.info('Pack下发测试结果: %s' % '通过')
        else:
            print('Pack下发测试结果: %s' % '不通过')
            logging.info(('Pack下发测试结果: %s' % '不通过'))

        if delete_pack:
            print('Pack删除测试结果: %s' % '通过')
            logging.info('Pack删除测试结果: %s' % '通过')
        else:
            print('Pack删除结果: %s' % '不通过')
            logging.info(('Pack删除测试结果: %s' % '不通过'))

        if alter_pack:
            print('Pack修改测试结果: %s' % '通过')
            logging.info('Pack修改测试结果: %s' % '通过')
        else:
            print('Pack修改测试结果: %s' % '不通过')
            logging.info(('Pack修改测试结果: %s' % '不通过'))

        if alter_delete:
            print('Pack删除测试结果: %s' % '通过')
            logging.info('Pack删除测试结果: %s' % '通过')
        else:
            print('Pack删除测试结果: %s' % '不通过')
            logging.info(('Pack删除测试结果: %s' % '不通过'))

        print('\n')
Ejemplo n.º 8
0
# coding=utf-8
import sys
import os
import uuid
import psycopg2
import time
import root
import datetime
from project.utils.config_reader import ConfigReader

ConfigReader.read_config()
host = ConfigReader.get_string('database', 'host')
port = ConfigReader.get_string('database', 'port')

connent = psycopg2.connect(database="tms2",
                           user="******",
                           password="******",
                           host=host,
                           port=port)
cursor = connent.cursor()


def query_pos():
    time1 = str(time.strftime('%Y-%m-%d %H:%M:%S',
                              time.localtime(time.time())))
    source_start = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")
    source_start2 = source_start + datetime.timedelta(days=14)
    time2 = datetime.datetime.strftime(source_start2, "%Y-%m-%d %H:%M:%S")

    cursor.execute(
        "SELECT pos.uuid,pos.screen_identifier,pos.source_start,pos.feature_id,pos.feature_title,external_device_map.device_uuid FROM pos JOIN external_device_map ON pos.screen_identifier=external_device_map.external_id WHERE source_start > '%s' AND source_start < '%s' "