Esempio n. 1
0
def list_department():
    result = []
    all_departments = session.query(ModelDepartment).all()
    for dept in all_departments:
        result.append({'id': dept.id, 'name': dept.name})
    logger.write_file("DS Phòng ban", result)
    return result
def list_author():
    result = []
    all_authors = session.query(ModelAuthor).all()
    for author in all_authors:
        result.append({'id': author.id, 'name': author.name})
    logger.write_file("DS Tác giả", result)
    return result
Esempio n. 3
0
def find_employee(field, value):
    logger.write_file("Tìm nhân viên",
                      f"Theo '{field}' với giá trị '{value}''")
    result = []
    # ['name', 'title', 'id']
    if field == 'name':
        all_employees = session.query(ModelEmployee).filter(
            ModelEmployee.name.like(f'%{value}%')).all()
    elif field == 'title':
        all_employees = session.query(ModelEmployee).filter(
            ModelEmployee.title.like(f'%{value}%')).all()
    elif field == 'id':
        all_employees = session.query(ModelEmployee).filter_by(id=value).all()
    for employee in all_employees:
        department = session.query(ModelDepartment).filter_by(
            id=employee.department_id).first()
        result.append({
            'id': employee.id,
            'name': employee.name,
            'title': employee.title,
            'age': employee.age,
            'address': employee.address,
            'department': department.name
        })
    return result
Esempio n. 4
0
def add_new_employee(new_employee):
    print(f"Chọn phòng ban cho nhân viên {new_employee.name}")
    for item in list_department():
        print(f"\t {item['id']}: {item['name']}")
    department_id = int(input("Select: "))
    new_employee.department_id = department_id
    logger.write_file("Thêm Nhân viên", new_employee)
    session.add(new_employee)
    session.commit()
def add_new_book(new_book):
    print(f"Chọn tác giả cho sách {new_book.name}")
    for item in list_author():
        print(f"\t {item['id']}: {item['name']}")
    author_id = int(input("Select: "))
    new_book.author_id = author_id
    logger.write_file("Thêm Sách", new_book)
    session.add(new_book)
    session.commit()
def list_author_and_count_book():
    result = []
    all_authors = session.query(ModelAuthor).all()
    for author in all_authors:
        result.append({
            'id': author.id,
            'name': author.name,
            'count_book': author.books.count()
        })
    logger.write_file("DS Tác giả với số Sách", result)
    return result
Esempio n. 7
0
def adb_ui_voice_message(device, debug=False, log_file=os.path.join('log', 'log.csv')):
    device.open.notification()
    if device(text='New voicemail', className='android.widget.TextView').exists:
        if debug:
            print("Mensaje de voz encontrado")
            write_file(log_file, ['result'], {'result': "Mensaje de voz encontrado"})
    else:
        if debug:
            print("No se encontro mensaje de voz")
            write_file(log_file, ['result'], {'result': "No se encontro mensaje de voz"})
    device.press.home()
Esempio n. 8
0
def list_department_and_count_employee():
    result = []
    all_departments = session.query(ModelDepartment).all()
    for dept in all_departments:
        result.append({
            'id': dept.id,
            'name': dept.name,
            'count_emp': dept.employees.count()
        })
    logger.write_file("DS Phòng ban với số Nhân viên", result)
    return result
def list_book():
    result = []
    all_books = session.query(ModelBook).all()
    for book in all_books:
        author = session.query(ModelAuthor).filter_by(
            id=book.author_id).first()
        result.append({
            'id': book.id,
            'name': book.name,
            'category': book.category,
            'price': book.price,
            'author': author.name
        })
    logger.write_file("DS Sach", result)
    return result
Esempio n. 10
0
def list_employee():
    result = []
    all_employees = session.query(ModelEmployee).all()
    for employee in all_employees:
        department = session.query(ModelDepartment).filter_by(
            id=employee.department_id).first()
        result.append({
            'id': employee.id,
            'name': employee.name,
            'title': employee.title,
            'age': employee.age,
            'address': employee.address,
            'department': department.name
        })
    logger.write_file("DS Nhân viên", result)
    return result
Esempio n. 11
0
def main():
    log_file = os.path.join(
        'log',
        str(datetime.now().strftime("%d%m%Y %H%M%S")) + '.csv')
    log_result = log_file[0:-4] + ' result.csv'
    create_file(log_result, ['result'])
    fieldnames = [
        'test', 'function', 'description', 'automated', 'parameters',
        'expected result', 'begin', 'end'
    ]
    create_file(log_file, fieldnames)
    i = 0
    print('inicio ' + str(datetime.now().strftime("%d/%m/%Y %H:%M:%S")))
    for case in data:
        begin = str(datetime.now().strftime("%d/%m/%Y %H:%M:%S"))
        if case['automated'] == 'True':
            try:
                print i
                print case['function']
                if case['function'] == 'read_devices':
                    test_read_devices(case, log_result)
                elif case['function'] == 'read_device':
                    test_read_device(case, log_result)
                elif case['function'] == 'adb_call':
                    test_adb_call(case, log_result)
                elif case['function'] == 'adb_ui_call':
                    test_adb_ui_call(case, log_result)
                elif case['function'] == 'adb_ui_wifi':
                    test_adb_ui_wifi(case, log_result)
                elif case['function'] == 'adb_ui_calculator':
                    test_adb_ui_calculator(case, log_result)
                elif case['function'] == 'test_adb_ui_voice_message':
                    test_adb_ui_voice_message(case, log_result)
            except Exception as ex:
                print ex
        else:
            write_file(log_result, ['result'], {'result': 'NA'})
        end = str(datetime.now().strftime("%d/%m/%Y %H:%M:%S"))
        i += 1
        test_number = str(i)
        while len(test_number) < 3:
            test_number = '0' + test_number
        case['test'] = 'TC' + test_number
        case['begin'] = begin
        case['end'] = end
        write_file(log_file, fieldnames, case)
    print('fin ' + str(datetime.now().strftime("%d/%m/%Y %H:%M:%S")))
Esempio n. 12
0
def read_devices(debug=False, log_file=os.path.join('log', 'log.csv')):
    s = ''
    serials = []
    output = check_output(['adb', 'devices']).splitlines()
    if len(output) == 2:
        if debug:
            write_file(log_file, ['result'],
                       {'result': 'No se encontro ningun dispositivo'})
        raise ValueError('No se encontro ningun dispositivo')
    for i in range(1, len(output) - 1):
        serials.append(output[i].split()[0])
        if debug:
            s += 'Serial {} = {}'.format(i, serials[-1]) + '-'
            print('Serial {} = {}'.format(i, serials[-1]))
    if debug:
        write_file(log_file, ['result'], {'result': s})
    return serials
Esempio n. 13
0
def adb_ui_call(phone_number, seconds, device, debug=False, log_file=os.path.join('log', 'log.csv')):
    for i in range(len(phone_number)):
        if not (phone_number[i] in dict_keyboard_call):
            if debug:
                write_file(log_file, ['result'], {'result': 'Numero de telefono invalido'})
            raise ValueError('Numero de telefono invalido')
    if len(phone_number) == 0:
        if debug:
            write_file(log_file, ['result'], {'result': 'Numero de telefono invalido'})
        raise ValueError('Numero de telefono invalido')
    if debug:
        print ('Llamando a {}'.format(phone_number))
    device(text='Phone', className='android.widget.TextView').click()
    device(text='Keypad', className='android.widget.TextView').click()
    for i in range(len(phone_number)):
        if phone_number[i] == '+':
            device(text='+', className='android.widget.TextView').long_click()
        else:
            device(resourceId='com.samsung.android.dialer:id/{}'.format(dict_keyboard_call[phone_number[i]])).click()
    device(resourceId='com.samsung.android.dialer:id/dialButton').click()
    time.sleep(seconds)
    if device(resourceId='com.samsung.android.incallui:id/disconnect_button').exists and debug:
        if debug:
            write_file(log_file, ['result'], {'result': "Llamada realizada exitosamente"})
        print "Llamada realizada exitosamente"
    device(resourceId='com.samsung.android.incallui:id/disconnect_button').click()
    device.press.home()
Esempio n. 14
0
def adb_ui_wifi(status, device, debug=False, log_file=os.path.join('log', 'log.csv')):
    if not (status in dict_ui_status):
        if debug:
            write_file(log_file, ['result'], {'result': "Valor de estatus invalido"})
        raise ValueError('Valor de estatus invalido')
    device(text='Settings', className='android.widget.TextView').click()
    device(text='Connections', className='android.widget.TextView').click()
    device(text='Wi-Fi', className='android.widget.TextView').click()
    if device(text='Wi-Fi, {}'.format(dict_ui_status[status]), className='android.widget.Switch').exists:
        if debug:
            print ("Estatus de Wifi es {}".format(dict_ui_status[status]))
        device(text='Wi-Fi, {}'.format(dict_ui_status[status]), className='android.widget.Switch').click()
        if device(text='Wi-Fi, {}'.format(dict_ui_status[status ^ 1]), className='android.widget.Switch').exists \
                and debug:
            write_file(log_file, ['result'],
                       {'result': "Estatus de Wifi cambiado a {}".format(dict_ui_status[(status ^ 1)])})
            print ("Estatus de Wifi cambiado a {}".format(dict_ui_status[(status ^ 1)]))
    else:
        if debug:
            write_file(log_file, ['result'],
                       {'result': "Wifi se encuentra {0} - No es necesario Turn {0}".format(
                           dict_ui_status[status ^ 1])})
        device.press.home()
        raise ValueError("Wifi se encuentra {0} - No es necesario Turn {0}".format(dict_ui_status[status ^ 1]))
    device.press.home()
Esempio n. 15
0
def adb_call(phone_number,
             seconds,
             serial,
             debug=False,
             log_file=os.path.join('log', 'log.csv')):
    for i in range(len(phone_number)):
        if not (phone_number[i] in dict_keyboard_call):
            if debug:
                write_file(log_file, ['result'],
                           {'result': 'Numero de telefono invalido'})
            raise ValueError('Numero de telefono invalido')
    if len(phone_number):
        if debug:
            write_file(log_file, ['result'],
                       {'result': 'Numero de telefono invalido'})
        raise ValueError('Numero de telefono invalido')
    if debug:
        print('Llamando a {}'.format(phone_number))
    check_call([
        'adb', '-s', serial, 'shell', 'am', 'start', '-a',
        'android.intent.action.CALL', '-d', 'tel:{}'.format(phone_number)
    ])
    time.sleep(seconds)
    check_call(
        ['adb', '-s', serial, 'shell', 'input', 'keyevent', 'KEYCODE_ENDCALL'])
    check_call(
        ['adb', '-s', serial, 'shell', 'input', 'keyevent', 'KEYCODE_HOME'])
    if debug:
        print('Llamada realizada exitosamente a {}'.format(phone_number))
        write_file(log_file, ['result'], {
            'result':
            'Llamada realizada exitosamente a {}'.format(phone_number)
        })
Esempio n. 16
0
def find_book(field, value):
    logger.write_file("Tìm sách", f"Theo '{field}' với giá trị '{value}''")
    result = []
    # ['name', 'category', 'id']
    if field == 'name':
        found_book = session.query(ModelBook).filter(
            ModelBook.name.like(f'%{value}%')).all()
    elif field == 'category':
        found_book = session.query(ModelBook).filter_by(category=value).all()
    elif field == 'id':
        found_book = session.query(ModelBook).filter_by(id=value).all()
    for book in found_book:
        author = session.query(ModelAuthor).filter_by(
            id=book.author_id).first()
        result.append({
            'id': book.id,
            'name': book.name,
            'category': book.category,
            'price': book.price,
            'author': author.name
        })
    return result
Esempio n. 17
0
def request(flow: mitmproxy.http.HTTPFlow):
    """
        The full HTTP request has been read.
    """
    global log_file
    host = checker.check_host(flow)
    if host:
        if checker.check_TLS(flow):
            logger.write(log_file, \
                "[TLS] " + flow.request.pretty_url)

    if "test.xxx" in flow.request.host:
        flow.kill()

    # csrf
    global access_token
    target = "fb_access_token="
    if target in flow.request.pretty_url:
        if "longming" in flow.request.headers.keys():
            # access_token = csrf.extract_code(flow, target)
            access_token = flow.request.pretty_url
            logger.write_info(log_file, "[TOKEN] " + access_token)
            assert access_token
            logger.write_file("RAM/access_token", access_token)
            flow.kill()
        else:
            l = os.listdir('RAM')
            while not l:
                time.sleep(1)
                l = os.listdir('RAM')
            logger.write_info(
                log_file, "[ORIGIN TOKEN] " + csrf.extract_code(flow, target))
            with open('RAM/' + l[0], 'r+') as f:
                access_token = f.readlines()[0]
            logger.write_info(log_file, "[CHANGE TOKEN] " + access_token)
            assert access_token
            # assert csrf.csrf_request(flow, target, access_token)
            flow.request.url = access_token
Esempio n. 18
0
def read_device(j=1, debug=False, log_file=os.path.join('log', 'log.csv')):
    i = int(j)
    if i < 1:
        if debug:
            write_file(
                log_file, ['result'],
                {'result': 'Valor invalido, i debe ser mayor a 1 y entero'})
        raise ValueError('Valor invalido, i debe ser mayor a 0 y entero')
    if len(check_output(['adb', 'devices']).splitlines()) == 2:
        if debug:
            write_file(log_file, ['result'],
                       {'result': 'No se encontro ningun dispositivo'})
        raise ValueError('No se encontro ningun dispositivo')
    output = check_output(['adb', 'devices']).splitlines()[i]
    serial = output.split()[0]
    if debug:
        write_file(log_file, ['result'],
                   {'result': 'Serial = {}'.format(serial)})
        print('Serial = {}'.format(serial))
    return serial
Esempio n. 19
0
def adb_ui_calculator(operand1, operator, operand2, device,
                      debug=False, log_file=os.path.join('log', 'log.csv')):
    if not (operator in set_operators):
        if debug:
            write_file(log_file, ['result'], {'result': 'Operador invalido'})
        raise ValueError('Operador invalido')
    try:
        i = 1
        _operand1 = float(operand1)
        i = 2
        _operand2 = float(operand2)
    except Exception as ex:
        if debug:
            write_file(log_file, ['result'], {'result': 'El valor del operando {} no es valido'.format(i)})
        raise ValueError('El valor del operando {} no es valido'.format(i))
    if operator == '/' and _operand2 < 1e-6:
        if debug:
            write_file(log_file, ['result'], {'result': 'No se puede dividir entre 0'})
        raise ValueError('No se puede dividir entre 0')
    device(text='Calculator', className='android.widget.TextView').click()
    str_operand1 = str(_operand1)
    str_operand2 = str(_operand2)
    negative = False
    for i in range(len(str_operand1)):
        if str_operand1[i] == '-':
            negative = True
            device(resourceId='com.sec.android.app.popupcalculator:id/calc_keypad_btn_{}'
                   .format(dict_keyboard_calculator['('])).click()
            device(resourceId='com.sec.android.app.popupcalculator:id/calc_keypad_btn_{}'
                   .format(dict_keyboard_calculator['-'])).click()
        else:
            device(text=str_operand1[i], className='android.widget.Button').click()
    if negative:
        device(resourceId='com.sec.android.app.popupcalculator:id/calc_keypad_btn_{}'
               .format(dict_keyboard_calculator[')'])).click()
    device(resourceId='com.sec.android.app.popupcalculator:id/calc_keypad_btn_{}'
           .format(dict_keyboard_calculator[operator])).click()
    negative = False
    for i in range(len(str_operand2)):
        if str_operand1[i] == '-':
            negative = True
            device(resourceId='com.sec.android.app.popupcalculator:id/calc_keypad_btn_{}'
                   .format(dict_keyboard_calculator['('])).click()
            device(resourceId='com.sec.android.app.popupcalculator:id/calc_keypad_btn_{}'
                   .format(dict_keyboard_calculator['-'])).click()
        else:
            device(text=str_operand2[i], className='android.widget.Button').click()
    if negative:
        device(resourceId='com.sec.android.app.popupcalculator:id/calc_keypad_btn_{}'
               .format(dict_keyboard_calculator[')'])).click()
    device(resourceId='com.sec.android.app.popupcalculator:id/calc_keypad_btn_{}'
           .format(dict_keyboard_calculator['='])).click()
    if operator == '+':
        result = _operand1 + _operand2
    elif operator == '-':
        result = _operand1 - _operand2
    elif operator == '*':
        result = _operand1 * _operand2
    elif operator == '/':
        result = _operand1 / _operand2
    data = device(resourceId='com.sec.android.app.popupcalculator:id/calc_edt_formula').info
    text = data['text'].replace(u"\u2212", '-')
    str_ui_result = ''
    for i in range(len(text)):
        if text[i] != ',':
            str_ui_result += text[i]
    float_ui_result = float(str_ui_result)
    if abs(result - float_ui_result) < 1e-6 and debug:
        if debug:
            write_file(log_file, ['result'], {'result': "Resultado correcto de operacion"})
        print "Resultado correcto de operacion"
    else:
        if debug:
            write_file(log_file, ['result'], {'result': "Resultado incorrecto"})
        device.press.home()
        raise ValueError("Resultado incorrecto")
    device.press.home()
Esempio n. 20
0
def add_new_department(new_department):
    logger.write_file("Thêm Phòng ban", new_department)
    session.add(new_department)
    session.commit()
Esempio n. 21
0
def add_new_author(new_author):
    logger.write_file("Thêm Tác giả", new_author)
    session.add(new_author)
    session.commit()