import datetime as dt
import re

# Add the utilities to the path for import
import sys

util_path = r'H:\My Documents\GitHub\wtso-test-repository\utilities'
sys.path.append(util_path)

# Import required elements from utilities

import testlogger as tl
import ordersheetutil as osu

# Create logger for script
logger = tl.TestWriter()
process = "Test Execution B2B3PL- for B2B3PL-648. Lock specific admin columns in Order Sheet"

# parameter file path
parameter_path = 'H:\My Documents\GitHub\wtso-test-repository\PartnerTrackerTest\Initial Input Parameters.txt'
pid = None


def setup_order_book(path):
    global pid
    book = osu.excelBook(path, pid)
    book.open_xl_sheet()
    book.set_tracker_tab()
    book.rebuild_partner_tracker()
    return book
示例#2
0
def test5():
    #setup parameters
    ticket_id = 'B2B3PL-1405'
    test_description = 'Check that the refresh all sheets button refreshes the all of the sheet tabs correctly when values in the database have been changed'
    expected_result = 'The data in the ordersheet is the same as the data inside the database'

    #setup first ordersheet
    book_a_test_5 = setup_order_sheet(parameter_path)
    global pid
    pid = book_a_test_5.process_id
    ordersheet_column_metakey_number_list = get_metakey_col_numbers(
        ordersheet_column_metakey_list)  #may need to change

    #setup second ordersheet
    book_b_test_5 = open_second_order_sheet_test_4()

    #activate first ordersheet and input the values into TS2 Tab1
    xw.apps[book_a_test_5.process_id].books
    insert_data_into_existing_rows(
        book_a_test_5.order_sheet.sheets[
            book_a_test_5.excel_book_parameters['OrderSheet Tabs'][0]],
        ordersheet_column_metakey_list)

    #Create dictionary for TS1 Tab1 on the first sheet
    TS1_Tab1_first_sheet_values = generate_dictionary_for_all_db_status_rows(
        ordersheet_column_metakey_number_list,
        book_a_test_5.order_sheet.sheets[
            book_a_test_5.excel_book_parameters['OrderSheet Tabs'][0]])

    #input the values into TS2 Tab2
    insert_data_into_existing_rows(
        book_a_test_5.order_sheet.sheets[
            book_a_test_5.excel_book_parameters['OrderSheet Tabs'][1]],
        ordersheet_column_metakey_list)
    tab_stay = True
    while tab_stay:
        try:
            book_a_test_5.order_sheet.sheets[
                book_a_test_5.excel_book_parameters['OrderSheet Tabs']
                [1]].activate()
            tab_stay = False
        except:
            print("attempting to change tabs")
    tab_stay = True
    #Create dictionary for TS1 Tab2 for the first sheet
    TS1_Tab2_first_sheet_values = generate_dictionary_for_all_db_status_rows(
        ordersheet_column_metakey_number_list,
        book_a_test_5.order_sheet.sheets[
            book_a_test_5.excel_book_parameters['OrderSheet Tabs'][1]])

    #refresh the second ordersheet
    xw.apps[book_b_test_5.process_id].books
    book_b_test_5.refresh_all_sheets()

    #Create dictionary for TS1 Tab1 for the second sheet
    TS1_Tab1_second_sheet_values = generate_dictionary_for_all_db_status_rows(
        ordersheet_column_metakey_number_list,
        book_b_test_5.order_sheet.sheets[
            book_b_test_5.excel_book_parameters['OrderSheet Tabs'][0]])

    #Create dictionary for TS1 Tab2 for the second sheet
    while tab_stay:
        try:
            book_b_test_5.order_sheet.sheets[
                book_b_test_5.excel_book_parameters['OrderSheet Tabs']
                [1]].activate()
            tab_stay = False
        except:
            print("attempting to change tabs")
    TS1_Tab2_second_sheet_values = generate_dictionary_for_all_db_status_rows(
        ordersheet_column_metakey_number_list,
        book_b_test_5.order_sheet.sheets[
            book_b_test_5.excel_book_parameters['OrderSheet Tabs'][1]])

    #Check dictionaries are equal
    if (TS1_Tab1_first_sheet_values == TS1_Tab1_second_sheet_values
            and TS1_Tab2_first_sheet_values == TS1_Tab2_second_sheet_values):
        test_status = 1
        actual_result = 'The refresh all sheets functionality has retrieved the correct data from the database'
    else:
        test_status = 0
        actual_result = 'The refresh all sheets functionality has not retrieved the correct data from the database'

    logger = tl.TestWriter()
    #Write the test to the database
    logger.write_result(ticket_id, test_description, expected_result,
                        actual_result, test_status)

    #Close the second ordersheet
    book_b_test_5.order_sheet.close()

    #Close the first ordersheet
    xw.apps[book_a_test_5.process_id].books
    book_a_test_5.order_sheet.close()