Update iterate_xlsx.py
This commit is contained in:
+188
-158
@@ -8,6 +8,8 @@ working_dir_json = join(working_dir, 'Jsons')
|
|||||||
working_dir_xlsx = join(working_dir, 'XLSX')
|
working_dir_xlsx = join(working_dir, 'XLSX')
|
||||||
working_dir_sorted = join(working_dir, 'Sorted')
|
working_dir_sorted = join(working_dir, 'Sorted')
|
||||||
|
|
||||||
|
os.chdir(working_dir)
|
||||||
|
|
||||||
|
|
||||||
def rename_files(name_to_be_ranamed):
|
def rename_files(name_to_be_ranamed):
|
||||||
"""
|
"""
|
||||||
@@ -61,6 +63,8 @@ def operate_cwd_old(work_on):
|
|||||||
remove_request_trace(name)
|
remove_request_trace(name)
|
||||||
get_service_names(name)
|
get_service_names(name)
|
||||||
replace_service_names(name)
|
replace_service_names(name)
|
||||||
|
if os.path.exists(join(working_dir_json, "service_names.txt")):
|
||||||
|
os.replace(join(working_dir_json, "service_names.txt"), join(working_dir, "service_names.txt"))
|
||||||
parametrize_payload(name)
|
parametrize_payload(name)
|
||||||
if work_on == 'json':
|
if work_on == 'json':
|
||||||
for root, dirs, files in os.walk(working_dir_json, topdown=False):
|
for root, dirs, files in os.walk(working_dir_json, topdown=False):
|
||||||
@@ -99,64 +103,34 @@ def insert_in_nvar(size_to_match, string_to_insert, modified_list):
|
|||||||
modified_list = modified_list + [string_to_insert]
|
modified_list = modified_list + [string_to_insert]
|
||||||
return modified_list
|
return modified_list
|
||||||
|
|
||||||
|
def read_params_from_file(file_name,list_tmp):
|
||||||
|
with open(file_name, 'r') as file:
|
||||||
|
for line in file:
|
||||||
|
line = line.strip('\n')
|
||||||
|
line = f'{line}'
|
||||||
|
list_tmp.append(line)
|
||||||
|
return list_tmp
|
||||||
def replace_var_value(ws, name_working):
|
def replace_var_value(ws, name_working):
|
||||||
"""
|
"""
|
||||||
Parametrazis the excels and json files.
|
Parametrazis the excels and json files.
|
||||||
"""
|
"""
|
||||||
ICCID = ['89470311210210000681', "89470311210210000699", "89470311210210000707", "89470311210210000715",
|
ICCID = []
|
||||||
"89470311210210000723", "89470311210210000731", "89470311210210000749", "89470311210210000756",
|
IMSI = []
|
||||||
"89470311210210000764", "89470311210210000772", "89470311210210000780", "89470311210210000798",
|
order_subsceriber_desc = []
|
||||||
"89470311210210000806", "89470311210210000814", "89470311210210000822", "89470311210210000830",
|
order_subscriber_id = []
|
||||||
"89470311210210000996", "89470000190625003999", "89470000190625003981", "89470000190625003973",
|
|
||||||
"89470000190625003965", "89470000190625003957", "89470000190625003940", "89470000190625003932",
|
|
||||||
"89470000190625003924", "89470000190625003890", "89470000190625003882", "89470000190625003874",
|
|
||||||
"89470000190625003866", "89470000190625003825", "89470000190625003817", "89470000190625003809",
|
|
||||||
"89470000190625003791", "89470311210210000962", "89470311210210000970", "89470311210210000988"]
|
|
||||||
IMSI = ["242013083407751", "242013083407752", "242013083407753", "242013083407754", "242013083407758",
|
|
||||||
"242013083407759", "242013083407760", "242013083407771", "242013083407764", "242013083407765",
|
|
||||||
"242013083407766", "242013083407767", "242013083407768", "242013083407769", "242013083407770",
|
|
||||||
"242013083407771", "242013083407762", "242013083407763", "242013083407757", "242013083407756",
|
|
||||||
"242013083407755", "242013112998926", "242013112998927", "242013112998928", "242013112998929",
|
|
||||||
"242013112998930", "242013112998931", "242013112998932", "242013112998933", "242013112998934",
|
|
||||||
"242013112998935", "242013112998936", "242013112998937", "242013112998938", "242013112998939",
|
|
||||||
"242013112998940", "242013112998941", "242013112998942", "242013112998943", "242013112998944",
|
|
||||||
"242013112998945", "242013112998946", "242013112998947", "242013112998948", "242013112998949",
|
|
||||||
"242013112998962", "242013112998963", "242013112998964", "242013112998965"]
|
|
||||||
order_subsceriber_desc = ["580002010006", "580002010007", "580002010008", "580002010009", "580002010010",
|
|
||||||
"580002010011", "580002010012", "580002010013", "580002010005", "580002010014",
|
|
||||||
"580002010015", "580002010016", "580002010017", "580002010018", "580002010019",
|
|
||||||
"580002010020", "580004217291", "580004217292", "580004217293", "580004217294",
|
|
||||||
"580004217295", "580004217296", "580004217297", "580004217298", "580004217299",
|
|
||||||
"580000001404", "580002150328", "580002150990", "580002150964", "580002150963",
|
|
||||||
"580002150960", "580002150712", "580002150388", "580002150328", "580002150304",
|
|
||||||
"580002150290", "580002150284", "99899862", "99899824", "99899548", "99899499",
|
|
||||||
"99899444", "99898929", "99898689", "99897498", "99897152", "99896844", "580000084347",
|
|
||||||
"580000051184", "580000041302", "580000041274", "580000041270", "580000015006",
|
|
||||||
"580000010850", "580000001404", "580000000972", "580000000304", "99792775", "99749252",
|
|
||||||
"99748432", "99741336", "99723770", "99721033", "99640312", "99628853", "99617374",
|
|
||||||
"99547073", ]
|
|
||||||
order_subscriber_id = ["41147337", "41186302", "41147373", "41135924", "41171632", "41171641", "41171646",
|
|
||||||
"41171647", "41135929", "51547639", "34572037", "34944493", "34174958", "37210572",
|
|
||||||
"43927785", "35019217", "48505103", "38865130", "34723909", "51593973", "46308554",
|
|
||||||
"44838652", "50569389", "44906460", "35178340", "43997935", "41559450", '20929630',
|
|
||||||
'47989748', '48270620', '47988315', '47989812', '48271069', '47987444', '47990536',
|
|
||||||
'47990098', '48270844', '51751826', '51751842', '51751847', '48270280', '29410992',
|
|
||||||
'48207456', '48207305', '48207327', '48537495', '47485638', '51709328', '40737621',
|
|
||||||
'45588396', '50335525', '41713772', '50177158', '46447744', '48643763', '46705964',
|
|
||||||
'45927525', '42647761', '42651740', '42653822', '42648906', '42652680', '42652015',
|
|
||||||
'42994967', '42995459', '42995945', '42995341']
|
|
||||||
service_name = []
|
service_name = []
|
||||||
with open('service_names.txt', 'r') as file:
|
os.chdir(join(working_dir, 'configuration'))
|
||||||
for line in file:
|
order_subsceriber_desc=read_params_from_file('order_subscriber_desc.txt',order_subsceriber_desc)
|
||||||
line = line.strip('\n')
|
order_subscriber_id=read_params_from_file('order_subscriber_id.txt', order_subscriber_id)
|
||||||
line = f'"{line}"'
|
ICCID = read_params_from_file('iccid.txt', ICCID)
|
||||||
service_name.append(line)
|
IMSI = read_params_from_file('imsi.txt', IMSI)
|
||||||
|
service_name = read_params_from_file('service_names.txt', service_name)
|
||||||
system_component_id = ['pcrf_1384193797', "pcrf_1084193793", "RoamingZone", ]
|
system_component_id = ['pcrf_1384193797', "pcrf_1084193793", "RoamingZone", ]
|
||||||
valid_to_date = ['05-09-2022']
|
valid_to_date = ['05-09-2022']
|
||||||
roaming_zone = ['RZ1']
|
roaming_zone = ['RZ1']
|
||||||
|
|
||||||
o_var = order_subsceriber_desc + order_subscriber_id + service_name + system_component_id + valid_to_date + roaming_zone + ICCID + IMSI
|
o_var = order_subsceriber_desc + order_subscriber_id + service_name + system_component_id + valid_to_date + roaming_zone + ICCID + IMSI
|
||||||
|
|
||||||
n_var = []
|
n_var = []
|
||||||
|
|
||||||
n_var = insert_in_nvar(order_subsceriber_desc, '${ORDER_SUBSCRIBER_DESC}', n_var)
|
n_var = insert_in_nvar(order_subsceriber_desc, '${ORDER_SUBSCRIBER_DESC}', n_var)
|
||||||
@@ -187,7 +161,7 @@ def replace_in_json(name_working, o_var, n_var):
|
|||||||
|
|
||||||
def replace_in_xls(ws, old_var, new_var):
|
def replace_in_xls(ws, old_var, new_var):
|
||||||
"""
|
"""
|
||||||
Parametrize the JSON file
|
Parametrize the XLS file
|
||||||
"""
|
"""
|
||||||
if not ws:
|
if not ws:
|
||||||
return
|
return
|
||||||
@@ -313,7 +287,7 @@ def sort_files(work_on):
|
|||||||
Sorts the payload files into Subscribers
|
Sorts the payload files into Subscribers
|
||||||
"""
|
"""
|
||||||
wd = False
|
wd = False
|
||||||
groups = ["PostPaid_CON", "PostPaid_BUS", "PostPaid_SP", "LTE", "PrePaid_SP", "PrePaid", "M2M"]
|
groups = ["PostPaid_CON", "PostPaid_BUS", "PostPaid_SP", "LTE", "PrePaid_SP", "PrePaid", "M2M", "IPT", "VOICETWIN"]
|
||||||
|
|
||||||
if work_on == 'json':
|
if work_on == 'json':
|
||||||
wd = working_dir_json
|
wd = working_dir_json
|
||||||
@@ -327,52 +301,55 @@ def sort_files(work_on):
|
|||||||
os.chdir(wd)
|
os.chdir(wd)
|
||||||
for group in groups:
|
for group in groups:
|
||||||
if re.search(group, name):
|
if re.search(group, name):
|
||||||
os.replace(join(wd, name),
|
try:
|
||||||
join(working_dir_sorted, group, name))
|
os.replace(join(wd, name), join(working_dir_sorted, group, name))
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def give_number_to_files(starting_number):
|
def give_number_to_files(starting_number):
|
||||||
"""
|
"""
|
||||||
Renames files in the current working directory directory to be sorted in order and in create delete pairs
|
Renames files in the current working directory directory to be sorted in order and in create delete pairs
|
||||||
"""
|
"""
|
||||||
i = starting_number
|
|
||||||
|
|
||||||
for root, dirs, files in os.walk(working_dir_sorted, topdown=False):
|
for root, dirs, files in os.walk(working_dir, topdown=False):
|
||||||
file_names = files
|
file_names = files
|
||||||
k = 0
|
k = 0
|
||||||
os.chdir(root)
|
os.chdir(root)
|
||||||
while k < len(file_names) and i < len(file_names) + starting_number:
|
i = starting_number
|
||||||
j = 0
|
if root == working_dir:
|
||||||
while j < len(file_names):
|
while k < len(file_names) and i < len(file_names) + starting_number:
|
||||||
if file_names[k][6:] == file_names[j][6:] and k != j:
|
j = 0
|
||||||
try:
|
while j < len(file_names):
|
||||||
if i < 9:
|
if file_names[k][6:] == file_names[j][6:] and k != j:
|
||||||
os.rename(file_names[k], '000' + str(i) + file_names[k])
|
try:
|
||||||
os.rename(file_names[j], '000' + str(i + 1) + file_names[j])
|
if i < 9:
|
||||||
elif i == 9:
|
os.rename(file_names[k], '000' + str(i) + file_names[k])
|
||||||
os.rename(file_names[k], '000' + str(i) + file_names[k])
|
os.rename(file_names[j], '000' + str(i + 1) + file_names[j])
|
||||||
os.rename(file_names[j], '00' + str(i + 1) + file_names[j])
|
elif i == 9:
|
||||||
else:
|
os.rename(file_names[k], '000' + str(i) + file_names[k])
|
||||||
os.rename(file_names[k], '00' + str(i) + file_names[k])
|
os.rename(file_names[j], '00' + str(i + 1) + file_names[j])
|
||||||
os.rename(file_names[j], '00' + str(i + 1) + file_names[j])
|
else:
|
||||||
i += 2
|
os.rename(file_names[k], '00' + str(i) + file_names[k])
|
||||||
except OSError as err:
|
os.rename(file_names[j], '00' + str(i + 1) + file_names[j])
|
||||||
print(err.errno)
|
i += 2
|
||||||
break
|
except OSError as err:
|
||||||
j += 1
|
print(err)
|
||||||
k += 1
|
break
|
||||||
break
|
j += 1
|
||||||
|
k += 1
|
||||||
|
|
||||||
|
|
||||||
def remove_number_from_files():
|
def remove_number_from_files():
|
||||||
"""
|
"""
|
||||||
Renames files in the current working directory directory to remove the sorting numbers
|
Renames files in the current working directory directory to remove the sorting numbers
|
||||||
"""
|
"""
|
||||||
os.chdir(working_dir_xlsx)
|
os.chdir(working_dir)
|
||||||
file_names = []
|
file_names = []
|
||||||
for root, dirs, files in os.walk(working_dir_xlsx, topdown=False):
|
for root, dirs, files in os.walk(working_dir, topdown=False):
|
||||||
file_names = files
|
file_names = files
|
||||||
break
|
if root == working_dir:
|
||||||
|
break
|
||||||
k = 0
|
k = 0
|
||||||
while k < len(file_names):
|
while k < len(file_names):
|
||||||
if re.match('\d{4}', file_names[k]) is not None:
|
if re.match('\d{4}', file_names[k]) is not None:
|
||||||
@@ -382,7 +359,7 @@ def remove_number_from_files():
|
|||||||
|
|
||||||
def remove_request_trace(name_working):
|
def remove_request_trace(name_working):
|
||||||
"""
|
"""
|
||||||
Removes the request trace parameters from the json files.
|
Removes the request trace part from the json files.
|
||||||
"""
|
"""
|
||||||
with open(join(working_dir_json, name_working), "r") as file:
|
with open(join(working_dir_json, name_working), "r") as file:
|
||||||
f = file.read()
|
f = file.read()
|
||||||
@@ -393,16 +370,53 @@ def remove_request_trace(name_working):
|
|||||||
|
|
||||||
def replace_service_names(name_working):
|
def replace_service_names(name_working):
|
||||||
"""
|
"""
|
||||||
Replaces the Service name value with ${SERVICE_NAME} in all json. Effectivly parametrizing them.
|
Replaces the Service name value with ${SERVICE_NAME} in all json and does the same for other common parameters
|
||||||
"""
|
"""
|
||||||
|
|
||||||
with open(join(working_dir_json, name_working), "r") as file:
|
with open(join(working_dir_json, name_working), "r") as file:
|
||||||
file_string = file.read()
|
file_string = file.read()
|
||||||
service_match = re.search(r'"service":\s{\s*"id":\s"([a-zA-z0-9]*)",\s*"name":\s"([0-9]*)"', file_string)
|
service_match = re.search(r'"service":\s{\s*"id":\s"([a-zA-z0-9]*)",\s*"name":\s"([0-9]*)"', file_string)
|
||||||
if service_match is not None:
|
if service_match is not None:
|
||||||
file_string = re.sub('"service":\s{\s*"id":\s(.*)\s*"name":\s"([0-9]*)"',
|
file_string = re.sub('"service":\s{\s*"id":\s"([a-zA-z0-9]*)",\s*"name":\s"([0-9]*)"',
|
||||||
'"service": {\n "id":"%s",\n "name":"${SERVICE_NAME}"' % (
|
'\t"service": {\n "id":"%s",\n \t"name":"${SERVICE_NAME}"' % (
|
||||||
service_match.group(1)), file_string)
|
service_match.group(1)), file_string)
|
||||||
|
|
||||||
|
service_match = re.search(
|
||||||
|
r'"serviceCharacteristic":\s\[\s*{\s*"name":\s?"116",\s*"value":\s?"([0-9]*)"\s*}\s*]', file_string)
|
||||||
|
if service_match is not None:
|
||||||
|
file_string = re.sub('"serviceCharacteristic":\s\[\s*{\s*"name":\s?"116",\s*"value":\s?"([0-9]*)"',
|
||||||
|
'\t\t"serviceCharacteristic": [{\n\t\t\t\t"name":"116",\n\t\t\t\t"value":"${ORDER_SUBSCRIBER_DESC_NEW}"',
|
||||||
|
file_string)
|
||||||
|
|
||||||
|
service_match = re.search(r'"name":\s?"6407",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
|
if service_match is not None:
|
||||||
|
file_string = re.sub('"name":\s?"6407",\s*"value":\s?"([^"]*)"',
|
||||||
|
'\t\t"name":"6407",\n\t\t\t\t"value":"${MBN_AGREEMENT_ID}"',file_string)
|
||||||
|
|
||||||
|
service_match = re.search(r'"name":\s?"6875",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
|
if service_match is not None:
|
||||||
|
file_string = re.sub('"name":\s?"6875",\s*"value":\s?"([^"]*)"',
|
||||||
|
'\t\t"name":"6875",\n\t\t\t\t"value":"${KURT_ID}"',file_string)
|
||||||
|
|
||||||
|
service_match = re.search(r'"name":\s?"3086",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
|
if service_match is not None:
|
||||||
|
file_string = re.sub('"name":\s?"3086",\s*"value":\s?"([^"]*)"',
|
||||||
|
'\t\t"name":"3086",\n\t\t\t\t"value":"${MBN_FIRST_NAME}"',file_string)
|
||||||
|
|
||||||
|
service_match = re.search(r'"name":\s?"3087",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
|
if service_match is not None:
|
||||||
|
file_string = re.sub('"name":\s?"3087",\s*"value":\s?"([^"]*)"',
|
||||||
|
'\t\t"name":"3087",\n\t\t\t\t"value":"${MBN_SECOND_NAME}"', file_string)
|
||||||
|
|
||||||
|
service_match = re.search(r'"name":\s?"6304",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
|
if service_match is not None:
|
||||||
|
file_string = re.sub('"name":\s?"6304",\s*"value":\s?"([^"]*)"',
|
||||||
|
'\t\t"name":"6304",\n\t\t\t\t"value":"${MBN_EMAIL}"',file_string)
|
||||||
|
|
||||||
|
service_match = re.search(r'"name":\s?"6493",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
|
if service_match is not None:
|
||||||
|
file_string = re.sub('"name":\s?"6493",\s*"value":\s?"([^"]*)"',
|
||||||
|
'\t\t"name":"6493",\n\t\t\t\t"value":"${MBN_FLAG}"', file_string)
|
||||||
with open(join(working_dir_json, name_working), "w") as file:
|
with open(join(working_dir_json, name_working), "w") as file:
|
||||||
file.write(file_string)
|
file.write(file_string)
|
||||||
|
|
||||||
@@ -411,7 +425,7 @@ def get_service_names(file_name):
|
|||||||
"""
|
"""
|
||||||
Reads the service name from the json files and prints them to the screen.
|
Reads the service name from the json files and prints them to the screen.
|
||||||
"""
|
"""
|
||||||
os.chdir(working_dir_json)
|
os.chdir(working_dir)
|
||||||
with open(join(working_dir_json, file_name), "r") as file:
|
with open(join(working_dir_json, file_name), "r") as file:
|
||||||
file_string = file.read()
|
file_string = file.read()
|
||||||
service_match = re.search(r'"service":\s{\s*"id":\s"([a-zA-z0-9]*)",\s*"name":\s"([0-9]*)"', file_string)
|
service_match = re.search(r'"service":\s{\s*"id":\s"([a-zA-z0-9]*)",\s*"name":\s"([0-9]*)"', file_string)
|
||||||
@@ -424,42 +438,42 @@ def get_service_names(file_name):
|
|||||||
|
|
||||||
def parametrize_payload(name_working):
|
def parametrize_payload(name_working):
|
||||||
"""
|
"""
|
||||||
Parametrizes the payload with the default values
|
Parametrizes the payload with the default values for the subscriber it dose not replace the values for the service
|
||||||
"""
|
"""
|
||||||
with open(join(working_dir_json, name_working), "r") as file:
|
with open(join(working_dir_json, name_working), "r") as file:
|
||||||
file_string = file.read()
|
file_string = file.read()
|
||||||
file_string = re.sub('"externalId":\s"([^"]*)"', '"externalId": "${externalId}"', file_string)
|
file_string = re.sub('"externalId":\s?"([^"]*)"', '"externalId": "${externalId}"', file_string)
|
||||||
file_string = re.sub('"orderDate":\s"([^"]*)"', '"orderDate": "${orderDate}"', file_string)
|
file_string = re.sub('"orderDate":\s?"([^"]*)"', '"orderDate": "${orderDate}"', file_string)
|
||||||
file_string = re.sub('"orderType":\s"([^"]*)"', '"orderType": "${orderType}"', file_string)
|
file_string = re.sub('"orderType":\s?"([^"]*)"', '"orderType": "${orderType}"', file_string)
|
||||||
|
|
||||||
match = re.search(r'"AsyncResponse":\s{[\s\S]*"replyToAddress":\s"([^"]*)"', file_string)
|
match = re.search(r'"AsyncResponse":\s??{[\s\S]*"replyToAddress":\s?"([^"]*)"', file_string)
|
||||||
file_string = re.sub(match.group(1), '${AsyncResponse_replyToAddress}', file_string)
|
file_string = re.sub(match.group(1), '${AsyncResponse_replyToAddress}', file_string)
|
||||||
|
|
||||||
match = re.search(r'"WSSec":\s{[\s\S]*"username":\s"([^"]*)"', file_string)
|
match = re.search(r'"WSSec":\s?{[\s\S]*"username":\s?"([^"]*)"', file_string)
|
||||||
file_string = re.sub(match.group(1), '${WSSec_username}', file_string)
|
file_string = re.sub(match.group(1), '${WSSec_username}', file_string)
|
||||||
|
|
||||||
match = re.search(r'"WSSec":\s{[\s\S]*"password":\s"([^"]*)"', file_string)
|
match = re.search(r'"WSSec":\s?{[\s\S]*"password":\s?"([^"]*)"', file_string)
|
||||||
file_string = re.sub(match.group(1), '${WSSec_password}', file_string)
|
file_string = re.sub(match.group(1), '${WSSec_password}', file_string)
|
||||||
|
|
||||||
match = re.search(r'"OMRequestSpec":\s{[\s\S]*"neType":\s"([^"]*)"', file_string)
|
match = re.search(r'"OMRequestSpec":\s?{[\s\S]*"neType":\s?"([^"]*)"', file_string)
|
||||||
file_string = re.sub(match.group(1), '${OMRequestSpec_neType}', file_string)
|
file_string = re.sub(match.group(1), '${OMRequestSpec_neType}', file_string)
|
||||||
|
|
||||||
match = re.search(r'"name":\s"IL_REQ_GROUP",\s*"value":\s"([^"]*)"', file_string)
|
match = re.search(r'"name":\s?"IL_REQ_GROUP",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
file_string = re.sub(match.group(1), '${IL_REQ_GROUP}', file_string)
|
file_string = re.sub(match.group(1), '${IL_REQ_GROUP}', file_string)
|
||||||
|
|
||||||
match = re.search(r'"name":\s"ORDER_SUBSCRIBER_ID",\s*"value":\s"([^"]*)"', file_string)
|
match = re.search(r'"name":\s?"ORDER_SUBSCRIBER_ID",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
file_string = re.sub(match.group(1), '${ORDER_SUBSCRIBER_ID}', file_string)
|
file_string = re.sub(match.group(1), '${ORDER_SUBSCRIBER_ID}', file_string)
|
||||||
|
|
||||||
match = re.search(r'"name":\s"ORDER_SUBSCRIBER_DESC",\s*"value":\s"([^"]*)"', file_string)
|
match = re.search(r'"name":\s?"ORDER_SUBSCRIBER_DESC",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
file_string = re.sub(match.group(1), '${ORDER_SUBSCRIBER_DESC}', file_string)
|
file_string = re.sub(match.group(1), '${ORDER_SUBSCRIBER_DESC}', file_string)
|
||||||
|
|
||||||
match = re.search(r'"name":\s"ORDER_SYS_ID",\s*"value":\s"([^"]*)"', file_string)
|
match = re.search(r'"name":\s?"ORDER_SYS_ID",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
file_string = re.sub(match.group(1), '${ORDER_SYS_ID}', file_string)
|
file_string = re.sub(match.group(1), '${ORDER_SYS_ID}', file_string)
|
||||||
|
|
||||||
match = re.search(r'"name":\s"CASE_ID",\s*"value":\s"([^"]*)"', file_string)
|
match = re.search(r'"name":\s?"CASE_ID",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
file_string = re.sub(match.group(1), '${CASE_ID}', file_string)
|
file_string = re.sub(match.group(1), '${CASE_ID}', file_string)
|
||||||
|
|
||||||
match = re.search(r'"name":\s"ORDER_USER_ID",\s*"value":\s"([^"]*)"', file_string)
|
match = re.search(r'"name":\s?"ORDER_USER_ID",\s*"value":\s?"([^"]*)"', file_string)
|
||||||
file_string = re.sub(match.group(1), '${ORDER_USER_ID}', file_string)
|
file_string = re.sub(match.group(1), '${ORDER_USER_ID}', file_string)
|
||||||
|
|
||||||
with open(join(working_dir_json, name_working), "w") as file:
|
with open(join(working_dir_json, name_working), "w") as file:
|
||||||
@@ -472,14 +486,14 @@ def get_payload(sheet_name, workbook):
|
|||||||
"""
|
"""
|
||||||
ws = workbook[sheet_name]
|
ws = workbook[sheet_name]
|
||||||
i = 3
|
i = 3
|
||||||
os.chdir(working_dir)
|
os.chdir(working_dir_json)
|
||||||
while ws['F' + str(i)].value is not None:
|
while ws['F' + str(i)].value is not None:
|
||||||
match = re.search(
|
match = re.search(
|
||||||
r'[jJ][sS][oO][nN][\s.]?[Rr][eE][Qq][uUeEsStT.]{0,4}:?\s{0,3}([\S\s]*)[Jj][Ss][Oo][Nn][\s.]?[Rr][Ee][Ss][pPoOnNsSeE.]{0,5}:?',
|
r'[jJ][sS][oO][nN][\s.]?[Rr][eE][Qq][uUeEsStT.]{0,4}:?\s{0,3}([\S\s]*)[Jj][Ss][Oo][Nn][\s.]{0,3}[Rr][Ee][Ss][pPoOnNsSeE.]{0,5}:?',
|
||||||
ws['F' + str(i)].value)
|
ws['F' + str(i)].value)
|
||||||
test_name = ws['C' + str(i)].value
|
test_name = ws['C' + str(i)].value
|
||||||
if test_name is None:
|
if test_name is None:
|
||||||
print(f'Name missing for line {i}')
|
print(f'Line {i} Error:{ws["G" + str(i)].value}')
|
||||||
elif match is None:
|
elif match is None:
|
||||||
print(f'Payload missing for line {i}')
|
print(f'Payload missing for line {i}')
|
||||||
else:
|
else:
|
||||||
@@ -488,7 +502,7 @@ def get_payload(sheet_name, workbook):
|
|||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
|
|
||||||
def get_request_id_cfg_file(sheet_name, workbook, open_mode='w'):
|
def get_request_id_cfg_file(sheet_name, workbook):
|
||||||
"""
|
"""
|
||||||
Reads the Dayly report xcel file creates the reqest_ids file for the task generator
|
Reads the Dayly report xcel file creates the reqest_ids file for the task generator
|
||||||
and the cfg file for the excel generator
|
and the cfg file for the excel generator
|
||||||
@@ -499,22 +513,23 @@ def get_request_id_cfg_file(sheet_name, workbook, open_mode='w'):
|
|||||||
request_ids = []
|
request_ids = []
|
||||||
test_cfg = []
|
test_cfg = []
|
||||||
while ws['F' + str(i)].value is not None:
|
while ws['F' + str(i)].value is not None:
|
||||||
match = re.match('[Rr][Ee][Qq][UuEeSsTt]*.?\s?[Ii][Dd][.:]{0,2}\s{0,4}(\d+)', ws['F' + str(i)].value)
|
match = re.match('[Rr][Ee][Qq][UuEeSsTt]*.?\s?[Ii][Dd]\s{0,2}[.:]{0,2}\s{0,4}(\d+)', ws['F' + str(i)].value)
|
||||||
test_name = ws['C' + str(i)].value
|
test_name = ws['C' + str(i)].value
|
||||||
if test_name is None:
|
if test_name is None:
|
||||||
print(f'Name missing for line {i}')
|
print(f'Line {i} Error:{ws["G" + str(i)].value}')
|
||||||
elif match is None:
|
elif match is None:
|
||||||
print(f'Request missing for line {i}')
|
print(f'Request missing for line {i}')
|
||||||
else:
|
else:
|
||||||
request_ids.append(match.group(1))
|
request_ids.append(match.group(1))
|
||||||
test_cfg.append(f'{test_name}')
|
# test_cfg.append(f'{test_name}')
|
||||||
|
test_cfg.append(f'{match.group(1)}=TC_NAME:{test_name},TC_ID:{test_name}')
|
||||||
i += 1
|
i += 1
|
||||||
with open('request_ids.txt', open_mode) as file:
|
with open('request_ids.txt', "a") as file:
|
||||||
temp_string = ''
|
temp_string = ''
|
||||||
for el in request_ids:
|
for el in request_ids:
|
||||||
temp_string += f'{el}\n'
|
temp_string += f'{el}\n'
|
||||||
file.write(temp_string)
|
file.write(temp_string)
|
||||||
with open('cfg_file.txt', open_mode) as file:
|
with open('cfg_file.txt', "a") as file:
|
||||||
temp_string = ''
|
temp_string = ''
|
||||||
for el in test_cfg:
|
for el in test_cfg:
|
||||||
temp_string += f'{el}\n'
|
temp_string += f'{el}\n'
|
||||||
@@ -535,68 +550,60 @@ def load_sheet(workbook):
|
|||||||
return ws
|
return ws
|
||||||
|
|
||||||
|
|
||||||
def operate_cwd(work_on):
|
def operate_workbook(curret_day, last_day):
|
||||||
"""
|
|
||||||
Operates over the files in the given working directory comment and uncomment needed functions
|
|
||||||
returns a list of file names for later sorting
|
|
||||||
Also returns a list of files later use for numbering them
|
|
||||||
"""
|
|
||||||
# JSON
|
|
||||||
|
|
||||||
# XLS
|
|
||||||
for root, dirs, files in os.walk(working_dir_xlsx, topdown=False):
|
|
||||||
if root != working_dir_xlsx:
|
|
||||||
continue
|
|
||||||
for name in files:
|
|
||||||
if name[-4:] == 'xlsx' and work_on == "xlsx":
|
|
||||||
pass
|
|
||||||
workbook = load_workbook(filename=join(root, name))
|
|
||||||
ws = load_sheet(workbook)
|
|
||||||
if not ws:
|
|
||||||
print(f'Failed to load sheet for file {name}')
|
|
||||||
break
|
|
||||||
remove_resp_add_first_four_lines(ws)
|
|
||||||
update_names(ws, name[:-4] + 'json')
|
|
||||||
remove_sri(ws)
|
|
||||||
remove_antics(ws)
|
|
||||||
replace_var_value(ws, name)
|
|
||||||
workbook.save(filename=join(root, name))
|
|
||||||
if name[-4:] == 'json' and work_on == 'json':
|
|
||||||
pass
|
|
||||||
remove_request_trace(name)
|
|
||||||
get_service_names(name)
|
|
||||||
replace_service_names(name)
|
|
||||||
parametrize_payload(name)
|
|
||||||
|
|
||||||
if work_on == 'json':
|
|
||||||
for root, dirs, files in os.walk(working_dir_json, topdown=False):
|
|
||||||
if root != working_dir_json:
|
|
||||||
continue
|
|
||||||
for name in files:
|
|
||||||
if name[-4:] == 'json':
|
|
||||||
replace_var_value(False, name)
|
|
||||||
# print(f"Successfully modified File:{name}")
|
|
||||||
|
|
||||||
|
|
||||||
def operate_workbook():
|
|
||||||
"""
|
"""
|
||||||
Operates the Test Report file, generates cfg file for TAF regression generator,
|
Operates the Test Report file, generates cfg file for TAF regression generator,
|
||||||
service names files later used for parametraization and request ids file used to get request from DB
|
service names files later used for parametraization and request ids file used to get request from DB
|
||||||
"""
|
"""
|
||||||
workbook = load_workbook(join(working_dir, 'Test_Report.xlsx'))
|
workbook = load_workbook(join(working_dir, 'Test_Report.xlsx'))
|
||||||
curret_day = 3
|
with open('request_ids.txt', "w") as file:
|
||||||
last_day = 13
|
pass
|
||||||
|
with open('cfg_file.txt', "w") as file:
|
||||||
|
pass
|
||||||
while curret_day < last_day:
|
while curret_day < last_day:
|
||||||
get_payload(f'Day {curret_day}', workbook)
|
get_payload(f'Day {curret_day}', workbook)
|
||||||
print(f'Payload for Day {curret_day} Finished \n --------------------------------------')
|
print(f'Payload for Day {curret_day} Finished \n --------------------------------------')
|
||||||
get_request_id_cfg_file(f'Day {curret_day}', workbook)
|
get_request_id_cfg_file(f'Day {curret_day}', workbook)
|
||||||
print(f'Request IDS for Day {curret_day} Finished \n --------------------------------------')
|
print(f'Request IDS for Day {curret_day} Finished \n --------------------------------------')
|
||||||
|
check_payload(f'Day {curret_day}', workbook)
|
||||||
curret_day += 1
|
curret_day += 1
|
||||||
|
|
||||||
|
|
||||||
|
def check_payload(sheet_name, workbook):
|
||||||
|
"""
|
||||||
|
checks if the payload have mismatch between test case name and request and if a sheet has duplicate REQ IDs
|
||||||
|
"""
|
||||||
|
ws = workbook[sheet_name]
|
||||||
|
i = 3
|
||||||
|
request_ids_temp = []
|
||||||
|
while ws['F' + str(i)].value is not None:
|
||||||
|
if ws['C' + str(i)].value is not None:
|
||||||
|
create_match_payload = re.search(r'Create', ws['F' + str(i)].value)
|
||||||
|
delete_match_payload = re.search(r'Delete', ws['F' + str(i)].value)
|
||||||
|
create_match_name = re.search(r'Create', ws['C' + str(i)].value)
|
||||||
|
delete_match_name = re.search(r'Delete', ws['C' + str(i)].value)
|
||||||
|
if create_match_name is not None and create_match_payload is None:
|
||||||
|
print(f"error in sheet{sheet_name} line:{i}")
|
||||||
|
if delete_match_name is not None and delete_match_payload is None:
|
||||||
|
print(f"error in sheet{sheet_name} line:{i}")
|
||||||
|
match = re.match('[Rr][Ee][Qq][UuEeSsTt]*.?\s?[Ii][Dd]\s{0,2}[.:]{0,2}\s{0,4}(\d+)', ws['F' + str(i)].value)
|
||||||
|
if match is not None:
|
||||||
|
request_ids_temp.append(match.group(1))
|
||||||
|
i += 1
|
||||||
|
seen = set()
|
||||||
|
dupes = []
|
||||||
|
for x in request_ids_temp:
|
||||||
|
if x in seen:
|
||||||
|
dupes.append(x)
|
||||||
|
else:
|
||||||
|
seen.add(x)
|
||||||
|
if dupes:
|
||||||
|
print(f'{sheet_name} contains these duplicate request ids:{dupes}')
|
||||||
|
|
||||||
|
|
||||||
def init_dir():
|
def init_dir():
|
||||||
"""
|
"""
|
||||||
Creates the necessary files to operated
|
Creates the necessary files and dirs to operate
|
||||||
"""
|
"""
|
||||||
if not os.path.isdir(working_dir_json):
|
if not os.path.isdir(working_dir_json):
|
||||||
os.mkdir(working_dir_json)
|
os.mkdir(working_dir_json)
|
||||||
@@ -604,19 +611,42 @@ def init_dir():
|
|||||||
os.mkdir(working_dir_sorted)
|
os.mkdir(working_dir_sorted)
|
||||||
if not os.path.isdir(working_dir_xlsx):
|
if not os.path.isdir(working_dir_xlsx):
|
||||||
os.mkdir(working_dir_xlsx)
|
os.mkdir(working_dir_xlsx)
|
||||||
l = ['LTE', 'M2M', "PostPaid_BUS", "PostPaid_CON", "PostPaid_SP", "PrePaid", "PrePaid_SP"]
|
l = ['LTE', 'M2M', "PostPaid_BUS", "PostPaid_CON", "PostPaid_SP", "PrePaid", "PrePaid_SP", "IPT"]
|
||||||
for i in l:
|
for i in l:
|
||||||
if not os.path.isdir(join(working_dir_sorted, i)):
|
if not os.path.isdir(join(working_dir_sorted, i)):
|
||||||
os.mkdir(join(working_dir_sorted, i))
|
os.mkdir(join(working_dir_sorted, i))
|
||||||
|
with open(join(working_dir, 'service_names.txt'), 'w') as f:
|
||||||
|
pass
|
||||||
|
with open(join(working_dir, 'cfg_file.txt'), 'w') as f:
|
||||||
|
pass
|
||||||
|
with open(join(working_dir, 'request_ids.txt'), 'w') as f:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def clear_dir():
|
||||||
|
"""
|
||||||
|
Removes the jsons and xlsx's
|
||||||
|
"""
|
||||||
|
l = [working_dir_xlsx, working_dir_json, working_dir_sorted]
|
||||||
|
for top in l:
|
||||||
|
for root, dirs, files in os.walk(top, topdown=False):
|
||||||
|
for name in files:
|
||||||
|
os.remove(os.path.join(root, name))
|
||||||
|
for name in dirs:
|
||||||
|
os.rmdir(os.path.join(root, name))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# TEST REPORT OPERATIONS
|
||||||
# init_dir()
|
# init_dir()
|
||||||
# operate_workbook()
|
|
||||||
|
|
||||||
# operate_cwd('json')
|
# operate_workbook(13,28)
|
||||||
# operate_cwd('xlsx')
|
|
||||||
|
# operate_cwd_old('json')
|
||||||
|
operate_cwd_old('xlsx')
|
||||||
# sort_files('xlsx')
|
# sort_files('xlsx')
|
||||||
# give_number_to_files(2)
|
# give_number_to_files(54)
|
||||||
# sort_files('json')
|
# sort_files('json')
|
||||||
|
|
||||||
|
# clear_dir()
|
||||||
# remove_number_from_files()
|
# remove_number_from_files()
|
||||||
|
|||||||
Reference in New Issue
Block a user