From 654086aee130002d027b2ade5879d3046eacd519 Mon Sep 17 00:00:00 2001 From: atthaboons Date: Tue, 26 May 2020 17:27:08 +0700 Subject: [PATCH] Clean up example script --- Examples/BasicDataDrivenExample.robot | 5 ++--- .../CustomExcelParser/CustomExcelParser.py | 8 ++++---- Examples/CustomParserExample.robot | 6 +++--- Examples/MergedSummaryReportExample.robot | 5 ++--- Examples/Parse_Product_Removal_Activity.robot | 12 ------------ Examples/SeleniumDataDrivenExample.robot | 2 +- Examples/test_data/BasicDemoData.xlsx | Bin 13180 -> 13089 bytes Examples/test_data/Custom_Template.xlsx | Bin 10781 -> 10868 bytes .../Product_Removal_Activity_Template.xlsx | Bin 10052 -> 0 bytes 9 files changed, 12 insertions(+), 26 deletions(-) delete mode 100644 Examples/Parse_Product_Removal_Activity.robot delete mode 100644 Examples/test_data/Product_Removal_Activity_Template.xlsx diff --git a/Examples/BasicDataDrivenExample.robot b/Examples/BasicDataDrivenExample.robot index f614afa..ccaf6d0 100644 --- a/Examples/BasicDataDrivenExample.robot +++ b/Examples/BasicDataDrivenExample.robot @@ -1,5 +1,5 @@ *** Setting *** -Library ExcelDataDriver ./test_data/BasicDemoData.xlsx capture_screenshot=Skip +Library ExcelDataDriver ./test_data/BasicDemoData.xlsx capture_screenshot=Skip main_column_key=username Test Template Validate user data template *** Test Cases *** @@ -11,5 +11,4 @@ Validate user data template Log ${username} Log ${password} Log ${email} - Should Be True '${password}' != '${None}' - # Should Match Regexp ${email} [A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,} + Should Not Be Equal ${password} ${None} diff --git a/Examples/CustomExcelParser/CustomExcelParser.py b/Examples/CustomExcelParser/CustomExcelParser.py index 97a30e0..ecd2916 100644 --- a/Examples/CustomExcelParser/CustomExcelParser.py +++ b/Examples/CustomExcelParser/CustomExcelParser.py @@ -6,11 +6,11 @@ class CustomExcelParser(ABCParserStrategy): - def __init__(self): - ABCParserStrategy.__init__(self) + def __init__(self, main_column_key=None): + ABCParserStrategy.__init__(self, main_column_key) print('Using CustomExcelParser') - self.maximum_column_index_row = 3 - self.start_row = 1 + self.maximum_column_index_row = 2 + self.start_row = 3 def parsing_column_indexs(self, ws): ''' diff --git a/Examples/CustomParserExample.robot b/Examples/CustomParserExample.robot index 127548b..8265d72 100644 --- a/Examples/CustomParserExample.robot +++ b/Examples/CustomParserExample.robot @@ -1,12 +1,12 @@ *** Setting *** -Library CustomExcelParser/CustomExcelParser.py -Library ExcelDataDriver ./test_data/Custom_Template.xlsx custom_parser=CustomExcelParser capture_screenshot=OnFailed +Library CustomExcelParser/CustomExcelParser.py +Library ExcelDataDriver ./test_data/Custom_Template.xlsx main_column_key=sku custom_parser=CustomExcelParser capture_screenshot=OnFailed Test Template Demo template *** Test Cases *** Product promo price update for SKU '${sku}' ${None} ${None} ${None} ${None} ${None} ${None} ${None} ${None} ${None} - + *** Keywords *** Demo template [Arguments] ${sku} ${normal price} ${normal cost in vat} ${normal cost ex vat} ${normal cost gp} ${promotion price} ${promotion cost in vat} ${promotion cost ex vat} ${promotion cost gp} diff --git a/Examples/MergedSummaryReportExample.robot b/Examples/MergedSummaryReportExample.robot index 217fe4c..e41a52b 100644 --- a/Examples/MergedSummaryReportExample.robot +++ b/Examples/MergedSummaryReportExample.robot @@ -1,12 +1,11 @@ *** Setting *** Library String Library Collections -Library OperatingSystem -Library SeleniumLibrary +Library OperatingSystem Library ./CustomExcelParser/CustomExcelParser.py Library ExcelDataDriver manually_test=${True} *** Tasks *** Summary_test_result - Merged Excel Report CustomExcelParser + Merged Excel Report sku CustomExcelParser diff --git a/Examples/Parse_Product_Removal_Activity.robot b/Examples/Parse_Product_Removal_Activity.robot deleted file mode 100644 index 2abe609..0000000 --- a/Examples/Parse_Product_Removal_Activity.robot +++ /dev/null @@ -1,12 +0,0 @@ -*** Settings *** -Library ExcelDataDriver ./test_data/Product_Removal_Activity_Template.xlsx main_column_key=product_code capture_screenshot=Skip -Test Template Validate user data template - -*** Test Cases *** -Verify valid user '${product_code}' ${None} ${None} - -*** Keywords *** -Validate user data template - [Arguments] ${plan} ${product_code} - Log ${plan} - Log ${product_code} \ No newline at end of file diff --git a/Examples/SeleniumDataDrivenExample.robot b/Examples/SeleniumDataDrivenExample.robot index 29523ac..4ec6715 100644 --- a/Examples/SeleniumDataDrivenExample.robot +++ b/Examples/SeleniumDataDrivenExample.robot @@ -1,6 +1,6 @@ *** Setting *** Library SeleniumLibrary -Library ExcelDataDriver ./test_data/DefaultDemoData.xlsx capture_screenshot_when_fail_only=${True} +Library ExcelDataDriver ./test_data/DefaultDemoData.xlsx main_column_key=username capture_screenshot=OnFailed Test Template Invalid login Suite Teardown Close All Browsers diff --git a/Examples/test_data/BasicDemoData.xlsx b/Examples/test_data/BasicDemoData.xlsx index 5c4b1a198fd232b17b3285b74231894d4ddd70ac..c611aabd69f653178a6f19f0537b1459654b9f40 100644 GIT binary patch delta 1780 zcmVotft+GXjucELdcpbSjw%{wUW`iD;ZODW!V_}R!w<>4hWHa4~8fT zp0Pw^ea#wm0FkVs3g~wwZ@USt&fWu8Q@QI~GZS?S5O=)d>R|*$Mx8~QZ6hSTt3dWZ zJY$e>`S2$gZuWl^30!YN)jX4;6NNefXzM`wjedeHLSCg{c$ zF7}Wle+GZSA6_r_qw|L6s)Q3E!Jz!G_l5Co35<#F=}oA%W)`DIXSEJo+YL;|bFt~J z!_++U6W2_GG+icSl{(>iWMutDX`B~8ZL~%+*7#D-5CVfq+cC|^kdcldH#yOotm(Ck zRvFY(8+~xBwW!!7|H+_qMU2kI^K4M(om$Mn8of&7K$f`pEWn{_;?(g>cNW^_%yn#Y z2_T|Ft$?3kICQ!u7tlwr(5xPhk{vOAe*_i=Y0W zY`0fn)`u{4pUjGnl*$|$6b#!FU$f@C1Pb^yDh4MF(p!=Dc0I8|?X|Y;hpvYJZsZ54 zc=h%C$638ogjBYQu=a}Bo=kn@2S3roXH8hono}EL_h)M0PHPa>i@|3+e+|xxuwE3O zFc_ZoVD0rnJ49~eh2X=6O0{M>+mF)ZbZKrYm=Z-6bHPsroGd`ghUj|=&4BoEnV>!z zyVT&=gbafj35|1HOy;74$aSl=VUTg1yf zVmcrkNY0QU=*Z_Yq`|s*e|2N)l&!{sWGqO>f~*%@qC@T|ya$j`cpU;-dPq_9I6SE4 z^WkamO?YELG8Uv`LDmbd!b79*9zaIn-6Jk3x~U#y;Q8=0_$IuuAQ=nNu^{UOSK*Bg z$$G2<_qVqDqhfV;Z+CL{9}N{HtKZ<>9QNHXc!9EunI0$NwSW#Ee}+qvuG}<scnIt*UR_@Mb0xNSgjQl=l~8a%FBzK8_KnX zN2?83UxAAPNjb_*fp*>-im~H6kjy2)p@O*4Rx%%se|C!v;~#7bI3r|+C3q&7XSfB% zW+0*?Qt$z3K5g9r1jkT=1mzu0lNA4WJy_}fywE8lr>y+Jgign}W47SEIJoz&8jMZT zB+aCY5%Q<_b@lMnRgEjv?ur8{bHORMz`V94^M1$PwN^PEP1_CD%=uMV_ND@Hdl(zf z#X#%|MD$n?QHVtQ0w?8Va(BO8qB0}tJSNka+^kbV$u&*qZ|&Q^?za*9fjlPomza^5 zT*cXJP3Ckup;Iy<{X0000000000000000N4wYPYfE9#xW3+l`$Ftqm!^P zKmj6?@i9690Fx{-K>;X}ZZc2-U6a2uIvk_}iycY<003hG000pH000000000000000 Wr7DvZGd%$&lT$Mz2IVgR0001jAV-q` delta 1871 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 diff --git a/Examples/test_data/Product_Removal_Activity_Template.xlsx b/Examples/test_data/Product_Removal_Activity_Template.xlsx deleted file mode 100644 index ff92c74967d8b736a87d637b73fd65654023833f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10052 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 Juw*}<{vTpEJ0Ji6