From 3777fac39c369261890b71de88fd7a19e9a5a2cb Mon Sep 17 00:00:00 2001 From: sysuwuhaibin <122128609@qq.com> Date: Sat, 1 Apr 2017 17:51:38 +0800 Subject: [PATCH] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (1)教育版用户管理10个用例和登录注销4个用例 (2)企业版用户管理7个用例和登录注销4个用例 --- vatus/__pycache__/settings.cpython-34.pyc | Bin 0 -> 316 bytes vatus/bussiness_running.py | 56 +++++ vatus/education_running.py | 60 ++++++ vatus/requirements.txt | 2 + vatus/running_cases | 16 ++ vatus/settings.py | 18 ++ .../__pycache__/__init__.cpython-34.pyc | Bin 0 -> 179 bytes .../test_E70_user_login.cpython-34.pyc | Bin 0 -> 3623 bytes ..._modify_password_and_logout.cpython-34.pyc | Bin 0 -> 4087 bytes .../test_E72_reset_password.cpython-34.pyc | Bin 0 -> 3966 bytes ...modify_personal_information.cpython-34.pyc | Bin 0 -> 3013 bytes .../test_E70_user_login.py | 132 ++++++++++++ ...est_E71_user_modify_password_and_logout.py | 152 +++++++++++++ .../test_E72_reset_password.py | 130 +++++++++++ .../test_E73_modify_personal_information.py | 95 ++++++++ .../__pycache__/__init__.cpython-34.pyc | Bin 0 -> 178 bytes ...t_E112_create_administrator.cpython-34.pyc | Bin 0 -> 5653 bytes ...t_E139_delete_administrator.cpython-34.pyc | Bin 0 -> 3541 bytes ...isable_enable_administrator.cpython-34.pyc | Bin 0 -> 4553 bytes .../test_E79_create_staff.cpython-34.pyc | Bin 0 -> 5343 bytes .../test_E81_delete_staff.cpython-34.pyc | Bin 0 -> 3234 bytes ...st_E82_reset_staff_password.cpython-34.pyc | Bin 0 -> 4062 bytes ...odify_the_staff_information.cpython-34.pyc | Bin 0 -> 4221 bytes .../test_E112_create_administrator.py | 202 +++++++++++++++++ .../test_E139_delete_administrator.py | 108 ++++++++++ .../test_E142_disable_enable_administrator.py | 167 ++++++++++++++ .../test_E79_create_staff.py | 197 +++++++++++++++++ .../test_E81_delete_staff.py | 107 +++++++++ .../test_E82_reset_staff_password.py | 147 +++++++++++++ .../test_E83_modify_the_staff_information.py | 136 ++++++++++++ .../__pycache__/__init__.cpython-34.pyc | Bin 0 -> 179 bytes .../test_E70_user_login.cpython-34.pyc | Bin 0 -> 3623 bytes ..._modify_password_and_logout.cpython-34.pyc | Bin 0 -> 4087 bytes .../test_E72_reset_password.cpython-34.pyc | Bin 0 -> 3966 bytes ...modify_personal_information.cpython-34.pyc | Bin 0 -> 3015 bytes .../test_E70_user_login.py | 134 ++++++++++++ ...est_E71_user_modify_password_and_logout.py | 154 +++++++++++++ .../test_E72_reset_password.py | 132 ++++++++++++ .../test_E73_modify_personal_information.py | 97 +++++++++ .../__pycache__/__init__.cpython-34.pyc | Bin 0 -> 178 bytes ...t_E112_create_administrator.cpython-34.pyc | Bin 0 -> 5653 bytes ...t_E139_delete_administrator.cpython-34.pyc | Bin 0 -> 3541 bytes ...isable_enable_administrator.cpython-34.pyc | Bin 0 -> 4553 bytes .../test_E79_create_student.cpython-34.pyc | Bin 0 -> 5355 bytes .../test_E81_delete_student.cpython-34.pyc | Bin 0 -> 3221 bytes ..._E82_reset_student_password.cpython-34.pyc | Bin 0 -> 4078 bytes ...fy_the_students_information.cpython-34.pyc | Bin 0 -> 4268 bytes .../test_E85_create_teacher.cpython-34.pyc | Bin 0 -> 5511 bytes .../test_E87_delete_teacher.cpython-34.pyc | Bin 0 -> 3365 bytes ...fy_the_teachers_information.cpython-34.pyc | Bin 0 -> 4271 bytes ..._E89_disable_enable_teacher.cpython-34.pyc | Bin 0 -> 4379 bytes .../test_E112_create_administrator.py | 204 ++++++++++++++++++ .../test_E139_delete_administrator.py | 110 ++++++++++ .../test_E142_disable_enable_administrator.py | 169 +++++++++++++++ .../test_E79_create_student.py | 199 +++++++++++++++++ .../test_E81_delete_student.py | 106 +++++++++ .../test_E82_reset_student_password.py | 149 +++++++++++++ ...est_E83_modify_the_students_information.py | 138 ++++++++++++ .../test_E85_create_teacher.py | 201 +++++++++++++++++ .../test_E87_delete_teacher.py | 108 ++++++++++ ...est_E88_modify_the_teachers_information.py | 138 ++++++++++++ .../test_E89_disable_enable_teacher.py | 156 ++++++++++++++ 62 files changed, 3920 insertions(+) create mode 100644 vatus/__pycache__/settings.cpython-34.pyc create mode 100644 vatus/bussiness_running.py create mode 100644 vatus/education_running.py create mode 100644 vatus/requirements.txt create mode 100644 vatus/running_cases create mode 100644 vatus/settings.py create mode 100644 vatus/testcases/test_bussiness/test_login_management/__pycache__/__init__.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E70_user_login.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E73_modify_personal_information.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_login_management/test_E70_user_login.py create mode 100644 vatus/testcases/test_bussiness/test_login_management/test_E71_user_modify_password_and_logout.py create mode 100644 vatus/testcases/test_bussiness/test_login_management/test_E72_reset_password.py create mode 100644 vatus/testcases/test_bussiness/test_login_management/test_E73_modify_personal_information.py create mode 100644 vatus/testcases/test_bussiness/test_user_management/__pycache__/__init__.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E112_create_administrator.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E142_disable_enable_administrator.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E79_create_staff.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E81_delete_staff.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E82_reset_staff_password.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E83_modify_the_staff_information.cpython-34.pyc create mode 100644 vatus/testcases/test_bussiness/test_user_management/test_E112_create_administrator.py create mode 100644 vatus/testcases/test_bussiness/test_user_management/test_E139_delete_administrator.py create mode 100644 vatus/testcases/test_bussiness/test_user_management/test_E142_disable_enable_administrator.py create mode 100644 vatus/testcases/test_bussiness/test_user_management/test_E79_create_staff.py create mode 100644 vatus/testcases/test_bussiness/test_user_management/test_E81_delete_staff.py create mode 100644 vatus/testcases/test_bussiness/test_user_management/test_E82_reset_staff_password.py create mode 100644 vatus/testcases/test_bussiness/test_user_management/test_E83_modify_the_staff_information.py create mode 100644 vatus/testcases/test_education/test_login_management/__pycache__/__init__.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_login_management/__pycache__/test_E70_user_login.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_login_management/__pycache__/test_E73_modify_personal_information.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_login_management/test_E70_user_login.py create mode 100644 vatus/testcases/test_education/test_login_management/test_E71_user_modify_password_and_logout.py create mode 100644 vatus/testcases/test_education/test_login_management/test_E72_reset_password.py create mode 100644 vatus/testcases/test_education/test_login_management/test_E73_modify_personal_information.py create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/__init__.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/test_E112_create_administrator.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/test_E142_disable_enable_administrator.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/test_E79_create_student.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/test_E81_delete_student.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/test_E82_reset_student_password.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/test_E83_modify_the_students_information.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/test_E85_create_teacher.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/test_E87_delete_teacher.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/test_E88_modify_the_teachers_information.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/__pycache__/test_E89_disable_enable_teacher.cpython-34.pyc create mode 100644 vatus/testcases/test_education/test_user_management/test_E112_create_administrator.py create mode 100644 vatus/testcases/test_education/test_user_management/test_E139_delete_administrator.py create mode 100644 vatus/testcases/test_education/test_user_management/test_E142_disable_enable_administrator.py create mode 100644 vatus/testcases/test_education/test_user_management/test_E79_create_student.py create mode 100644 vatus/testcases/test_education/test_user_management/test_E81_delete_student.py create mode 100644 vatus/testcases/test_education/test_user_management/test_E82_reset_student_password.py create mode 100644 vatus/testcases/test_education/test_user_management/test_E83_modify_the_students_information.py create mode 100644 vatus/testcases/test_education/test_user_management/test_E85_create_teacher.py create mode 100644 vatus/testcases/test_education/test_user_management/test_E87_delete_teacher.py create mode 100644 vatus/testcases/test_education/test_user_management/test_E88_modify_the_teachers_information.py create mode 100644 vatus/testcases/test_education/test_user_management/test_E89_disable_enable_teacher.py diff --git a/vatus/__pycache__/settings.cpython-34.pyc b/vatus/__pycache__/settings.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c78d036a81c2b56a455e9a52191837f2be1f7f3a GIT binary patch literal 316 zcmZvY%}T>S5XUD?zbt-0AE6+aOF{xxDSj2fqZbjR1j42}Bn!zV?98h5jeH!h!JBs< zz>}*7@z8H%t84e0i*|W*#qgj(TBnVIe_`f z&Z5~o932CX(am7yWzStO^w~o6XqFjTBO^+>kb%+vsM^UBcq{LFavkbFTReh7wJ8@ qG+oMCX+>-VHzs`)Y$+vVR=S|D-E`x#x{o zW#(1o7sUirCTAoT0)ofIriDvyCZSr zw4p(iN<~y^`avsIeW)l@Dyh^55CXOTLZv?4YvTmJls;BGl+NtM=HiBgwh#4r*RwOT zznPt#-5dWFPegy3|K;^RHxu$J@qJXF4@0xwg)ReMN^*p-I!y_qHNHZaQlkTe1!}ZP zm?~+7JGR}uG!Z^o88doix);{PsxGLR4$AD1K9y(UDjgAFLCM5YlG?9T+*bSa6 zj2LE`0s?;U7h!v#S=*t5IFt#|2(c;2DkKYNl*~}clq(%bDSa$CO4|H;9OW?T4d1FAkoz zKyUDzVNMprV1FrnRu}nxQONSN4Q$b^*Umcs>VdEL}Uc%GZK$L&41 zOLG9)6YngR+#q;)x`=iy6*@vAbTTHRvr|gyF$#k)1Wm?h9Z)tQSs5KKG*gsJ{1Gfu za`dg=gHsAA!-gnwmtP__?7oV-j6n?&bE}jFr1VWG4f&)}EgQsyfy{xZQ@LU{&Yd?ss(X1hkuq1ZIRH^?3bp+T?=^T~Hv{W^K- zTwH74x772ZgJibKTwDsim#f?Aa@fLdpB$asByZ5MPVySOFb7i4_Q`j)W|xZGVok$_ z;KPLp7D}HLg*>lrg|`Q5Hq4@9%a@P|ufy87s9V-}L1b9OdvOif=H&Y2synz41>tM} zl*QTW3zu$HKD<1C`||ynd-J#NEZ(?N)2~4-=_f(IGIw$DtMkj01Kr)-4{0|$vU|_o zeftj_eEx-9|B`ZWU3HJDAOBdna}7M&{ovl02lmb1{;+8)?(y~IU{Y@xso=n8@9j#gSF)K2_tVza&6o&Glg-M9EM+w=VTG14V5$_;|9|? zt_ub~Mtam$Z9ZYUF-RaT?A|d)&#{QbVbUlsSs*p?9IBig=S4RRpnLb|MT5nTbNd7@ z4PaE4*y)1FqGwKMJxBUqId$YDi^2RMFntcHC)RSJ_l@2&y?v*SX+WLsXI+hcrJ)Lh zDh>*?f?%DE(wt$AYSK}4%rWd#SVS;B30!j+>RfqdyZ|LI(s(wcK1(7ko3U+0Er{Efr_gl)Jpc<@FCCl UmvN;Q<^?zbPX}!cbe7`uFCQU32><{9 literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc b/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dbb64689ce6a041f2dfb77f06e314e71e48d7a0f GIT binary patch literal 4087 zcmd5<&2Jk;6rWkIKWisxLfWQH3oRV*p%pFt00gKgEu4rdl?pTjtv23qy3T&Mv%7U{ zrBbQ_IRQclaitPM0*RJGg`!;gN5E;XI5fT>aplB&v$nJA7`G~)mS^_udvD(R&6_u~ zZ+DzbesEJcwuUZ`(ds>hK8!gt?D;K6u|fIYjZCxT=76};kxOxT(NMe zS-GkU`;u^Lyy62}_XBSMjaI;IL}`62QlMGxlIdu+?&wS0=8hk6FP=N81z=jUWf%Yx z#K9GYraJ}>aRdKEy&0wf`jvVPqoG1aXr8tvZd75ec*r8G1dzXFW&38~4*MPa)^ z$;xlpRZ1?r*U8>c$SSOvA`{^i;-^SW#YDh>r-^e!N>ft$u9RkCQmF^ z2JbggWEBj7X?TUaLIJ$zWriVDz-$0^ZO?925!0kM1QfHo6(bfX?$`!JFb@_>(xN{` zYU9Kx^bJiA1AO)62x2cWiZNDq2#oK-1(RbBk&jDxViFN+a1s-{6(bfX?u~n#+^ra~ z1{J5IVq&&W#0~uw=+kjS{|fYdkw-|ENn-4m*#qG}Am<1(RiXp})~JZj{I{?VJ|^r$ z5|4^@Vp&EdN7g`Lh(;wcMr*mh<63IAfu@Z_y7Hj7t2Hymz7_QBbw`HC5%)G4UG{0Hr9?Mou z!K>~H%T%rk*XErgP&TkJ)2Ro(tV|rJkyu(cY}4tndqoP%N%qN8&$E0~-Yoh~2kVa3 zm{-@G6Ij_CH=U{*6oJ{^__n>d*}i}Kmz#GxSlzXXfF`FE?D;sw zN)^`uw02i8)qT~Zk%-yZgXmR2bh?8zWUvpq&gb{HHotCfe6;obr|r#;&j60C@4je_ z_uU=mLb!sxhQrRBJ@>+k&pjp;?2o(K{^5h|`|D><_x$ze6!~lQCJ;gIf+*~`X4x(s zOoQ16x9@D<`D*L#hY!BI33F+0tZlE~W0^>$gQa1RLGNp8TkD&h6p-aTABF2^8O0;z*ac_9k$W-E2Go#oVP+EAnjXLwY0Q^1VNTQVB+|67py6dHu#hfl8m2`g5x9Ed z5O%ZJ?KqSaW`e+dfm^}DO;MypwYV;MXy4Z1f~J-8a@T~pz%hM{j=(d7!R687jv3f; r6NS0AKr#oHJvmw&29;1n1H-(AxtAlvui`X4L{p>(=tOGflOp{C_O4aM literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc b/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c976a0b457e77d0ad536f082b2235d6a2e8f34f3 GIT binary patch literal 3966 zcmdTHTW=Iq_{?^1-EJ?mP$(c)1a-kyxyUVQY6|*b(h!ko)|$z5=d{drF55FRwB58? zE&@h~5Fr?YQ6C^+59J*9vq{NOjL?}x`-3k&39iV&3$Pa)|5NrP5}98m;PM7%E%7~t(gzUvw`bzOBx zbE)bxGZErp={t{tCC{)&T;A$Y*HbeZ(=6&y=JJLS>hWk%` z_q)J1c+jx34jbG%nL3~`YcF%sH01$W^L%#@m8QU~gw(Pxf}onth+(UiW@{tVqP8co zd$w;@8KwZdkvZtiO!5#Q_Ge-kd=M6*G%DGSnoRWyj&i;tz=WJ4Uyx(s5t0^}l4+V& z$i(a6DTVBQw?8}`AXBhO0kQKh5f3UNh&zu74iS5epf(8VJAxXnq6)Tj2#W}+33fmM zG59^*K&C(usD__WNr2ytqNI=#!|ezDbW=Slj&&h)Nk%Bp`HT_;j1}FW5!3@?v(V_Z zkaR22p@`8bP}D|rur;3^ucm|Ke0ocn4*FZ`=@ogPw+VVpL=pv#E~!@3Ue72|^BFtp z86^rBmsV?BR?jF=z}Q*MxV)ZGqRNcL%+*A`LP*tQwyUgl3DH;9(^r-0kondBMu*Hj z_6YhKL9fZ|#<;-B;CzL*Z(U>9Az*nT3(6LR0eFHR)b&mX{KYMxZ#O?gG zukxpl6>v82;ff=0%SxZL8{R5gY1O}tSzG+GisHGWZ zwxdMqlb3pL%CUH~>`)kd+4{n^WF+O-5SW#0DFUjN@(jl=G=kY|i<{BxUNqNZ*uzc% zXBOdGVP+~6FlttLzdxXm)7EYC}R%u+d*65@U{H4Z)fkEdT`|D z**o|0SMFu^NY}RS*!le8p+4Om)-hJU7qmaPe*3}wPjVkzES&o#ckfc}!sYHw-MJGt zy0>lZp1u1~;r#dc&yMDa~D3GJ9h%u^Jjm^T|Etc z&;EETci~3v^O#Rd17M_!c$&#+E;xL;H~Z#Arp zX`~F#oK(j(!(&(|yw%bs49mz;b=mGrViQq-ofrsz)b0zIr|>1(UE0(qW(ld75C(q|Dnh=4&R8zaomc z9}bBPW3lBNq^jqX+~Sc8Wtci19PGXx9tKOkisep_ii1ya(6?S#kXEznYp3;xM4PI9-$A$^!(Rdm zPSIk7$A&AKtul}Zh+H##-AX8OFYx`ODy>lu3TU@8ZoiL;uu6%N?VRt6WEn_=c~n)g zC#oussjB7ZzKL*LRk1oGg*Bsz9k}eorD9P)xSI@HFqXNC$0V-AgYhweL;cWfZB&j0`b literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E73_modify_personal_information.cpython-34.pyc b/vatus/testcases/test_bussiness/test_login_management/__pycache__/test_E73_modify_personal_information.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6fb78d72ad4aa49e98bf27aba9f6dca3c5769a52 GIT binary patch literal 3013 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 OjXcE2NOJOTdF|hud;`V+ literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..04e1e5aeb3a25b93985b6f46f5a82ead068e925e GIT binary patch literal 3541 zcmb_f-ESL35Z^tYKaw~fO-P!wr9f!`BNF$E3MyJ!r3LX4RVr1%Npw2jZIW~D!`)jq ziIqr2txypX0tq4D2~dS-AKg+BlZiJ7_hBX+2e!1AqUXJ+T)ceA_W zKl1&(@BQ`L2WQ3@`<=CYOrX!f6IWnx;meuNSgA>KR^ko5!Ab_v2J=%aFj>iD{9QN2 zT$9~`6($p$RnqKcij^`a7#IK$2Kp<3b%7D{>HVyp+1h?P~fr5!*BGS;a@p>(dfhHEnx{=!`*`@r{~wdvDyS7OkcyY7Yc zNX}habCzrwT#`{mI11Rds>O3?)B(2%Wi?|VfmH(oR$zzrq6kE&66VEYC*HJN0>ZM} zk(jEk=`_T9rJ6$sOc)sN;q{4KP@5vXCU#j+O~XUj{R%4;V--Rzfoy}b)qCbTXBXyw zFgFag4zJCiS~$a0id9Uk1q3_I!hv-ZmJ=yOk3bz&L@jhWmZpiV3T!xD9Rs&i3ovPpftT z|JsNAYS-IW#;r`MKMD1oQu3N;5PUYlT7>2QB# zhVCLutyM*=vkRUS3(>01I7>1L#MVJL@AQBdR%?n5+7J$Qou(7D!LHhIyb?)Q=ZJmm z_zB(PM~hx)l~uTf2WBk~!{(PiJ-&T^^XKn3KmT|Ouc2BGa%ukPi?6p*Fe~*ZM>ZKc zdTi(P_|EBxQeRW~=tc<&Db*# z_Q}^z>8ullfI*-Kwh7C2loy3MzkQjY<+%1L1pDNd`&&0YdHm_!hYxN%d~oma?XMo) z`4)&LKYsM+_IF#~+}Zs0R+4mmbWwT=?!(CyPc20?HR%O#TWMb1!b_;WpYWYph-5Gc zZk3GuDPm2=L0gt^MV5+7D)5Wt$XzSC-u2nz^KCy!woN;P$}an&sFsB77L^2I_Sk&U zx68sWlCM_ANv5TqCcO2l|Jf}?jBef8QxtR2hWP5!|H|;m&Maq7%oocwrJ@jw6!yyu zpeXTrmWZds21jS#NlIB_1?tQ+)w3S-f~xO1p7PhM728u1i%<^+_No_nbz!Y|p&PB} z;RX1$pnbrO!YZ#>o~zT2FKnrMVgaIMu@)o8bC$KKJlqtqFGN*ObguNhaM@B~Rp~z1 zC_<`>*J`$}_jT$yK8P(U)$vZ5vKJGHNrnz|${knnC`4-oBYcb}Pe1%759%d!L$+^Q zXN)9!%tSs8vwpIGcE^l7A2g0M*ES?0M#~yd$;_x9zd$YI`5hhP(^GNUTWzGLF}FQ1 zVABR)Xs;nnI(+#|!5~oOX^>P-AOHXW literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E142_disable_enable_administrator.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E142_disable_enable_administrator.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0efe33e7d24aad4069f92b9bf7ed17b190f9e1d2 GIT binary patch literal 4553 zcmds5&2Jk;6rWjtZ5%sE(lZ2&+l^_cm;j>DvlPiQ!Pq{doOIE=jnaWYww!~&E zZZ9%kK+)DmgU&cS!3k&>grvg20HC9xzdShJ@(q!IGb^d&&`FWAIb9x@v;%X-VW&N8 zPg$<**@57u@Ogm(EPn7CeNDg<9EJvxuu6zQh=9pxqzEo3xk8l?ybwUvreya_IS6cz z1%WYR2FxgPCzp`Pa3WF~}n6H>2_p)wvYXZ9V7R7d&M}vH zA{3q;JuzljVLl9|5@MLqj0~4nWCG$oSJE*RacBr_qm{u&CvjMr*Hf8<5eaxyD!%{} zK}b<0G0fl^CCfMURZ1o=T+`PyvI>i-DTcgCM2r;U$PmnZf_R6NHm0=al{OjCDl=eO z5jX~;D4{S6-q&Je6@UO5UV(6^fcG{~dKU+h#+ z5VHzVbdX{vvC?&*E@FYNR(&R_hmo!Nj=CQ3JGbi_<3Zo0^i4AgMG)woC{Xuy!%);} zxOcl@C<4QMQN*6@hM@=yd!vT?w;P6{x?wGIO*8LPqjt(HtnVIT^{eIXCe{IExR+Q1 zssk}`iXTsvf-P~oHv^+{vwf@ zej1*QxTu{uP5S3{)5FgN9G-AozoY88+?1+94Y5*UflSTXoXz^nGFh1CzRRkIpr(-> zwpS_(Ra<#b%gKZ)p0>m#GYFP^Zb@Bq>e2*%%>Fc^P^IqEjvya19MH=sdU#g z<6+G>T<~3~*CR?oFehGoNu~JAv{c1Hu`-|%Gd$~acLZ&rZ(|{4%_5 z-uQOo(q-sxe0_KG!~5&s->KwB=7sBw%=p&Ih-ELHAG;9w!fxcXMJe!pFe2ueX^jXD zo%5p?MjUg7IU{N+GGj3Z>UXs!K_i2qG&jI;8a#y!=7i%^Wa{;hM;w=5CMOh`WT)+x z9J^o(XT?}DZNZTNvePw}ZP%_aW6Aa`e@S-F!nXlVv4S^dRt(#ciGssSF53bIss*+Z zpu{dL$hfePk%7ZlN%psnbZl?I5Nuh&v;`GI`>Bs}Eb_EC2h9Xv9t4^46p(d_? z4z}tGFcR)Da7FRC%$!ohnwU3j4{kuNzsL;XZ%sy~N{l00WKS!~a>*3)GJdgai(HbY zF_Rsb9UZQSYIBCEOx4mN(;-hVBz1iX8%3ex>fZI(OHUTygWsSbw3}vW23mNuF1Yw~ z(R6$-?WN(9h41LIC2xF(+CG|%W3N}C^#WQlmen%wo}r!e7;Wx1Ft>2B5JA@?{5CKZ zQY50r=o;eg2oO)F2C>u;DyMe2`!27_dtVpG5CW^G-O$ww{$9}siov6 zL7$`HQsem$SwUR@*(d!a?=Ax2jv};jWY;)D`>9+~>V~4LVaT*$xV}|(81yrSfz(He z8wSU<=dWRdp+*R#0znpWJdbf#2e`j8G?U2OQ8L7bqt`QxT$|eaa87%8NWy;?#=sQ+ x0pKvtF1z7TpuY{83AnJU(R>n3;s~&lSE;`eMtl+{9pE;|&_3D~>;E`I{{W@q`=kH> literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E79_create_staff.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E79_create_staff.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f0d44b3e0f93282999598da5f9c672b9e77e05fe GIT binary patch literal 5343 zcmd5=?Qa~#8K1ou-`RJ5i4!|7gb*kc4A_lBUMt!fxq)vH5=BMVpw;?z&e_YpTxMtE z_>@S26cSZMO+^tPs9F$E`a-BsMWO`AKfxE~D_-pT!XJS6!1K)P-tFGmM<8m;**iD) zJkR`|XMXd{?96;w9v=GF*PlN1`}+y`oFqOusL#RU*P$@sUn4dlm3Cbt6)l!$NF^id z8DeLNlOvTJ(H=9i#LSW3LW>-s8mZ^W`7Egn5LzH+o}9=KR+I7~IZue@N*7N|4Ya@? zIXb0@!6mw2GV2s&RTRaa3{>Xe@$Z9zLP# zwWVTt>^O_U_6alErQ8B&{_`c;*-`5umpXvd# zr}APzMJtLv<=k=?eKE?Z&-I4E42N>ce34zGTol`FG?DYEUHdy>CGh=~J^#~VPx@eY z?3Cp;J$CHz*>*z)WLVO3^c*lk@?v7(jv8532>_t=}K)h>1#2>|oDUKE5-MxrPbaRO7j7+~6Hy)Yq8{EaVx%4T9dfI-!_5c5G|CYY#|1W(r%DtlRCvj4BuU)|C9!X^C z&5>H!Z-v#_BnSPHGG+J!PRbOkdt+9Ut8Mz#0g3r-6i*QIp?*UEFYkT5`X~^U`2DsM zsp;NtJCT~jeYX?;<%oYU8=%fKfFAFcW6;?&v_1Y))=9Co#Ejt%F^T++M29T^-)T>Kqcei(Vco5e_C?tfxQJPY*8~Kt8#h{8}C$ z4j+|g8=WsVs4ogNi_w~QS`1W=GtZ%|U9ia(BbM6;xZKRUaCi`T!*nb+7B>vvU-FnK zic&ng_aQN8dyAH-4)yr?JUV6TTN1b2*itvxGgje2fWuYoc z(V+kj4PvC~xe$z_8&z(3ZZHlOYwurK`{c#&xwjQocxbqvdnpi*X$$M>IK{p&N$k+{psvN;^Zs(y-M z98={{AYd)=1kRdg0Z&G+3Ak6xaT5=UJ^$8J4S_wj!IreA_i1I0TR0U#^trkZ-tUa z=*!C0b88p=QyKJmV8Z!u&unu`yE>=Noido)v8ha;-EIBu@ZxLX^=n^TycGWKFU^TX zW^p*yPA^&fxEJtg%Yj3u&>9`Yy$Qq?9<)_N5*G3#yz;^7^*@B~y%N6uuE1D0#MK<}8-_cB<34S)g5U!nNjYa`Md7JmyRTF`Rk! zj1*1#ju?UyHyoyQ!?s1qggS@wdn)~vaB2s`*}@7~;3=75{G#xvnyw6InHZRtb5@L6 zPQ$jU7Ppu6CBx!u5VfO@aoTdMCe@cL*YuXecn!XF@QEjLePLO*Ozbu_m>Bdas7}yj zA0<}xgvfCVC%$h}+7R2jTiTX;Lg(}}7bRE>DC0*?28IodP_(1lx@v=wE?1Im-8yb8 zD$UMrO%>WGwmc@vkH}SF{M@oxHF>ApbQBYxs!p#r}AtFDH}l=ig1x5 z7dypSA?m-p^H2pYR$@Y4mUQ1#pvr$37cXsG8`jED!jl<;+ln!5D7RUg)YLN!^0GgekU#~V9>EiG8ZO{*3Bz(rcQI4LsX>k-CO&p=Jz}9hu8``ujx-H}1 z=p}C5mPsCvp-Ff~wR;jM%{!C#I_vU$6fUrex=aLJ7el)4cxGTzsF!seQwx(v*V!

O;V&PfRZ!z%CU`qZGDRIpyVxODiO&4M-FnAy~|0!PiU s;;%q64>w%0HJd||90DZVN$)amiVv$$e~$Ch$FwWMK#XO#e^l1K0X!6`CIA2c literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E81_delete_staff.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E81_delete_staff.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0cd5f39b409a8909c015a9a138de548e72a20d16 GIT binary patch literal 3234 zcma)8TW=dh6rQoympFEkCQX{O<&0;#4||IAoN2!No<4M z0tkyADOj6ai!ArJq*151WtNBX+ zF$Yh03I+}-VH!FCAQC!W5dt@3LnaUm+^YVI+~tyAk!HDUQLxoN{nifW;R%n!0F`bN z!U&O&ae`F94<$D#GQkxASBV8RT#CZb@p%}sk{NOq33oE3(s8yb8*(Wfe>qfxl82I2 zO<{TvT7)XO%%#e*z0v3S-=9#{^%suYQn0e{KEVHqG7HR;dt6M4sX#*Og!a+e zfi{q)QQm?o11c$a5UO9mLK0FzkYa>(DA~MgY*TXa`W<5@LAGH=5;)E85Sb(uLr=5D zHbwjwQJO^QB1+S3QdEO>sX(KE6(tnR;Cm-Yw!sm&hEM1kEr9Pn>>o|#^jrhG(%;R> z6B}YQOh7Tytr)XFanCm>f_v~-K#y{OR0fHiYdIPsHpJ?b=iB9A*(o1DxecDc{s6Iu z$+AIq46^wK-8KNf6Lcqqr9$|TZu5gJ_aGld`M!cE%lj&&=>tWL#4-HI^_ z7430ys13%6ZsnK-Fdo*jX80rBiZQFD*Z?;Mr!k#J(W(ddYoE|-U9$mIzR+#Zm<{L| zfEqdv8fBQ+FQMWHv0p|4FijBJ@OVtKF!51hA4mBfz%3Re{t7DY&!g4$7m|%4PN0Xl z2!F1v^*8rv?4)rejOh$@%N!!x*s*c%RmQOcVVmrQQ;)Lu;drtwg)aM6MZJrBwMUVF z;RLZ?d!ARAjORv$*6*=2_Lfd>|9eXhh$k?Y2JbI)|#TK`;pj7(dBr?Rc|(~$YO^KYt* z75D&yrv@4XGcD-^zUptB6xwt2Is|$4+r#>e&!2qp;PImyk01T~p90+d;qDm3C)5w|% zy<#IS;-YeJFv6L~OxN8@FixzP+ry-GZDvJ!?o27Lw`Oc-eeulowwET`K0AccEV+C} zqNx-!(q24|#xo`;*5>|~<8z(i7H6-|lp-kufAWaXGcWYPDRlJ$CoJES~}>Nn~vwyINNZ1JJ?XeWq30{Mj!30w8b1-r7V}5LiL3l zM5}x&)EviJRfcqQ6NfJ6RW;FR={o)@lYCREerRki= zg$un!>6XPyVV>p<pRsrZad_F-GY#^dXi9!hZ iX%#~|XbXqYaUQa7$Em)nS4gO5I8VpvP;$b|)BgY-W+oW` literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E82_reset_staff_password.cpython-34.pyc b/vatus/testcases/test_bussiness/test_user_management/__pycache__/test_E82_reset_staff_password.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..41c283b0d8aca15934faa648fbc53b55e5706521 GIT binary patch literal 4062 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 literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E112_create_administrator.py b/vatus/testcases/test_bussiness/test_user_management/test_E112_create_administrator.py new file mode 100644 index 0000000..5e150e3 --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E112_create_administrator.py @@ -0,0 +1,202 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class CreateAdministrator(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E112_create_administrator(self): + web_types = settings.test_parameters.get("web_types") + for web_type in web_types: + if web_type == 'firefox': + self.driver = webdriver.Firefox() + elif web_type == 'chrome': + self.driver = webdriver.Chrome() + + self.driver.implicitly_wait(30) + driver = self.driver + driver.get(self.base_url) + driver.maximize_window() + ########################################### + # 前置条件:登录系统 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + ########################################### + # 步骤1:全部输入为空,检查提示 + ########################################### + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("请输入用户名", driver.find_element_by_id("username-error").text) + self.assertEqual("请输入姓名", driver.find_element_by_id("fullname-error").text) + self.assertEqual("请输入邮件地址", driver.find_element_by_id("email-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("password-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤3:长度输入不符合,密码不一致,检查提示 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("username-error").text) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("fullname-error").text) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@dsfd.com") + time.sleep(1) + self.assertEqual("长度1-64个字", driver.find_element_by_id("email-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("12345") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:正常输入 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("createadmin") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("createadmin") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("createadmin@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + self.assertEqual("用户 createadmin 创建成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 步骤5:正常输入但ID已存在,检查提示信息 + ########################################### + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("createadmin") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("createadmin") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("admin02@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("用户名已经存在", driver.find_element_by_id("username-error").text) + ########################################### + # 步骤5:正常输入但邮箱已存在,检查提示信息 + ########################################### + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("admin02") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("admin02") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("createadmin@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_id("email-error").text) + time.sleep(1) + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("createadmin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("createadmin") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_users").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E139_delete_administrator.py b/vatus/testcases/test_bussiness/test_user_management/test_E139_delete_administrator.py new file mode 100644 index 0000000..0fd2a1b --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E139_delete_administrator.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class DeleteAdministrator(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E139_delete_administrator(self): + web_types = settings.test_parameters.get("web_types") + for web_type in web_types: + if web_type == 'firefox': + self.driver = webdriver.Firefox() + elif web_type == 'chrome': + self.driver = webdriver.Chrome() + + self.driver.implicitly_wait(30) + driver = self.driver + driver.get(self.base_url) + driver.maximize_window() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + teacher_names = ['deleteadmin01','deleteadmin02','deleteadmin03','deleteadm04'] + for teacher_name in teacher_names: + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys(teacher_name) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys(teacher_name) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys(teacher_name+"@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + ########################################### + # 步骤1:未勾选任何一条学生记录,点击“删除”按钮 + ########################################### + time.sleep(5) + driver.find_element_by_id("delete_users").click() + time.sleep(1) + self.assertEqual("请选择一个或多个要删除的用户", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤2:多选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deleteadmin") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_users").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + ########################################### + # 步骤3:弹出删除框,但是取消 & 单选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deleteadm") + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[2]").click() + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[4]/div[2]/div/div[3]/button[2]").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deleteadm") + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[6]/div/a[2]").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E142_disable_enable_administrator.py b/vatus/testcases/test_bussiness/test_user_management/test_E142_disable_enable_administrator.py new file mode 100644 index 0000000..f6aee58 --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E142_disable_enable_administrator.py @@ -0,0 +1,167 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class DisableEnableAdministrator(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + # chrome 浏览器存在兼容问题 + def test_E142_disable_enable_administrator(self): + web_types = settings.test_parameters.get("web_types") + for web_type in web_types: + if web_type == 'firefox': + self.driver = webdriver.Firefox() + elif web_type == 'chrome': + self.driver = webdriver.Chrome() + + self.driver.implicitly_wait(30) + driver = self.driver + driver.get(self.base_url) + driver.maximize_window() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("admin01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("admin01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("admin01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + self.assertEqual("用户 admin01 创建成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 步骤1:禁用新建用户,新建用户无法登录 + ########################################### + time.sleep(8) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + continue + #element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/div[2]/div[2]/div/table/tbody/tr/td[5]/span/label/input") + #webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("status_btn") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("status_btn") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin01") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(12) + login_text = driver.find_element_by_id("login_state").text + self.assertEqual("用户处于禁用状态禁止登录", login_text) + ########################################### + # 步骤2:激活新建用户,新建用户可以登录 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("status_btn").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("status_btn") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(11) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin01") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"管理员").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/thead/tr/th[1]/label/input") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_users").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E79_create_staff.py b/vatus/testcases/test_bussiness/test_user_management/test_E79_create_staff.py new file mode 100644 index 0000000..d9ca4bb --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E79_create_staff.py @@ -0,0 +1,197 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class CreateStaff(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E79_create_staff(self): + web_types = settings.test_parameters.get("web_types") + for web_type in web_types: + if web_type == 'firefox': + self.driver = webdriver.Firefox() + elif web_type == 'chrome': + self.driver = webdriver.Chrome() + + self.driver.implicitly_wait(30) + driver = self.driver + driver.get(self.base_url) + driver.maximize_window() + ########################################### + # 前置条件:登录系统 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + ########################################### + # 步骤1:全部输入为空,检查提示 + ########################################### + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("请输入用户名", driver.find_element_by_id("username-error").text) + self.assertEqual("请输入姓名", driver.find_element_by_id("fullname-error").text) + self.assertEqual("请输入邮件地址", driver.find_element_by_id("email-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("password-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤3:长度输入不符合,密码不一致,检查提示 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("username-error").text) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("fullname-error").text) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@dsfd.com") + time.sleep(1) + self.assertEqual("长度1-64个字", driver.find_element_by_id("email-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("1234") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("12345") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:正常输入 + ########################################### + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("student01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("student01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("student01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + self.assertEqual("用户 student01 创建成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 步骤5:正常输入但ID已存在,检查提示信息 + ########################################### + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("student01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("student01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("student02@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("用户名已经存在", driver.find_element_by_id("username-error").text) + ########################################### + # 步骤5:正常输入但邮箱已存在,检查提示信息 + ########################################### + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("student02") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("student02") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("student01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_id("email-error").text) + time.sleep(1) + driver.find_element_by_class_name("close").click() + time.sleep(1) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("student01") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(1) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("student01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E81_delete_staff.py b/vatus/testcases/test_bussiness/test_user_management/test_E81_delete_staff.py new file mode 100644 index 0000000..5d98d19 --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E81_delete_staff.py @@ -0,0 +1,107 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class DeleteStaff(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E81_delete_staff(self): + web_types = settings.test_parameters.get("web_types") + for web_type in web_types: + if web_type == 'firefox': + self.driver = webdriver.Firefox() + elif web_type == 'chrome': + self.driver = webdriver.Chrome() + + self.driver.implicitly_wait(30) + driver = self.driver + driver.get(self.base_url) + driver.maximize_window() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + student_names = ['deletestaff01','deletestaff02','deletestaff03','deletestaf04'] + for staff_name in student_names: + driver.find_element_by_id("create_user").click() + time.sleep(2) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys(staff_name) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys(staff_name) + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys(staff_name+"@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + ########################################### + # 步骤1:未勾选任何一条学生记录,点击“删除”按钮 + ########################################### + time.sleep(5) + driver.find_element_by_id("delete_user").click() + time.sleep(1) + self.assertEqual("请选择一个或多个要删除的用户", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤2:多选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deletestaff") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + ########################################### + # 步骤3:单选删除 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("deletestaf") + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[5]/div/a[2]").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + ########################################### + # 步骤4:弹出删除框,但是取消 + ########################################### + driver.find_element_by_link_text(u"员工").click() + time.sleep(1) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[5]/div/a[2]").click() + time.sleep(5) + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/div[2]/div[2]/div/" + "table/tbody/tr/td[5]/div/a[2]").click() + time.sleep(3) + + driver.quit() + + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E82_reset_staff_password.py b/vatus/testcases/test_bussiness/test_user_management/test_E82_reset_staff_password.py new file mode 100644 index 0000000..282968d --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E82_reset_staff_password.py @@ -0,0 +1,147 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class ResetStaffPassword(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E82_reset_staff_password(self): + web_types = settings.test_parameters.get("web_types") + for web_type in web_types: + if web_type == 'firefox': + self.driver = webdriver.Firefox() + elif web_type == 'chrome': + self.driver = webdriver.Chrome() + + self.driver.implicitly_wait(30) + driver = self.driver + driver.get(self.base_url) + driver.maximize_window() + ########################################### + # 前置条件:登录系统 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + ########################################### + # 步骤1:不选任何员工,点击重置,检查提示 + ########################################### + driver.find_element_by_id("modify_password").click() + time.sleep(2) + self.assertEqual("请选择一个或多个要重置密码的用户", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤2:重置密码输入为空 + ########################################### + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("modify_password").click() + time.sleep(2) + driver.find_element_by_id("confirm_action").click() + self.assertEqual("请输入用户密码", driver.find_element_by_id("password-error").text) + self.assertEqual("请输入用户密码", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤3:重置密码输入长度不符合要求 + ########################################### + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("1234") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("1234567890123456789012345678901" + "234567890123456789012345678901234567890") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456789012345678901234567890123" + "4567890123456789012345678901234567890") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("长度5-64个字", driver.find_element_by_id("password-error").text) + self.assertEqual("长度5-64个字", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:重置密码两次输入不一致 + ########################################### + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("87654321") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("987654321") + driver.find_element_by_id("confirm_action").click() + time.sleep(1) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirm-error").text) + ########################################### + # 步骤4:重置密码成功验证登录 + ########################################### + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("987654321") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("987654321") + driver.find_element_by_id("confirm_action").click() + time.sleep(8) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("staff") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("987654321") + driver.find_element_by_id("login_btn").click() + time.sleep(3) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 后置条件: 恢复重置为初始密码 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("modify_password").click() + time.sleep(2) + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("admin123") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("admin123") + driver.find_element_by_id("confirm_action").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_bussiness/test_user_management/test_E83_modify_the_staff_information.py b/vatus/testcases/test_bussiness/test_user_management/test_E83_modify_the_staff_information.py new file mode 100644 index 0000000..6b6c08b --- /dev/null +++ b/vatus/testcases/test_bussiness/test_user_management/test_E83_modify_the_staff_information.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +import time +import unittest +from selenium import webdriver +import settings + + +class ModifyStaffInfo(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("bussiness_base_url") + + def test_E83_modify_staff_info(self): + web_types = settings.test_parameters.get("web_types") + for web_type in web_types: + if web_type == 'firefox': + self.driver = webdriver.Firefox() + elif web_type == 'chrome': + self.driver = webdriver.Chrome() + + self.driver.implicitly_wait(30) + driver = self.driver + driver.get(self.base_url) + driver.maximize_window() + ########################################### + # 前置条件:登录系统,创建测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"员工").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(2) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("staff01") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("staff01") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("staff01@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(5) + ########################################### + # 步骤1:姓名、邮件输入留空,检查提示 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("staff01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[5]/div/a[1]").click() + elif web_type == 'chrome': + element = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/" + "div[2]/div[2]/div/table/tbody/tr/td[5]/div/a[1]") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + self.assertEqual('true', driver.find_element_by_id("username").get_attribute("readonly")) + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("email").clear() + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("请输入姓名", driver.find_element_by_id("fullname-error").text) + self.assertEqual("请输入邮件地址", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤2:姓名、邮件输入过长,检查提示 + ########################################### + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").\ + send_keys("1234567890123456789012345678901234567890123456789012345678901234567890") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").\ + send_keys("12345678901234567890123456789012345678901234567890@12345678901234567.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("fullname-error").text) + self.assertEqual("长度1-64个字", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤3:邮箱编辑输入格式不正确,检查提示 + ########################################### + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("test@@dfd.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("请输入有效的电子邮件地址", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤4:邮箱已被其他用户使用,检查提示 + ########################################### + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("vinzor") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("staff@example.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_id("email-error").text) + ########################################### + # 步骤5:正常合理输入,成功编辑 + ########################################### + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("test11@vinzor.com") + driver.find_element_by_id("confirm_action").click() + time.sleep(3) + self.assertEqual("用户 staff01 信息修改成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + ########################################### + # 后置条件: 清理创建用户,有助多次测试 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("staff01") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(3) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_login_management/__pycache__/__init__.cpython-34.pyc b/vatus/testcases/test_education/test_login_management/__pycache__/__init__.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..14b9b3fa2b51ca07c1c2b7e5d44ab2914d475a8d GIT binary patch literal 179 zcmaFI!^`z`#+3*LAb1QSV1No zW#(1o7sUirCTAoT literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_education/test_login_management/__pycache__/test_E70_user_login.cpython-34.pyc b/vatus/testcases/test_education/test_login_management/__pycache__/test_E70_user_login.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..99575b251cdf6161c713682f535561082cdcbdcb GIT binary patch literal 3623 zcmc&%-ER{|5Z^tY9e*alfsjCel=j6BAiilUT7g196(~v-pzSu*>EhdjbL_LTcP4S< zw4p(iN<~y^`avsIeW)l@Dyh^5Pz37VP^nM%TAbjQ(#Hy^r89f6xws*r?L&Ru_3X^- zZ)Rs__r|}*6VZ!*{QUZ#n+f@a_&zGohoRZ;LTA92k}M&tPE*2Yjjs@<)aU?Vff}t6 zrb=2N*&xY<2n!K<+yJ>sE&!5Bcz|S@$P7#h6CNQ(kc=usye;`rGD8Tpr0IcFs0x0N zz7%yM<9x^v<~c6X$f|u5APz&b_d&8KYgzbT5Z-)-zP$onp#GxdkkPM(vGD9U(u5=)!^syv2ifP?3^OiQG+gvM( zY%1u6JfGdL%^kvO29+B`dagNP{DemL6m;^1i; z^ajtF)?{7`_LtIUb&=~A`3z4xz}B6jJ&2%bFzZoT-4`j)vbaDkr(606&vDD~xV;B= zX+?nc#5)TmHwa#yE}&gog^th&os7xo?39vvjKUxcL6b3B2b4odMn=aA%@idQzX!{d z9DVDz;FLnjupx@v<(G&9yRYIdV^D*{+A5_1DScB)Lq4fg%LFlDAafw<6sEy=DnQBr z1kf-Hdjc3oWcr{aidzl(nV6pi(2Xp}L}11JS`sglAXBP@Zze{Bl)<_J);(xQQI(jTMZ0tQKN`FnQ)n|`fx;2lj5!PvYs z7Z7mz(*?1s7R1#Y{z*E#T{;{IKGER@0WN+c`Xm?gDp^h3AbT8y2Ej7SC*NiD>*T3( zajkvdQqPMHVr-SUxDGoKA09TUSeCGu7ZBUg9bW7JPIdO`{kgfi!G%koc*|p^M&_6s@$1=aOZ>jbGH_LxV~`V3QE7ff(k*H zG1+VvbZaM;4LeM0IA6s|sfeXOb$Yt;-n=>e=+PtDr8WzkAW$ZnutQbWbj(WxfdvK& z^~h{sEoQEeHPfb(EotMr=?E+^SW8ZyFmvW4*TzlD$d9w+F#KvfD~lLysHB;O8%$@p zE*Sin=}}j8_=MxeAc44WddG@-mPKq1lSX;T2C13jP~~JfFSua<-MdFGm@IajJ12N) z0HeCZPUkHaJ##|qInw{isUs&@4CW7k>2pv$v6d6PZ}gt&?K^c$1L|}?>uU5XZQB}D zaZsS;1?y~-W=(5Ula8umMbk-zMFiuMz%_@V&Xs4z3s3?hjb}sZvqUYQyj+G?spk2~NJJ|LxJ7_1}rgTA%k|lde0#LC{c6tTq3M)zbOLnBaauf(G z3S~tKWhRx^5$#JUGNhslzwq(?MGUouxSa3*Nasq5uE@ literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_education/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc b/vatus/testcases/test_education/test_login_management/__pycache__/test_E71_user_modify_password_and_logout.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7522bca584f2e5127e6f311157702de9e33ca3d8 GIT binary patch literal 4087 zcmd5<&2Jk;6rWkIKWisxLfQsGp#=$iNNGzy00AmW3n!vVr2?6t)y6wc*VzwucDISG zR7zDKCqM`xI8q5Afkevzp(>aD6P)HsLgNb(S0p6fo3Wi;$GBDbw7j!#-{)`MyxD#8 zOR-e={P!QM&UFr^F$o(xWM<&@Nvi6;09_aZ<$9Nku30H7i9d zoxBScI$@O5)8u-JR5FBRiIpZx8sRm`&ynkdP)~-qP|ma=9+@jskzZyD7Pqf3UPV^- zrvY&WuHXa=3?NAu2mlBT<5eJVH#Q)FU{*%*fyj~z<(w$K?pt=P*)W4(*{V`-gg?Ba z_gT1t!!W?KR|zo)2?4%F>fn@;>r^tqF9BcLoET?TR5e4}_lyNIU`E89a#~~*bdd{K z7~0-qAVxzLghs>UrprRc1Cd%}p~&@YsL%uE)V?Ns55)d$ZT5xvivj4(U$MQG&*#rK ztCvjfp67m@RYPE#VHC`x(<+2jl+nW?1%~4<+MeN>p1H_e=7oxT?({Ju0@sEs(*T$t z4?edH)3eaTkHRC3rbq+yi;Wy+Lx+LTJZ+7~Gj~KP^zw&FX}Dzm3Sbu!QkR)iX}e0v z%CFf~O3uF1&R*5XDy*3%3*jXarbu1KLcoNliFZ&+Q&Rf2lxAX5sRjjAhf)G7N+_7Y z^VJkt1xMf-9-*#K0MB_@VMrCQ8h~Bjvzt}KGU=LtVs^KpVu9k0Z%_pH;ISkhuC|3U@#&#v}w7v*JXE`6p@qcW5=HrdDY%5gkBr_j@C%f zFufz#+058p&5w$}+`RqG=Elb6of|)2yVb_-u2tj=`j#2h{8jS4V|7W7EqBOnjN_G3 z)%O6c+YwB39u4V4G27U$2^|ofXk!l7A{OuQqRgu=U-?n;RdV1RPu6e%2c8 zg_~iV`&_(&W+zXbe(w3B4@gD(8NY2*sk4T#P`~CaqwNX0|Fc3OU zOSA|hT-q4)+heqlo}l}vx=L`L&~e18%f)+1AHbv2{aSPy^b&TU6W1!?^KPAfj@HEx z!y$1g6fv%hR-&zwiF3pKW~LfHnjtNZ7JGrf1|R-#9D}UMHw>LCYib>4KwhS5op5W$ z)+84~(VX>{y-$E2U}X~8n(V`-H0H_~kuwZ@6B&jm7+!Qm(l zI{_tyYs+z8;C={jXB25sFRn`-`gct@pc&=7+%+N>d3K1|;ZK1o9v&U$*^#R@QSJ?p l%)(($TJvM5qN9UBQAO@Wh4^KhW`I>&qzC9&YU-mR{R4pGU|0YE literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_education/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc b/vatus/testcases/test_education/test_login_management/__pycache__/test_E72_reset_password.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d520f0e238f1bf418aedeeeb64ec8436879e703 GIT binary patch literal 3966 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 Lb*1}XE0BKx%&7mB literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_education/test_login_management/test_E70_user_login.py b/vatus/testcases/test_education/test_login_management/test_E70_user_login.py new file mode 100644 index 0000000..87a9946 --- /dev/null +++ b/vatus/testcases/test_education/test_login_management/test_E70_user_login.py @@ -0,0 +1,134 @@ +# -*- coding: utf-8 -*- +import time +import unittest +import win32api + +import win32con +from selenium import webdriver + +import settings + + +class Login(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E70_user_login(self): + web_types = settings.test_parameters.get("web_types") + for web_type in web_types: + if web_type == 'firefox': + self.driver = webdriver.Firefox() + elif web_type == 'chrome': + self.driver = webdriver.Chrome() + + self.driver.implicitly_wait(30) + driver = self.driver + driver.get(self.base_url) + driver.maximize_window() + ########################################### + # 步骤1:用户名密码为空 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("login_btn").click() + username_text = driver.find_element_by_id("input_username-error").text + self.assertEqual("用户名不能为空", username_text) + password_text = driver.find_element_by_id("input_password-error").text + self.assertEqual("密码不能为空", password_text) + ########################################### + # 步骤2:用户名和密码为空格 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(" ") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(" ") + driver.find_element_by_id("login_btn").click() + username_text = driver.find_element_by_id("input_username-error").text + self.assertEqual("用户名不能为空", username_text) + password_text = driver.find_element_by_id("input_password-error").text + self.assertEqual("密码不能为空", password_text) + ########################################### + # 步骤3:用户名长度超过64个字符 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("12345678901234567890123456789012345678901234567890123456789012345") + driver.find_element_by_id("login_btn").click() + username_text = driver.find_element_by_id("input_username-error").text + self.assertEqual("用户名长度为1~64个字", username_text) + ########################################### + # 步骤4:密码长度小于5个字符和超过64个字符 + ########################################### + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("12345678901234567890123456789012345678901234567890123456789012345") + driver.find_element_by_id("login_btn").click() + password_text = driver.find_element_by_id("input_password-error").text + self.assertEqual("密码长度为5~64个字", password_text) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("1234") + driver.find_element_by_id("login_btn").click() + password_text = driver.find_element_by_id("input_password-error").text + self.assertEqual("密码长度为5~64个字", password_text) + ########################################### + # 步骤5:输入正确用户名,密码输入错误,点击登录 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("te$5ffd") + driver.find_element_by_id("login_btn").click() + time.sleep(1) + login_text = driver.find_element_by_id("login_state").text + self.assertEqual("错误用户名或密码", login_text) + ########################################### + # 步骤6:输入不存在的用户名,密码随意 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("hahaha") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("admin123") + driver.find_element_by_id("login_btn").click() + time.sleep(1) + login_text = driver.find_element_by_id("login_state").text + self.assertEqual("错误用户名或密码", login_text) + + caps = win32api.GetKeyState(win32con.VK_CAPITAL) + if caps == 0 or caps == -128: + win32api.keybd_event(win32con.VK_CAPITAL, 0, 0, 0) + ########################################### + # 步骤7:打开大写键盘 + ########################################### + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").click() + win32api.keybd_event(70, 0, 0, 0) + time.sleep(1) + login_text = driver.find_element_by_id("login_state").text + self.assertEqual("键盘大写锁定打开,请注意大小写", login_text) + caps = win32api.GetKeyState(win32con.VK_CAPITAL) + if caps == 0 or caps == -128: + win32api.keybd_event(win32con.VK_CAPITAL, 0, 0, 0) + win32api.keybd_event(win32con.VK_CAPITAL, 0, win32con.KEYEVENTF_KEYUP, 0) + else: + win32api.keybd_event(win32con.VK_CAPITAL, 0, win32con.KEYEVENTF_KEYUP, 0) + win32api.keybd_event(win32con.VK_CAPITAL, 0, 0, 0) + win32api.keybd_event(win32con.VK_CAPITAL, 0, win32con.KEYEVENTF_KEYUP, 0) + ########################################### + # 步骤8:正确用户名密码 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + # 退出 + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(2) + driver.find_element_by_link_text(u"退出").click() + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_login_management/test_E71_user_modify_password_and_logout.py b/vatus/testcases/test_education/test_login_management/test_E71_user_modify_password_and_logout.py new file mode 100644 index 0000000..04b34de --- /dev/null +++ b/vatus/testcases/test_education/test_login_management/test_E71_user_modify_password_and_logout.py @@ -0,0 +1,154 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class Modifypasswd(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E71_user_modify_password_and_logout(self): + web_types = settings.test_parameters.get("web_types") + for web_type in web_types: + if web_type == 'firefox': + self.driver = webdriver.Firefox() + elif web_type == 'chrome': + self.driver = webdriver.Chrome() + + self.driver.implicitly_wait(30) + driver = self.driver + driver.get(self.base_url) + driver.maximize_window() + + ########################################### + # 前置条件:登录系统 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + driver.find_element_by_link_text(u"个人信息").click() + ########################################### + # 步骤1:原密码错误 + ########################################### + time.sleep(2) + driver.find_element_by_id("reset-passwd").click() + time.sleep(2) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("admin122") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("admin122") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(11) + ########################################### + # 步骤2:输入的旧密码长度小于6个字符或者大于25个字符 + ########################################### + driver.find_element_by_id("reset-passwd").click() + time.sleep(2) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("1234") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("admin122") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("admin122") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不少于5个字", driver.find_element_by_id("oldpasswd-error").text) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("12345678901234567890123456789012345678901234567890123456789012345") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("admin122") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("admin122") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("oldpasswd-error").text) + ########################################### + # 步骤3:密码长度小于5个字符和超过64个字符 + ########################################### + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin123") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("1234") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("1234") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不少于5个字", driver.find_element_by_id("newpasswd-error").text) + self.assertEqual("长度不少于5个字", driver.find_element_by_id("confirmpasswd-error").text) + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("12345678901234567890123456789012345678901234567890123456789012345") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("12345678901234567890123456789012345678901234567890123456789012345") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("newpasswd-error").text) + self.assertEqual("长度不超过64个字", driver.find_element_by_id("confirmpasswd-error").text) + ########################################### + # 步骤4:新密码不一致 + ########################################### + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin123") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("1234567890") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("1234567") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + self.assertEqual("确认密码不一致", driver.find_element_by_id("confirmpasswd-error").text) + ########################################### + # 步骤5:输入正确新旧密码,重新登录 + ########################################### + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("admin123") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys("123456") + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys("123456") + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(1) + # 退出 + time.sleep(8) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(1) + driver.find_element_by_link_text(u"退出").click() + time.sleep(3) + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys("admin") + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys("123456") + driver.find_element_by_id("login_btn").click() + ########################################### + # 后置条件: 恢复密码,有助多次测试 + ########################################### + time.sleep(5) + driver.find_element_by_css_selector("span.user-info").click() + driver.find_element_by_link_text(u"个人信息").click() + time.sleep(2) + driver.find_element_by_id("reset-passwd").click() + time.sleep(2) + driver.find_element_by_id("oldpasswd").clear() + driver.find_element_by_id("oldpasswd").send_keys("123456") + driver.find_element_by_id("newpasswd").clear() + driver.find_element_by_id("newpasswd").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("confirmpasswd").clear() + driver.find_element_by_id("confirmpasswd").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("confirm_resetpasswd").click() + time.sleep(2) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_login_management/test_E72_reset_password.py b/vatus/testcases/test_education/test_login_management/test_E72_reset_password.py new file mode 100644 index 0000000..a0f52ec --- /dev/null +++ b/vatus/testcases/test_education/test_login_management/test_E72_reset_password.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class ResetPassword(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E72_reset_password(self): + web_types = settings.test_parameters.get("web_types") + for web_type in web_types: + if web_type == 'firefox': + self.driver = webdriver.Firefox() + elif web_type == 'chrome': + self.driver = webdriver.Chrome() + + self.driver.implicitly_wait(30) + driver = self.driver + driver.get(self.base_url) + driver.maximize_window() + ########################################### + # 步骤1:前置条件,登录系统创建用户 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"学生").click() + time.sleep(3) + driver.find_element_by_id("create_user").click() + time.sleep(1) + driver.find_element_by_id("username").clear() + driver.find_element_by_id("username").send_keys("wuhaibin") + driver.find_element_by_id("fullname").clear() + driver.find_element_by_id("fullname").send_keys("wuhaibin") + driver.find_element_by_id("email").clear() + driver.find_element_by_id("email").send_keys("wuhaibin@vinzor.com") + driver.find_element_by_id("password").clear() + driver.find_element_by_id("password").send_keys("123456") + driver.find_element_by_id("confirm").clear() + driver.find_element_by_id("confirm").send_keys("123456") + time.sleep(3) + driver.find_element_by_id("confirm_action").click() + time.sleep(9) + driver.find_element_by_css_selector("span.user-info").click() + time.sleep(2) + driver.find_element_by_link_text(u"退出").click() + time.sleep(2) + ########################################### + # 步骤1:跳转页面,检查邮箱输入格式、长度 + ########################################### + driver.find_element_by_id("reset_password").click() + time.sleep(2) + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("submit").click() + time.sleep(1) + email_text = driver.find_element_by_id("username_email-error").text + self.assertEqual("邮箱不能为空", email_text) + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@dsfd.com") + driver.find_element_by_id("submit").click() + time.sleep(1) + email_text = driver.find_element_by_id("username_email-error").text + self.assertEqual("请输入长度在 1 到 64 之间的字符串", email_text) + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").send_keys("test@@dfd.com") + driver.find_element_by_id("submit").click() + time.sleep(1) + email_text = driver.find_element_by_id("username_email-error").text + self.assertEqual("请输入有效的电子邮件地址", email_text) + ########################################### + # 步骤2:输入未在系统注册的合法邮箱地址 + ########################################### + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").send_keys("test@dfd.com") + driver.find_element_by_id("submit").click() + time.sleep(3) + email_text = driver.find_element_by_id("reset_state").text + self.assertEqual("未注册的用户邮箱地址", email_text) + ########################################### + # 步骤3:输入步骤1创建的测试邮件地址 + ########################################### + driver.find_element_by_id("username_email").clear() + driver.find_element_by_id("username_email").send_keys("wuhaibin@vinzor.com") + driver.find_element_by_id("submit").click() + time.sleep(5) + login_text = driver.find_element_by_id("login_state").text + self.assertEqual("邮件已发送,请查收并重设密码", login_text) + ########################################### + # 后续步骤: 清理创建的测试数据 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(5) + driver.find_element_by_link_text(u"用户管理").click() + time.sleep(1) + driver.find_element_by_link_text(u"学生").click() + time.sleep(3) + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("wuhaibin") + time.sleep(5) + if web_type == 'firefox': + driver.find_element_by_id("select_all").click() + elif web_type == 'chrome': + element = driver.find_element_by_id("select_all") + webdriver.ActionChains(driver).move_to_element(element).click().perform() + time.sleep(3) + driver.find_element_by_id("delete_user").click() + time.sleep(3) + driver.find_element_by_id("confirm_delete").click() + time.sleep(2) + driver.quit() + + def tearDown(self): + self.driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_login_management/test_E73_modify_personal_information.py b/vatus/testcases/test_education/test_login_management/test_E73_modify_personal_information.py new file mode 100644 index 0000000..77b293c --- /dev/null +++ b/vatus/testcases/test_education/test_login_management/test_E73_modify_personal_information.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +import time +import unittest + +from selenium import webdriver + +import settings + + +class ModifyPersonalInfo(unittest.TestCase): + def setUp(self): + self.driver = None + self.base_url = settings.test_parameters.get("education_base_url") + + def test_E73_modify_personal_information(self): + web_types = settings.test_parameters.get("web_types") + for web_type in web_types: + if web_type == 'firefox': + self.driver = webdriver.Firefox() + elif web_type == 'chrome': + self.driver = webdriver.Chrome() + + self.driver.implicitly_wait(30) + driver = self.driver + driver.get(self.base_url) + driver.maximize_window() + ########################################### + # 前置条件:登录系统 + ########################################### + driver.find_element_by_id("input_username").clear() + driver.find_element_by_id("input_username").send_keys(settings.test_parameters.get("admin_username")) + driver.find_element_by_id("input_password").clear() + driver.find_element_by_id("input_password").send_keys(settings.test_parameters.get("admin_password")) + driver.find_element_by_id("login_btn").click() + time.sleep(3) + ########################################### + # 步骤1:邮箱地址为空 + ########################################### + driver.find_element_by_css_selector("span.user-info").click() + driver.find_element_by_link_text(u"个人信息").click() + time.sleep(3) + driver.find_element_by_id("email").click() + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_xpath("//button[@type='submit']").click() + self.assertEqual("请输入邮箱地址!", driver.find_element_by_class_name("editable-error-block").text) + time.sleep(2) + ########################################### + # 步骤2:邮箱地址长度和格式不对 + ########################################### + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").\ + send_keys("123456789012345678901234567890123456789012345678901234567890@1234567890.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + self.assertEqual("长度不超过64个字", driver.find_element_by_class_name("editable-error-block").text) + time.sleep(2) + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("fss@#$%.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + self.assertEqual("邮件格式不正确", driver.find_element_by_class_name("editable-error-block").text) + time.sleep(2) + ########################################### + # 步骤3:输入已被其他 用户注册使用的邮箱 + ########################################### + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("student@example.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + time.sleep(2) + self.assertEqual("邮件地址已被使用", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 步骤4:输入合法邮箱地址 + ########################################### + driver.find_element_by_id("email").click() + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("helloworld@java.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + time.sleep(2) + self.assertEqual("用户 admin 信息修改成功", driver.find_element_by_class_name("gritter-without-image"). + find_element_by_tag_name("p").text) + time.sleep(8) + ########################################### + # 后置条件: 恢复初始邮箱地址,有助多次测试 + ########################################### + driver.find_element_by_id("email").click() + driver.find_element_by_css_selector("span.editable-clear-x").click() + driver.find_element_by_css_selector("input.form-control.input-sm").clear() + driver.find_element_by_css_selector("input.form-control.input-sm").send_keys("admin@example.com") + driver.find_element_by_xpath("//button[@type='submit']").click() + time.sleep(2) + driver.quit() + +if __name__ == "__main__": + unittest.main() diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/__init__.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/__init__.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2e6d2d77cd169cf79c24dfa5c651962398434d4d GIT binary patch literal 178 zcmaFI!^`z&#+3*LAb1QSV1No zW#(1o7sUirCTAoT+|<01nE3e2yv&mLc)fzkTO2mI`6;D2sdgZXi-DK{04+^500000 literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E112_create_administrator.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E112_create_administrator.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0c0103724f678fcb5d9bd592c9df658c2f6d9d81 GIT binary patch literal 5653 zcmd5=|8E>e6`#HDw$ESU)Q;VlBotaWsO{KI(iFAGshjefRjI8&mqe@e?VP=r{c@R| zjqQ^o1wxw$sUoN#idsZl@uh&87KEB85k!^xC-fKQSA4bo3lhH~A@SbK?%m!OUqd6H zXYcIndvD%*^O-kqzWhBu*#D1zef*t2JW9ylNbHw_`T{(D1qu`XHDVJ|Y}7SU)FOI< z6ce(ZAa;^CDN;-k?OSG&m?`poXptgRBb79{k|f0pp;=<4$@v6fWl7JGD}-pSH1T{P zvkUgfQb7}aYjoLU)`Fnn?N7 zF8`LW0kHkgVDTGgU-Uul>_yA1dFLl)InOb#LQ5RT1`qtRsI&xTRZVaBA{lxB z3UtSCjTP!pmn-7wxw(10B!SS4I1)3}4Uq(gqJT~M2mat-X#Ac~K~ z?j&@86H<|=DabBqWc~2KrbeDQcVOUBf^5RDC1fl-MR<}_QWy&ecAB_{BsVF!XCyZh z<4Q4zsR~3Bw9<$M&EWe|l5Bz^Pz|3DTF8L!J{e?K>&Jiqa%G^Cl*dSknt))oQ&5pW zu&EmaK|N?3lp6UEsSFddzoBS^m|&}&pO5pQWjlYU!3X`ro&08d;E(Ld2Nd=ZbDsnS z1V^PHlnDhG@b*W%2ReCU5pTSccOc?T^x#d#c?$gpC8-5{MFLO{B2Nnu411`0Fcn#A z>4DPtg-(r%bZ;74`mHn`>eQ%6pz-jYJ|2mDY(YzD{9>m@MFNcv?Wyrgk;WE`mBuf3 zYE-0q)7WKXdil8b$b42G??K~#=;Ol@$8eJOg6EMq;Ne75VfK{>@Gho%1@2elrhCO> zi(s!XE5tSS8X47@&)91fN?p=Nn7$M$Uz4cpC+64DsmcSyd{kD#Jff6*T8{eP!Z-c@ zg>OcgSMbe7LDinS0MVlo$d;9(C9~fTs&jD+dIe>R;O96fTTq>kP>pBX)};di^V1+6 zBj#hhh5#1tW1ala5f%8owi7MWz1Mc4Wfu3`PW+cW{v2+ApvTAM7&JEx4H7JN3ggyo zS7TrKvwqBs8%1{^wzvFii^Qdr+-l0r4d%KDvMINhYI9eCWkDTQLUZBbp#tIY zn2B!ulfC$m9zpYkN%C!ZqIhCS9)NVdQKi1fmMuoh-nz(?R+;C}-9xa+7DJX>4Y=Ih zyKtHiX}OJ$$W_Dl*F0v5oFvc9KPLKYZ^eT133qpKmmcJy*#7Z5pIp1SedDd|>o4!( z*(c~js{F41=(XJ>e2IbZoPY-jF;wzg@W;`O5*~MgQIObq@8-^5Uai0ME2XY}{gv7f z3Zq}slrfJ5!*Q|tZ(fx$<-oRMGGlR>-S6Gly7NK(jrZ$6zg!!jj$zrMsur=(;(IS| zzxmzTP}FNBSsM&}Ri7dk`6QkNJdPbd@%YInj^0l#H~=2+{^V}`_OG{Yy|VMcOFMV3 zo;bF3>v#2ce=2fO??hU9Upsw2rWQ=UY|fNCCm3nioSSYMi+V0nXeB0eyeX6o;Sg!* ziO4920t9sXts6Txep#0|LSMFSUEaC+r(!trGK6a5Dh%Yuf;x{%hYn+N8AnHA5=ZLS zUa#M|{mHfK^&kAAHnzen4hP=pHH)u$0iU)UIF1UfS{s%6j?Tw4?&1Mlc_r0CtkiG* zar@2>>+il+f8!mIF4>+>i`lScFoB4~!UcqP-v0g8pYMWKwIRQ1xHCBN)0SKIf(!~@ zzFfb0yLM2{pqaAAoN0iDGtZupq-o!&6=zquW6v&o=EkgPT|6^?F80D|?6Zx@jb)q8 z@>Ob>vz$TY%-p$I+gPUdtW;mjo79Hmznr^%b4Dp@;UGgFSr!XCgENFfWS><@fZ^N~ znMIii#IWU5ZL4H)dqZC{EY5KHieblCw;ZcR^)<^iy)`jfhPMtz@d7|!-q0-*QKSYF zeLe-&dAi{v#VVZ_DQ;mp@oh@0VzRxZZMo-lPS?2@fD}U+KYbxEY-og}2iv7fHVEl5 zKTWjrxUr%*Q|+7*w1I07xZ&`a7;ERQR}H=@@~33}SzI+N7w%OY?;_Q?7xhtOtCZou ziqwU`;)OKpM($;_&t%!aVY8y8hzW)z3yRn4CFBq-xQi78VX)dsaZl<*`* z;I3pu>rd_1#x?Z}LVXbG&1Xsr|9~^BWq~sV{BE`JkQcqX%b*?55wjWDMmk!a&>}CI zoXA5ZfvqDC_mpW!v`a?cXeDahph+AMq47js8%{hN(^8x7cB|AI_)`3;4(p3J68oUQ zOCR{x$>BaflZ;F*L9o@81TBz2GP(07N@Xi+LbkoAchMp&U7E=d|u0^^0y=n^~0Ly z>UyD1<^x#0Tuh;GVL1n)c&BJn*9sh!9&#@LXA$lIWoz~{ilk6MH>)D|r1JQi*jpc` OMjm2hBsuwEUi&v#q69Jk literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E139_delete_administrator.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a21752e0f1d81ac080dc7be688fb08471dff3b98 GIT binary patch literal 3541 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 literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E79_create_student.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E79_create_student.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ba096e17f7c5a95717ab8fff4c47ffcb94ec9698 GIT binary patch literal 5355 zcmd5=>u*#=6ra0~?zY`NEKnXIB8pnIl_F2$qo$(Yh=~%-in+P$oh^5{k7e#$N;i<8 zs1Oq)i5fL(e8dN8Kw}gLsQeRtalYEM-7o$DCMKRUbMNlG-F8KY%C>iQ_M9`nbLKZ^ z=FZITg}$Ee|NQxxQ+E;aD~WwFP@jOuuRvkKzea3Aip{!4idrO3kzz{LQ^ZaaCqs%E zqCIY=iJ2iULW>Nc8mVN-@iZxR5t<`rmK;bCR+jQSIZlY?N*7O#bTz;q**&6(?rFNu zWY!_dN+^mxDX2`q61J#smn_mw8js9 zBjhAJ{st(ZuSW>c3E>cPic|neBgZu<1TX?%soi3TnnB6nmgnmG44>)&vq!R`OT{bl zKIPnUr+hKMsn7MQ!3>9T%6yTYqFm&gZ8VYbsa^hpuwL-}hdX)y-aS6p?LB0FM^i9t*YtGSfoM^06=#P*O;OXbX5s=ZQrSvBm=syC>X2G zh%5xUr<%vUXP_Wjw^m!0AZkonH0jEM5k8Wx9S}1oq#}t@EFIOz;hTGpXyno7R`woE zks~lJDLL2=5}qcN3=TH(nc(I7y>*X_DMwEPbve%>}diG5)*ta z)EDAVbtDhdaO4TBXt=%SX6;DOT>1 ztSlqu-56A5IWg~%m2e$VAb+<;{kQau{=f8%Dff!Ld!wXUxOM@fn%%});&<9kB&K_(?L=Z0 zcic|=%Mo8U8=%%SfF5s^W6;_(G)3^TQyeF^UCn*vJ3ZmbxGgq{?nG>F`Afp$Xhv=| zhcUTut%F^T++M29T?O95>NFC%3tt{85w^!%ET-SlNe?d^Kt8ydJS`6qJ9oe4psH zy(tThB;0M_E&$+jT9jCQQF< zj+Hzo7;O3+A8k2{dM+~PC1$j>Wt0o)C}w3OqDuu7Afa;~ot;1XNnP>?eVM&*Z2rV| z#qRJdxM{q$yjh)4XHOZ-P1sZ>(E6r+ef{LS^-C9jJ9(=9$_KR-Q_SLUv>lzc_}As?}10rUBf zzncB=GQ?Hu_p63GhT}eJxn)nLcH`Kw`iYCR8|CB~D|^ft1!6e!>@g`C^&Qazr*1e< z>xONMUK8pZ&hUx!SHh7s3}*|=VS(plhVhHsV`{oGoMobGQqEa1U^!LWDp}l~(WecI zvu@N5IL2Yiv1(MGwp`Pj7DHwD*1;#9&h>pWx@BUwsli0IPeFBn&iE*?N(V%STR8E3 zo6@RSy|ATixd(Jk4|CBAiveYP*TKNBp%IGKEVM4!V5G~HWYt0)H>Q+k?Ltin+9 zCJK+pRbg_!VYzU-;dqCr&b_EJB3Gph2^X1zfyGC%tOqIUM;h{Qog)`J#aS-wzr6QQ z1uj-%rMxg{zpX%}{{Svu+K|?#6`+JCH3&BrgIZ5!nKrDcrw{6VP;WhJweSx#16mF= zYeBzQZ8+3L-;3LzAHazDjC`XUJ+IQDC|a5*LS=!iqX?I@X<96_jDDk+sC82&c|eAS z;Th02#!zY-lXp8yaJ?I@vhuo22VECEy6$*pU{k0UbR826Q%KiYAB+Zj7z@0-iWN9m z3|}ocZRE{TK`UgW1c70#cXfTFTTU%lwOw35e9p$f8t=|*>RN%LW?KF!&`iQzmu$@@ h&?JKZF?Z6t%%1!MD%6K?mim}{1sIIM^y(i9+Fv8?uCD+9 literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E81_delete_student.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E81_delete_student.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5d8d53110f2e28a4d08c3ff6a5efb595ba790f03 GIT binary patch literal 3221 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 bV31dt`<{;Y2bgPsK+VH?jU^{v&eJadsL>%f literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E85_create_teacher.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E85_create_teacher.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..64be4e425efaff99d9dc98f5e3aa6b83e6c19000 GIT binary patch literal 5511 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 literal 0 HcmV?d00001 diff --git a/vatus/testcases/test_education/test_user_management/__pycache__/test_E89_disable_enable_teacher.cpython-34.pyc b/vatus/testcases/test_education/test_user_management/__pycache__/test_E89_disable_enable_teacher.cpython-34.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f3e44af044a672a38913afcb55608c5e42b83395 GIT binary patch literal 4379 zcmds4&2Jk;6rZ)%_S$hinx<)!eo|V%heQ+#f~ugjY2g-CYAcW%wA$>BlXdpPogL>( ziIl1pgdR|l=%M0(KnTGBP6$v7;=-T6X|6PhEF?~x5JSVw%tlaZ+S9L0C!h4RVzbEs!qG7t%HGM6CH7(`YVFthHr=joH=R92O>kx7Ys3Q#*M5gkDd*1 zyg)5`2E1rs5I^`vFXQk;hhc!_FB4)C!eJQ+QU>E1xvEJf*e75!F(LY?Q?)JbhJiU{ zMbxY^uaFXHwFF^Alyf(jjzlk~5jQIqvwX@ai$rpoa$&@CG@(b-D}6>-7x?~dZv4dL z#R&8!=iFc^WRvF>?HP;t=U7;#HV3xFtI;GHwZW~T%s3V)Fsop|^sT^}rale0VxE2B zMblAGcV&UQt` z0>y!5i@Vwt6$=yxn-zDrD=Jp3SkGL`%J;}woiYpc-9eloS?+$~3`@nG#Mvteh%rI5 zy2X9Sk~r8!oc&V1m8+N)r=YchF+}es>i9VzEvT4+u_l-vNj7V&=n}Pq7$KH-H(8cQ zRX8cb%GA-<>P{`|;6pF#P*YHKi(3!@2tL*>Ka4Dy7J$(GHbo1B?zbsg3f^H;w0L}6 zMl?WHQgX9GF^`aC2m|W&-`uD%k{$tEr&7((sUIaR;JVVH@sQxE?aX|7CKvTns^z$U>VEPed1783BCpA| zt1uzkM3XO8Xe2Tvm(fzVAky{>3w>HU0DXw)af3>g%N8hrmP@28$9IDUyJAJre8?PO zNcOR3o)uXyoOYp!<3SA@nQ9(}&G$atSo?bOiw`$%yjjBrv5I}p#?4#n->lV=K#DG# zQHw*{2d$Pca71s#Y`vv=`j{|ERnJo)P~URBrGZ#Brh2yQZ1Tq01bZclk_M(2UjH#_^?_18TS&CU0W>_+o!2uV~WLTM36lNHfTBOG%a73@`S3K8t zxwmM}TP|l=l=k}8g6q3W)SPz%C!81kC3u_Q6Ps#tYSDBZk+MB%F_DcZh-T?xgdEqN z6*_kjeUV3LMGS49>AArywBHL{bO9nM<7Y2dEl&(@*Rwqkn-WEPw#&FRtt7fMv~RoI zhM6i`Artvi5<}xNmK(sO#1H4F$-~BCM5aO+!b0emt1d63Sq@XygK03}VkUQ-%2}qq zevwlZM&I)4q6XYO;-I|q-21|TO3|+{5UpS9*77jIljws>N1v9{cWQ&0db;7={51Gm zZzbKMb?ZnCN^65)tyen=H1Ipl?*@;3_we)JHtMlGpq<7_mX3G4R{cfF?B?q#((=N! z0|>nKz!$ElkWP6_Y7>QoEEYQn@`9#{iPy`f8X0heuruL&a1;0uZVsX??Y~E8N^_!+ z7KSM?XPP2sntte1JqmQ*G!eguQ`2PK=xGdxQ#fonmJ}AB;TeisGr~=p*YbM)ZOKFX za99SWS;)!_3}Z|>1TmZ>9T!iIpb{bW5G|