コード例 #1
0
    def test_9_ask1009(self):
        """Не работает, задание №51664. Направляет запрос на тестового человека по путевкам в лагеря. Ожидаю данные за 2014г.
        Выделение путевки в санаторный оздоровительный лагерь"""

        with open('Шаблоны/Request_1009.xml', mode='r', encoding='utf-8') as f:
            shablon = f.read()
        parent = dict()
        parent['famil'] = "Тестовая"
        parent['name'] = "Путевка"
        parent['otch'] = "Лагерь"
        parent['snils'] = ""
        parent['drog'] = "01.03.2005"

        name = 'Тестовая_без_СНИЛС'
        obr = 'Образцы/' + name + '.xml'
        req = smev.change(shablon, parent)
        req = smev.change(req, TI)
        print("Отрабатываем пример", name)
        res = service_1009.service_1009(req, TI, name)
        # вытащим из нее строку между тегов <smev:MessageData>
        answ = res[res.find('<smev:MessageData>'):res.rfind('</smev:MessageData>')]
        # сравнить с образцом
        with open(obr, mode='r', encoding='utf-8') as f:
            good = f.read()
        self.assertEqual(good, answ, 'Второй ответ 1009 сервиса не совпадает с образцом %s' % obr)
コード例 #2
0
    def test_8_ask1009(self):
        """Направляет запрос на тестового человека по путевкам в лагеря. Ожидаю данные за 2014г. и 2015г.
        Выделение путевки в санаторный оздоровительный лагерь, СНИЛС 222-222-222-31 - 2 путевки
        1. выделана с 10.06.2014
        2. выделена с 10.08.2015
        Т.к. выгрузку за 2015г не делали, должна быть только одна путевка."""

        with open('Шаблоны/Request_1009.xml', mode='r', encoding='utf-8') as f:
            shablon = f.read()
        parent = dict()
        parent['famil'] = ""
        parent['name'] = ""
        parent['otch'] = ""
        parent['snils'] = "222-222-222-31"
        parent['drog'] = ""

        name = '222-222-222-31(4)'
        obr = 'Образцы/' + '222-222-222-31(3)' + '.xml'
        req = smev.change(shablon, parent)
        req = smev.change(req, TI)
        print("Отрабатываем пример", name)
        res = service_1009.service_1009(req, TI, name)
        # вытащим из нее строку между тегов <smev:MessageData>
        answ = res[res.find('<smev:MessageData>'):res.rfind('</smev:MessageData>')]
        # сравнить с образцом
        with open(obr, mode='r', encoding='utf-8') as f:
            good = f.read()
        self.assertEqual(good, answ, '4-й ответ 1009 сервиса не совпадает с образцом %s' % obr)
コード例 #3
0
 def test_2_ask1005(self):
     """Направляет запрос на тестового человека, проверит что сервис ответил о неполучении, в запросе ФИО+ДР+ДУЛ"""
     # образец
     people = dict(lastName='Ежемесячные',
                 firstName='Денежные',
                 middleName='Выплаты',
                 birthday='1960-09-03',
                 documentType='',
                 series='6705',
                 number='517705',
                 exist='0',
                 paySource='',
                 dateEnd='',
                 cardExist='',
                 TransCardNum='',
                 test='1005_1')
     # очищаю данные по району
     delTI()
     # проверим, что очистилось нормально
     count = checkTI(people)
     self.assertEqual(count, 0, 'Ожидали, что для %s %s %s будут удалены данные 1005 сервиса, но остально %s строк' %
                      (people['lastName'], people['firstName'], people['middleName'], count))
     # отправит запрос на 1005 сервис
     with open('Шаблоны/Request_1005.xml', mode='r', encoding='utf-8') as f:
         shablon = f.read()
     req = smev.change(shablon, people)
     req = smev.change(req, TI)
     print("Отрабатываем пример", people['test'])
     res = test_1005.service_1005(req, TI, people['test'])
     resDict = test_1005.print_1005(res)
     err = test_1005.equal_1005(people, resDict)
     # проверит, что ответ совпадает с образцом
     if err:
         self.fail('Ответ сервиса отличается от образца!\n %s' % err)
コード例 #4
0
 def test_4_ask1005(self):
     """Направляет запрос на тестового человека, проверит, что ответил транспортной картой, в запросе ФИО+ДР+ДУЛ"""
     # образец
     people = dict(lastName='Ежемесячные',
                 firstName='Денежные',
                 middleName='Выплаты',
                 birthday='1960-09-03',
                 documentType='',
                 series='6705',
                 number='517705',
                 exist='1',
                 paySource='Средства регионального бюджета',
                 dateEnd='2020-02-29',
                 cardExist='1',
                 TransCardNum='1234567890',
                 test='1005_4')
     # отправит запрос на 1005 сервис
     with open('Шаблоны/Request_1005.xml', mode='r', encoding='utf-8') as f:
         shablon = f.read()
     req = smev.change(shablon, people)
     req = smev.change(req, TI)
     print("Отрабатываем пример", people['test'])
     res = test_1005.service_1005(req, TI, people['test'])
     resDict = test_1005.print_1005(res)
     err = test_1005.equal_1005(people, resDict)
     # проверит, что ответ совпадает с образцом
     if err:
         self.fail('Ответ сервиса отличается от образца!\n %s' % err)
コード例 #5
0
def test_1009(IS):
    err = 0
    terr = 0
    # Выполняется если файл запускается как программа
    print("Получение документации 1009-сервиса (Предоставления путевки)")
    print("*******************************************")

    Parents, Errors = readConfig('config_1009.ini')
    if Errors == 0:
        print("Загрузили конфигурационный файл")
    else:
        print("При загрузке конфигурационного файла возникли ошибки")
        exit(1)

    # Перебираем всех тестовых родителей
    fp = open('Шаблоны/Request_1009.xml', mode='r', encoding='utf-8')
    shablon = fp.read()
    fp.close()
    smev.get_wsdl(IS, IS['url']+"SMEV/permit256.ashx", '1009.wsdl')

    for parent in Parents:
        req = smev.change(shablon, parent)
        req = smev.change(req, IS)
        print ("Отрабатываем пример", parent['test'])
        res = service_1009(req, IS, parent['test'])
        # проверяем результат
        if parent['md5']:
            err = smev.check(res, parent['test'], parent['md5'])
            if err > 0:
                print('Ошибка!!! Не совпадает контрольная суммму блока smev:MessageData.')
        terr += err

    return terr
コード例 #6
0
def test_1005(IS):
    err = 0
    terr = 0
    print("Получение документации 1005-сервиса")
    print("*******************************************")
    # Загрузка настроек из конфигурационного файла
    Parents, Errors = readConfig("config_1005.ini")
    if Errors == 0:
        print("Загрузили конфигурационный файл")
    else:
        print("При загрузке конфигурационного файла возникли ошибки")
        exit(1)
    start = time.time()
    # получение WSDL
    url = '/Socportal/SMEV/Transport.ashx'
    #print ("Пытаемся получить WSDL по адресу:",\
    #       'http://%s:%s%s?wsdl' % (IS['adr'], IS['port'], url))
    errMsg = smev.get_wsdl(IS, url)
    if errMsg:
        print(errMsg)
        terr += 1
    # Перебираем всех тестовых родителей
    shablon = open('Шаблоны/Request_1005.xml', mode='r', encoding='utf-8').read()
    for parent in Parents:
        req = smev.change(shablon, parent)
        req = smev.change(req, IS)
        print("Отправляем запрос на гражданина: %s (%s)" %
              (parent['famil'], parent['test']))
        # возвращает XML от сервера
        result = service_1005(req, IS, parent['test'])
        # пытаемся напечатать ответ в понятном виде
        if result:
            if parent['md5']:
                err = smev.check(result, parent['test'], parent['md5'])
                if err > 0:
                    print('Ошибка!!! Не совпадает контрольная суммму блока smev:MessageData.')
            else:
                print('****************************')
                print_1005(result)
                print('****************************')
        else:
            print("ОШИБКА! Ответ не получен")
            err =1
        terr += err
    post = {
            "date": datetime.datetime.now(),
            "name": "Тестирование 1005 сервиса",
            "comment": IS['comment'],
            "version": IS['version'],
            "data":
                {
                    "Итого": time.time() - start
                },
            "errors": terr,
            "address": 'http://%s:%s%sSMEV/Transport.ashx' % (IS['adr'], IS['port'], IS['url'])
        }
    print("Все запросы и ответы сохранены в папке Результаты")
    return post
コード例 #7
0
    def test_5_ask1005(self):
        """Направляет запрос на тестового человека, проверит, что ответил транспортной картой, в запросе ФИО+ДР"""
        # образец
        people = dict(lastName='Ежемесячные',
                      firstName='Денежные',
                      middleName='Выплаты',
                      birthday='1960-09-03',
                      documentType='',
                      series='',
                      number='',
                      exist='1',
                      paySource='Тестовый скрипт',
                      dateEnd='2022-11-10',
                      cardExist='1',
                      TransCardNum='1234560',
                      test='1005_5')
        DB = TI
        conS = "DRIVER=FreeTDS; SERVER=%s; PORT=%s; DATABASE=%s; UID=sa; PWD=%s; TDS_Version=8.0; ClientCharset=UTF8; autocommit=True" \
               % (DB['DB_address'], DB['DB_port'], DB['DB_name'], DB['DB_password'])
        try:
            conTI = pypyodbc.connect(conS)
        except:
            print("Возникла ошибка при соединении с БД АСП")
            exit(1)
        cur = conTI.cursor()
        try:
            cur.execute("""insert into SMEV_SERVICE_TRANSPORT
            (FAMIL, IMJA, OTCH, DROG, Exist, DateEnd, TransCardNum, PaySource, eservice_users_id, TransCard)
            values(?, ?, ?, '1960-09-03', 1, '2022-11-10', '1234560', ?, 159, 1)""",
                        (people['lastName'], people['firstName'], people['middleName'],'Тестовый скрипт'))

            conTI.commit()
        except:
            print('При создании тестового человека возникли ошибки')
        cur.execute("select count(id) from SMEV_SERVICE_TRANSPORT where famil=? and imja=? and OTCH=?",
                        (people['lastName'], people['firstName'], people['middleName']))
        count = cur.fetchone()[0]
        self.assertEqual(count, 2, 'Должно быть в БД 2 человека, получилось %s' % count)

        # отправит запрос на 1005 сервис
        with open('Шаблоны/Request_1005.xml', mode='r', encoding='utf-8') as f:
            shablon = f.read()
        req = smev.change(shablon, people)
        req = smev.change(req, TI)
        print("Отрабатываем пример", people['test'])
        res = test_1005.service_1005(req, TI, people['test'])
        resDict = test_1005.print_1005(res)
        err = test_1005.equal_1005(people, resDict)
        # проверит, что ответ совпадает с образцом
        if err:
            self.fail('Ответ сервиса отличается от образца!\n %s' % err)
コード例 #8
0
def test_1007(IS):
    err = 0
    terr = 0
    # Выполняется если файл запускается как программа
    print("Получение документации 1007-сервиса (Ветеран)")
    print("*******************************************")

    Parents, Errors = readConfig('config_1007.ini')
    if Errors == 0:
        print("Загрузили конфигурационный файл")
    else:
        print("При загрузке конфигурационного файла возникли ошибки")
        exit(1)
    start = time.time()
    # Перебираем всех тестовых родителей
    shablon = open('Шаблоны/Request_1007.xml', mode='r',
                   encoding='utf-8').read()
    smev.get_wsdl(IS, IS['url'] + "SMEV/VeteranWork.ashx", '1007.wsdl')

    for parent in Parents:
        req = smev.change(shablon, parent)
        req = smev.change(req, IS)
        print("Отрабатываем пример", parent['test'])
        res = service_1007(req, IS, parent['test'])
        # проверяем результат
        if parent['md5']:
            err = smev.check(res, parent['test'], parent['md5'])
            if err > 0:
                print(
                    'Ошибка!!! Не совпадает контрольная суммму блока smev:MessageData.'
                )
        terr += err
    post = {
        "date":
        datetime.datetime.now(),
        "name":
        "Тестирование 1007 сервиса",
        "comment":
        IS['comment'],
        "version":
        IS['version'],
        "data": {
            "Итого": time.time() - start
        },
        "errors":
        terr,
        "address":
        'http://%s:%s%sSMEV/VeteranWork.ashx' %
        (IS['adr'], IS['port'], IS['url'])
    }
    return post
コード例 #9
0
def test_1003(IS):
    err = 0
    print("Получение документации 1003-сервиса")
    print("*******************************************")

    Parents, Errors = readConfig('config_1003.ini')
    if Errors == 0:
        print("Загрузили конфигурационный файл")
    else:
        print("При загрузке конфигурационного файла возникли ошибки")
        exit(1)
    start = time.time()
    shablon = open('Шаблоны/Request_1003.xml', mode='r',
                   encoding='utf-8').read()
    con = http.client.HTTPConnection(IS['adr'], IS['port'])
    smev.get_wsdl(IS, IS['url'] + "SMEV/ManyChildren.ashx", '1003.wsdl')
    # Перебираем всех тестовых родителей
    for parent in Parents:
        req = smev.change(shablon, parent)
        req = smev.change(req, IS)
        print("Отрабатываем пример", parent['test'])
        result = service_1003(req, IS, con, parent['test'])
        if parent['md5']:
            err1 = smev.check(result, parent['test'], parent['md5'])
            if err1 > 0:
                print(
                    'Ошибка!!! Не совпадает контрольная суммму блока smev:MessageData.'
                )
                err += err1
    post = {
        "date":
        datetime.datetime.now(),
        "name":
        "Тестирование 1003 сервиса",
        "comment":
        IS['comment'],
        "version":
        IS['version'],
        "data": {
            "Итого": time.time() - start
        },
        "errors":
        err,
        "address":
        'http://%s:%s%sSMEV/ManyChildren.ashx' %
        (IS['adr'], IS['port'], IS['url'])
    }
    con.close()
    return post
コード例 #10
0
def service_1003(req, IS, con, name='1003'):
    '''Получает ответ от 1003 сервиса, подставляет текущую дату в
    исходный файл.
    req: строка запроса (обязательный,в нем меняется время, наименование ИС, КОД, ОКТМО)
    numer: (обязательный, номер для образования имени)
    IS: обязательный, словарь. Наименование ИС, мнемоника, ОКТМО
    ответ сервера в строке или None в случае ошибки
    con: соединение к сервису
    '''
    # проводим замены
    s = smev.change(req, IS)
    # сохранить запрос
    smev.write_file(s, name)
    # соединяется с веб-сервисом
    con = http.client.HTTPConnection(IS['adr'], IS['port'])

    # пытаемся отправить 1-ю часть и получить guid
    headers = {"Content-Type": "text/xml; charset=utf-8",
               "SOAPAction": "http://socit.ru/ManyChildren"}
    try:
        con.request("POST", IS['url']+"SMEV/ManyChildren.ashx", s.encode('utf-8'), headers=headers)
        result = con.getresponse().read()
        result = result.decode('utf-8')
    except:
        Type, Value, Trace = sys.exc_info()
        print("Не удалось обратится к методу Request (1-я часть запроса), возникли ошибки:")
        print("Тип:", Type, "Значение:", Value)
        print("Выполнение будет продолжено")
        result = None
    else:
        # проверим, нет ли ошибки в 1-й части
        smev.write_file(result, name)
    con.close()
    return result
コード例 #11
0
ファイル: test_510.py プロジェクト: ProstakovAlexey/socitTest
def service_510(req, IS, name='510'):
    """Получает ответ от 510 сервиса
    req: строка запроса (обязательный,в нем меняется время, наименование ИС, КОД, ОКТМО)
    numer: (обязательный, номер для образования имени)
    IS: обязательный, словарь. Наименование ИС, мнемоника, ОКТМО
    ответ сервера в строке или None в случае ошибки
    """
    # проводим замены
    s = smev.change(req, IS)
    # сохранить запрос
    smev.write_file(s, name)
    # соединяется с веб-сервисом
    con = http.client.HTTPConnection(IS['adr'], IS['port'])
    # пытаемся отправить 1-ю часть и получить ответ
    headers = {"Content-Type": "text/xml; charset=utf-8",
               "SOAPAction": "queryLongServicePension"}
    try:
        con.request("POST", IS['url']+"/SMEV/GosPension256.ashx", s.encode('utf-8'), headers=headers)
        result = con.getresponse().read()
        result = result.decode('utf-8')
    except:
        Type, Value, Trace = sys.exc_info()
        print("Не удалось обратится к методу Request (1-я часть запроса), возникли ошибки:")
        print("Тип:", Type, "Значение:", Value)
        print("Выполнение будет продолжено")
        result = None
    else:
        # проверим, нет ли ошибки в 1-й части
        smev.write_file(result, name)
    con.close()
    return result
コード例 #12
0
ファイル: test_PGU.py プロジェクト: ProstakovAlexey/socitTest
def pguChange(req, IS, SERVICE_CODE=None, CASE_NUM='1231231666', SNILS='111-111-111 11'):
    if SERVICE_CODE is None:
        SERVICE_CODE = IS['servicecode']
    req = req.replace("#SERVICE_CODE#", SERVICE_CODE)
    req = req.replace("#CASE_NUM#", CASE_NUM)
    req = req.replace("#SNILS#", SNILS)
    return smev.change(req, IS)
コード例 #13
0
def test_1009(IS):
    err = 0
    terr = 0
    # Выполняется если файл запускается как программа
    print("Получение документации 1009-сервиса (Предоставления путевки)")
    print("*******************************************")

    Parents, Errors = readConfig('config_1009.ini')
    if Errors == 0:
        print("Загрузили конфигурационный файл")
    else:
        print("При загрузке конфигурационного файла возникли ошибки")
        exit(1)
    start = time.time()
    # Перебираем всех тестовых родителей
    shablon = open('Шаблоны/Request_1009.xml', mode='r', encoding='utf-8').read()
    smev.get_wsdl(IS, IS['url']+"SMEV/permit256.ashx", '1009.wsdl')

    for parent in Parents:
        req = smev.change(shablon, parent)
        req = smev.change(req, IS)
        print ("Отрабатываем пример", parent['test'])
        res = service_1009(req, IS, parent['test'])
        # проверяем результат
        if parent['md5']:
            err = smev.check(res, parent['test'], parent['md5'])
            if err > 0:
                print('Ошибка!!! Не совпадает контрольная суммму блока smev:MessageData.')
        terr += err
    post = {
            "date": datetime.datetime.now(),
            "name": "Тестирование 1009 сервиса",
            "comment": IS['comment'],
            "version": IS['version'],
            "data":
                {
                    "Итого": time.time() - start
                },
            "errors": terr,
            "address": 'http://%s:%s%sSMEV/permit256.ashx' % (IS['adr'], IS['port'], IS['url'])
        }
    return post
コード例 #14
0
ファイル: test_PGU.py プロジェクト: ProstakovAlexey/socitTest
def pguChange(req,
              IS,
              SERVICE_CODE=None,
              CASE_NUM='1231231666',
              SNILS='111-111-111 11'):
    if SERVICE_CODE is None:
        SERVICE_CODE = IS['servicecode']
    req = req.replace("#SERVICE_CODE#", SERVICE_CODE)
    req = req.replace("#CASE_NUM#", CASE_NUM)
    req = req.replace("#SNILS#", SNILS)
    return smev.change(req, IS)
コード例 #15
0
    def test_2_ask1009(self):
        """Направляет запрос на тестового человека по путевкам в лагеря. Ожидаю пустой ответ.
        Выделение путевки в санаторный оздоровительный лагерь, СНИЛС 222-222-222-31 - 2 путевки
        1. выделана с 10.06.2014
        2. выделена с 10.08.2015
        Т.к. выгрузку за 2015г не делали, должна быть только одна путевка."""

        # очищаю имеющееся по ФИО
        fioList = (dict(famil='Тестовая', name='Путевка', otch='Лагерь'),
                   dict(famil='Тестов', name='Путевка', otch='Лагерь'))
        for people in fioList:
            delTI(people)
        # проверим, что очистилось нормально
        for i in (0,1):
            people = fioList[i]
            print('Тест №2. Проверяю для', people['famil'], people['name'], people['otch'])
            count = checkTI(people)
            self.assertEqual(count, 0,
                         'Ожидали, что для %s %s %s будут удалены данные 1009 сервиса, но остально %s строк' %
                         (people['famil'], people['name'], people['otch'], count))
        with open('Шаблоны/Request_1009.xml', mode='r', encoding='utf-8') as f:
            shablon = f.read()
        parent = dict()
        parent['famil'] = ""
        parent['name'] = ""
        parent['otch'] = ""
        parent['snils'] = "222-222-222-31"
        parent['drog'] = ""
        name = '222-222-222-31(1)'
        obr = 'Образцы/' + name + '.xml'
        req = smev.change(shablon, parent)
        req = smev.change(req, TI)
        print("Отрабатываем пример", name)
        res = service_1009.service_1009(req, TI, name)
        # вытащим из нее строку между тегов <smev:MessageData>
        answ = res[res.find('<smev:MessageData>'):res.rfind('</smev:MessageData>')]
        # сравнить с образцом
        with open(obr, mode='r', encoding='utf-8') as f:
            good = f.read()
        self.assertEqual(good, answ, 'Первый ответ 1009 сервиса не совпадает с образцом %s' % obr)
コード例 #16
0
def test_1003(IS):
    err = 0
    print("Получение документации 1003-сервиса")
    print("*******************************************")

    Parents, Errors = readConfig('config_1003.ini')
    if Errors == 0:
        print("Загрузили конфигурационный файл")
    else:
        print("При загрузке конфигурационного файла возникли ошибки")
        exit(1)
    start = time.time()
    shablon = open('Шаблоны/Request_1003.xml', mode='r', encoding='utf-8').read()
    con = http.client.HTTPConnection(IS['adr'], IS['port'])
    smev.get_wsdl(IS, IS['url']+"SMEV/ManyChildren.ashx", '1003.wsdl')
    # Перебираем всех тестовых родителей
    for parent in Parents:
        req = smev.change(shablon, parent)
        req = smev.change(req, IS)
        print ("Отрабатываем пример", parent['test'])
        result = service_1003(req, IS, con, parent['test'])
        if parent['md5']:
            err1 = smev.check(result, parent['test'], parent['md5'])
            if err1>0:
                print('Ошибка!!! Не совпадает контрольная суммму блока smev:MessageData.')
                err += err1
    post = {
            "date": datetime.datetime.now(),
            "name": "Тестирование 1003 сервиса",
            "comment": IS['comment'],
            "version": IS['version'],
            "data":
                {
                    "Итого": time.time() - start
                },
            "errors": err,
            "address": 'http://%s:%s%sSMEV/ManyChildren.ashx' % (IS['adr'], IS['port'], IS['url'])
        }
    con.close()
    return post
コード例 #17
0
def test_1004(IS):
    print("Получение документации 1004-сервиса")
    print("*******************************************")
    # чтение файла конфигурации
    humans, Errors = readConfig('config_1004.ini')
    if Errors == 0:
        print("Загрузили конфигурационный файл")
    else:
        print("При загрузке конфигурационного файла возникли ошибки")
        exit(1)
    err = 0
    start = time.time()
    # получение WSDL
    adr = IS['url']+"SMEV/ResidencePermit.ashx"
    errMsg = smev.get_wsdl(IS, adr, '1004.wsdl')
    if errMsg:
        print(errMsg)
        err +=1
    # отправляем запросы
    shablon = open('Шаблоны/Request_1004.xml', mode='r', encoding='utf-8').read()
    # по списку людей
    for test in humans.keys():
        print("Обрабатываем пример", test)
        req = smev.change(shablon, IS)
        req = changePers(req, humans[test])
        result = service_1004(req, IS, test)
        if humans[test][0]['md5']:
                err1 = smev.check(result, test, humans[test][0]['md5'])
                if err1 > 0:
                    print('Ошибка!!! Не совпадает контрольная суммму блока smev:MessageData.')
                    err += err1
    post = {
            "date": datetime.datetime.now(),
            "name": "Тестирование 1004 сервиса",
            "comment": IS['comment'],
            "version": IS['version'],
            "data":
                {
                    "Итого": time.time() - start
                },
            "errors": err,
            "address": 'http://%s:%s%sSMEV/ResidencePermit.ashx' % (IS['adr'], IS['port'], IS['url'])
            }
    return post
コード例 #18
0
def service_1003(req, IS, con, name='1003'):
    '''Получает ответ от 1003 сервиса, подставляет текущую дату в
    исходный файл.
    req: строка запроса (обязательный,в нем меняется время, наименование ИС, КОД, ОКТМО)
    numer: (обязательный, номер для образования имени)
    IS: обязательный, словарь. Наименование ИС, мнемоника, ОКТМО
    ответ сервера в строке или None в случае ошибки
    con: соединение к сервису
    '''
    # проводим замены
    s = smev.change(req, IS)
    # сохранить запрос
    smev.write_file(s, name)
    # соединяется с веб-сервисом
    con = http.client.HTTPConnection(IS['adr'], IS['port'])

    # пытаемся отправить 1-ю часть и получить guid
    headers = {
        "Content-Type": "text/xml; charset=utf-8",
        "SOAPAction": "http://socit.ru/ManyChildren"
    }
    try:
        con.request("POST",
                    IS['url'] + "SMEV/ManyChildren.ashx",
                    s.encode('utf-8'),
                    headers=headers)
        result = con.getresponse().read()
        result = result.decode('utf-8')
    except:
        Type, Value, Trace = sys.exc_info()
        print(
            "Не удалось обратится к методу Request (1-я часть запроса), возникли ошибки:"
        )
        print("Тип:", Type, "Значение:", Value)
        print("Выполнение будет продолжено")
        result = None
    else:
        # проверим, нет ли ошибки в 1-й части
        smev.write_file(result, name)
    con.close()
    return result
コード例 #19
0
def service_510(req, IS, name='510'):
    """Получает ответ от 510 сервиса
    req: строка запроса (обязательный,в нем меняется время, наименование ИС, КОД, ОКТМО)
    numer: (обязательный, номер для образования имени)
    IS: обязательный, словарь. Наименование ИС, мнемоника, ОКТМО
    ответ сервера в строке или None в случае ошибки
    """
    # проводим замены
    s = smev.change(req, IS)
    # сохранить запрос
    smev.write_file(s, name)
    # соединяется с веб-сервисом
    con = http.client.HTTPConnection(IS['adr'], IS['port'])
    # пытаемся отправить 1-ю часть и получить ответ
    headers = {
        "Content-Type": "text/xml; charset=utf-8",
        "SOAPAction": "queryLongServicePension"
    }
    try:
        con.request("POST",
                    IS['url'] + "/SMEV/GosPension256.ashx",
                    s.encode('utf-8'),
                    headers=headers)
        result = con.getresponse().read()
        result = result.decode('utf-8')
    except:
        Type, Value, Trace = sys.exc_info()
        print(
            "Не удалось обратится к методу Request (1-я часть запроса), возникли ошибки:"
        )
        print("Тип:", Type, "Значение:", Value)
        print("Выполнение будет продолжено")
        result = None
    else:
        # проверим, нет ли ошибки в 1-й части
        smev.write_file(result, name)
    con.close()
    return result
コード例 #20
0
ファイル: test_409.py プロジェクト: ProstakovAlexey/socitTest
def service_409(req, IS, name='409'):
    '''Получает ответ от 409 сервиса, подставляет текущую дату в
    исходный файл.
    req: строка запроса (обязательный,в нем меняется время, наименование ИС, КОД, ОКТМО)
    numer: (обязательный, номер для образования имени)
    IS: обязательный, словарь. Наименование ИС, мнемоника, ОКТМО
    ответ сервера в строке или None в случае ошибки
    '''
    # проводим замены
    s = smev.change(req, IS)
    # сохранить запрос
    smev.write_file(s, name)
    # соединяется с веб-сервисом
    con = http.client.HTTPConnection(IS['adr'], IS['port'])
    # пытаемся отправить 1-ю часть и получить guid
    headers = {"Content-Type": "text/xml; charset=utf-8",
               "SOAPAction": "http://sum-soc-help.skmv.rstyle.com/SumSocHelpService/SumSocHelpRequestMessage"}
    try:
        con.request("POST", IS['url']+"SMEV/SocPayments256.ashx", s.encode('utf-8'), headers=headers)
        result = con.getresponse().read()
        result = result.decode('utf-8')
        smev.write_file(result, name)
        status = parseString(result).getElementsByTagName('smev:Status')[0].firstChild.nodeValue
    except:
        Type, Value, Trace = sys.exc_info()
        print("Не удалось обратится к методу Request (1-я часть запроса), возникли ошибки:")
        print("Тип:", Type, "Значение:", Value)
        print("Выполнение будет продолжено")
        result = None
    else:
        # проверим, нет ли ошибки в 1-й части
        if status == u"ACCEPT":
            # нашли что статус ACCEPT
            # получение guid
            # сохранить ответ

            for node in parseString(result).getElementsByTagName('smev:RequestIdRef'):
                guid = node.childNodes[0].nodeValue
            #guid = guid.encode('utf8')
            s = open(r"Шаблоны/409-Ping.xml", "r", encoding="utf8").read()
            # проводим замены
            s = smev.change(s, IS)
            # и меняем GUID
            s = s.replace(r"#RequestIdRef#", guid)
            s = s.replace(r"#OriginRequestIdRef#", guid)
            # сохранить запрос
            smev.write_file(s,name)

            # пытаемся отправить 2-ю часть
            headers = {"Content-Type": "text/xml; charset=utf-8",
               "SOAPAction": "http://sum-soc-help.skmv.rstyle.com/SumSocHelpService/SumSocHelpRequestDataMessage"}
            try:
                con.request("POST", IS['url']+"SMEV/SocPayments256.ashx", s.encode('utf-8'), headers=headers)
                result = con.getresponse().read()
                result = result.decode('utf-8')
            except:
                Type, Value, Trace = sys.exc_info()
                print("Не удалось обратится к методу Request (2-я часть запроса), возникли ошибки:")
                print ("Тип:", Type, "Значение:", Value)
                print ("Выполнение будет продолжено")
                result = None
            else:
                # сохранить ответ
                smev.write_file(result, name)
    # если не нашли статус ACCEPT, то сразу попадаем сюда
    con.close()
    return result
コード例 #21
0
ファイル: test_409.py プロジェクト: ProstakovAlexey/socitTest
def service_409(req, IS, name='409'):
    '''Получает ответ от 409 сервиса, подставляет текущую дату в
    исходный файл.
    req: строка запроса (обязательный,в нем меняется время, наименование ИС, КОД, ОКТМО)
    numer: (обязательный, номер для образования имени)
    IS: обязательный, словарь. Наименование ИС, мнемоника, ОКТМО
    ответ сервера в строке или None в случае ошибки
    '''
    # проводим замены
    s = smev.change(req, IS)
    # сохранить запрос
    smev.write_file(s, name)
    # соединяется с веб-сервисом
    con = http.client.HTTPConnection(IS['adr'], IS['port'])
    # пытаемся отправить 1-ю часть и получить guid
    headers = {
        "Content-Type":
        "text/xml; charset=utf-8",
        "SOAPAction":
        "http://sum-soc-help.skmv.rstyle.com/SumSocHelpService/SumSocHelpRequestMessage"
    }
    try:
        con.request("POST",
                    IS['url'] + "SMEV/SocPayments256.ashx",
                    s.encode('utf-8'),
                    headers=headers)
        result = con.getresponse().read()
        result = result.decode('utf-8')
        smev.write_file(result, name)
        status = parseString(result).getElementsByTagName(
            'smev:Status')[0].firstChild.nodeValue
    except:
        Type, Value, Trace = sys.exc_info()
        print(
            "Не удалось обратится к методу Request (1-я часть запроса), возникли ошибки:"
        )
        print("Тип:", Type, "Значение:", Value)
        print("Выполнение будет продолжено")
        result = None
    else:
        # проверим, нет ли ошибки в 1-й части
        if status == u"ACCEPT":
            # нашли что статус ACCEPT
            # получение guid
            # сохранить ответ

            for node in parseString(result).getElementsByTagName(
                    'smev:RequestIdRef'):
                guid = node.childNodes[0].nodeValue
            #guid = guid.encode('utf8')
            s = open(r"Шаблоны/409-Ping.xml", "r", encoding="utf8").read()
            # проводим замены
            s = smev.change(s, IS)
            # и меняем GUID
            s = s.replace(r"#RequestIdRef#", guid)
            s = s.replace(r"#OriginRequestIdRef#", guid)
            # сохранить запрос
            smev.write_file(s, name)

            # пытаемся отправить 2-ю часть
            headers = {
                "Content-Type":
                "text/xml; charset=utf-8",
                "SOAPAction":
                "http://sum-soc-help.skmv.rstyle.com/SumSocHelpService/SumSocHelpRequestDataMessage"
            }
            try:
                con.request("POST",
                            IS['url'] + "SMEV/SocPayments256.ashx",
                            s.encode('utf-8'),
                            headers=headers)
                result = con.getresponse().read()
                result = result.decode('utf-8')
            except:
                Type, Value, Trace = sys.exc_info()
                print(
                    "Не удалось обратится к методу Request (2-я часть запроса), возникли ошибки:"
                )
                print("Тип:", Type, "Значение:", Value)
                print("Выполнение будет продолжено")
                result = None
            else:
                # сохранить ответ
                smev.write_file(result, name)
    # если не нашли статус ACCEPT, то сразу попадаем сюда
    con.close()
    return result
コード例 #22
0
def test_1005(IS):
    err = 0
    terr = 0
    print("Получение документации 1005-сервиса")
    print("*******************************************")
    # Загрузка настроек из конфигурационного файла
    Parents, Errors = readConfig("config_1005.ini")
    if Errors == 0:
        print("Загрузили конфигурационный файл")
    else:
        print("При загрузке конфигурационного файла возникли ошибки")
        exit(1)
    start = time.time()
    # получение WSDL
    url = '/Socportal/SMEV/Transport.ashx'
    #print ("Пытаемся получить WSDL по адресу:",\
    #       'http://%s:%s%s?wsdl' % (IS['adr'], IS['port'], url))
    errMsg = smev.get_wsdl(IS, url)
    if errMsg:
        print(errMsg)
        terr += 1
    # Перебираем всех тестовых родителей
    shablon = open('Шаблоны/Request_1005.xml', mode='r',
                   encoding='utf-8').read()
    for parent in Parents:
        req = smev.change(shablon, parent)
        req = smev.change(req, IS)
        print("Отправляем запрос на гражданина: %s (%s)" %
              (parent['famil'], parent['test']))
        # возвращает XML от сервера
        result = service_1005(req, IS, parent['test'])
        # пытаемся напечатать ответ в понятном виде
        if result:
            if parent['md5']:
                err = smev.check(result, parent['test'], parent['md5'])
                if err > 0:
                    print(
                        'Ошибка!!! Не совпадает контрольная суммму блока smev:MessageData.'
                    )
            else:
                print('****************************')
                print_1005(result)
                print('****************************')
        else:
            print("ОШИБКА! Ответ не получен")
            err = 1
        terr += err
    post = {
        "date":
        datetime.datetime.now(),
        "name":
        "Тестирование 1005 сервиса",
        "comment":
        IS['comment'],
        "version":
        IS['version'],
        "data": {
            "Итого": time.time() - start
        },
        "errors":
        terr,
        "address":
        'http://%s:%s%sSMEV/Transport.ashx' %
        (IS['adr'], IS['port'], IS['url'])
    }
    print("Все запросы и ответы сохранены в папке Результаты")
    return post