From 3438f9605351083e51b04c629759c212a829403a Mon Sep 17 00:00:00 2001 From: Marko Mecina <marko.mecina@univie.ac.at> Date: Tue, 21 Nov 2023 13:22:17 +0100 Subject: [PATCH] ask before overwriting existing automated test scripts --- Ccs/pixmap/collapse.svg | 89 ++++++++++++++------------------------ Ccs/pixmap/expand.svg | 91 +++++++++++++++------------------------ Ccs/pixmap/pythons.png | Bin 0 -> 9037 bytes Tst/tst/generator.py | 7 +-- Tst/tst/tst.py | 93 ++++++++++++++++++++++++++-------------- 5 files changed, 128 insertions(+), 152 deletions(-) create mode 100644 Ccs/pixmap/pythons.png diff --git a/Ccs/pixmap/collapse.svg b/Ccs/pixmap/collapse.svg index 209678a..060adaf 100644 --- a/Ccs/pixmap/collapse.svg +++ b/Ccs/pixmap/collapse.svg @@ -7,7 +7,7 @@ viewBox="0 0 26.510696 28.219185" version="1.1" id="svg5" - inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" sodipodi:docname="collapse.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" @@ -26,7 +26,7 @@ showgrid="false" inkscape:zoom="2.3786088" inkscape:cx="183.09022" - inkscape:cy="531.82348" + inkscape:cy="61.17021" inkscape:window-width="2560" inkscape:window-height="1385" inkscape:window-x="0" @@ -34,66 +34,43 @@ inkscape:window-maximized="1" inkscape:current-layer="layer1" /> <defs - id="defs2"> - <marker - style="overflow:visible" - id="Arrow3-7" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="11" - markerHeight="11" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid" - markerUnits="userSpaceOnUse"> - <path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3-5" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /> - </marker> - <marker - style="overflow:visible" - id="Arrow3-7-5" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="11" - markerHeight="11" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid" - markerUnits="userSpaceOnUse"> - <path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3-5-6" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /> - </marker> - </defs> + id="defs2" /> <g inkscape:label="Ebene 1" inkscape:groupmode="layer" id="layer1" transform="translate(-54.299432,-112.5212)"> <path - style="fill:none;stroke:#000000;stroke-width:1.375;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 54.986932,126.6308 H 80.122625" + style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none" + d="m 54.986328,125.94336 a 0.6875,0.6875 0 0 0 -0.6875,0.6875 0.6875,0.6875 0 0 0 0.6875,0.6875 h 25.136719 a 0.6875,0.6875 0 0 0 0.6875,-0.6875 0.6875,0.6875 0 0 0 -0.6875,-0.6875 z" id="path2600" /> - <path - style="fill:none;stroke:#000000;stroke-width:1.744;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow3-7)" - d="m 67.554779,130.0808 v 9.7876" - id="path2600-3-3" /> - <path - style="fill:none;stroke:#000000;stroke-width:1.744;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow3-7-5)" - d="m 67.554779,123.1808 v -9.7876" - id="path2600-3-3-2" /> + <g + id="path2600-3-3"> + <path + style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none" + d="m 67.554687,129.20898 a 0.87199998,0.87199998 0 0 0 -0.871093,0.8711 v 9.78906 a 0.87199998,0.87199998 0 0 0 0.871093,0.87109 0.87199998,0.87199998 0 0 0 0.873047,-0.87109 v -9.78906 a 0.87199998,0.87199998 0 0 0 -0.873047,-0.8711 z" + id="path6" /> + <g + id="g5"> + <path + style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none" + d="m 67.554687,128.57617 -5.269531,5.26953 a 0.78571498,0.78571498 0 0 0 0,1.11133 0.78571498,0.78571498 0 0 0 1.111328,0 l 4.158203,-4.1582 4.158204,4.1582 a 0.78571498,0.78571498 0 0 0 1.111328,0 0.78571498,0.78571498 0 0 0 0,-1.11133 z" + id="path5" /> + </g> + </g> + <g + id="path2600-3-3-2"> + <path + style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none" + d="m 67.554687,112.52148 a 0.87199998,0.87199998 0 0 0 -0.871093,0.8711 v 9.78906 a 0.87199998,0.87199998 0 0 0 0.871093,0.87109 0.87199998,0.87199998 0 0 0 0.873047,-0.87109 v -9.78906 a 0.87199998,0.87199998 0 0 0 -0.873047,-0.8711 z" + id="path3" /> + <g + id="g2"> + <path + style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none" + d="m 62.839844,118.07422 a 0.78571498,0.78571498 0 0 0 -0.554688,0.23047 0.78571498,0.78571498 0 0 0 0,1.10937 l 5.269531,5.27149 5.269532,-5.27149 a 0.78571498,0.78571498 0 0 0 0,-1.10937 0.78571498,0.78571498 0 0 0 -1.111328,0 l -4.158204,4.1582 -4.158203,-4.1582 a 0.78571498,0.78571498 0 0 0 -0.55664,-0.23047 z" + id="path2" /> + </g> + </g> </g> </svg> diff --git a/Ccs/pixmap/expand.svg b/Ccs/pixmap/expand.svg index 37e398d..bba0bb0 100644 --- a/Ccs/pixmap/expand.svg +++ b/Ccs/pixmap/expand.svg @@ -7,8 +7,8 @@ viewBox="0 0 26.510681 28.219215" version="1.1" id="svg5" - inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" - sodipodi:docname="collapse.svg" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" + sodipodi:docname="expand.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -26,7 +26,7 @@ showgrid="false" inkscape:zoom="2.3786088" inkscape:cx="183.09022" - inkscape:cy="531.82348" + inkscape:cy="61.17021" inkscape:window-width="2560" inkscape:window-height="1385" inkscape:window-x="0" @@ -34,66 +34,43 @@ inkscape:window-maximized="1" inkscape:current-layer="layer1" /> <defs - id="defs2"> - <marker - style="overflow:visible" - id="Arrow3-7-9" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="11" - markerHeight="11" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid" - markerUnits="userSpaceOnUse"> - <path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3-5-1" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /> - </marker> - <marker - style="overflow:visible" - id="Arrow3-7-5-2" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="11" - markerHeight="11" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid" - markerUnits="userSpaceOnUse"> - <path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3-5-6-7" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /> - </marker> - </defs> + id="defs2" /> <g inkscape:label="Ebene 1" inkscape:groupmode="layer" id="layer1" transform="translate(-109.32506,-110.6955)"> <path - style="fill:none;stroke:#000000;stroke-width:1.375;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 110.01256,124.8051 h 25.13569" + style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none" + d="m 110.01172,124.11719 a 0.6875,0.6875 0 0 0 -0.6875,0.6875 0.6875,0.6875 0 0 0 0.6875,0.6875 h 25.13672 a 0.6875,0.6875 0 0 0 0.6875,-0.6875 0.6875,0.6875 0 0 0 -0.6875,-0.6875 z" id="path2600-0" /> - <path - style="fill:none;stroke:#000000;stroke-width:1.744;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow3-7-9)" - d="m 122.58041,137.41068 v -9.7876" - id="path2600-3-3-9" /> - <path - style="fill:none;stroke:#000000;stroke-width:1.744;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow3-7-5-2)" - d="m 122.58041,112.19952 v 9.7876" - id="path2600-3-3-2-3" /> + <g + id="path2600-3-3-9"> + <path + style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none" + d="m 122.58008,126.75195 a 0.87199998,0.87199998 0 0 0 -0.8711,0.8711 v 9.78711 a 0.87199998,0.87199998 0 0 0 0.8711,0.87304 0.87199998,0.87199998 0 0 0 0.87305,-0.87304 v -9.78711 a 0.87199998,0.87199998 0 0 0 -0.87305,-0.8711 z" + id="path3" /> + <g + id="g2"> + <path + style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none" + d="m 117.31055,132.5332 a 0.78571498,0.78571498 0 0 0 0,1.11133 l 5.26953,5.26953 5.26953,-5.26953 a 0.78571498,0.78571498 0 0 0 0,-1.11133 0.78571498,0.78571498 0 0 0 -1.11133,0 l -4.1582,4.15821 -4.1582,-4.15821 a 0.78571498,0.78571498 0 0 0 -1.11133,0 z" + id="path2" /> + </g> + </g> + <g + id="path2600-3-3-2-3"> + <path + style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none" + d="m 122.58008,111.32813 a 0.87199998,0.87199998 0 0 0 -0.8711,0.87109 v 9.78711 a 0.87199998,0.87199998 0 0 0 0.8711,0.87305 0.87199998,0.87199998 0 0 0 0.87305,-0.87305 v -9.78711 a 0.87199998,0.87199998 0 0 0 -0.87305,-0.87109 z" + id="path5" /> + <g + id="g4"> + <path + style="color:#000000;fill:#000000;stroke-linecap:round;-inkscape-stroke:none" + d="m 122.58008,110.69531 -5.26953,5.26953 a 0.78571498,0.78571498 0 0 0 0,1.11133 0.78571498,0.78571498 0 0 0 1.11133,0 l 4.1582,-4.1582 4.1582,4.1582 a 0.78571498,0.78571498 0 0 0 1.11133,0 0.78571498,0.78571498 0 0 0 0,-1.11133 z" + id="path4" /> + </g> + </g> </g> </svg> diff --git a/Ccs/pixmap/pythons.png b/Ccs/pixmap/pythons.png new file mode 100644 index 0000000000000000000000000000000000000000..6f85a30cc1a521a5b5bc3e32d16d5e22508ace26 GIT binary patch literal 9037 zcmeAS@N?(olHy`uVBq!ia0y~yU?>1#4mJh`hGP%Dcr!3Ca29w(7Bet#SA#I4r{sqQ z1_lPn64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq!<_!7(87ZLn`LHom*ZL z>U!(=e&gqNrp>;`+33LG>fj`PRCMF(TXEO-y?eFm(W9vAo5UO(E`AlQz8zW~s<R+r z{pw8%l$ba<I6Wp#5V%ym_oVLgIhFr+c(NQ3_t2ZLp~ilG&7|`uEsN(_?zb+Um;P+# zPAAQyf>nB-0;CIC))l%OkUJ;HSZ(3X^5&t8;D+{MyaF%UZ#Aql`0&!EeRt$CPj8iI zuH^zzA`yukFBt@;8BG=F)zDU$aCTY9)@=>7$6w9dyNZA7+l5YFT5fi9i!aQ*7h@B0 zc}?=vpvSC93QkKGdn_#8+rh5E!o`~7baH+48(nYn|D^@N8M^i#O0pT<@5Nhitz0M6 z;oY!=xn{Q-%X;ZkKW_iZWbWeou-D0LyGX&C=GMJFM;9Mh+F)^F`*)2U=IK$l9&_!w zfB0r^p8A6omOq&VZ;3nXch2fasyp!IPvYS-3;#K19glkv7Wd-AP3gBBZ)5qkRxmW3 z&aL{v-F~ZQ@5Qw&TVB4)Zg^PzV>*8Y{}pbIskI+;g2Mae1^+nST)zMB^61iqi=T<q zbtgQ^Yv0bHsrTdGyM5Bu=c)^ShiZIOVpr!`m9e#wy)2x6>+LNEPHw&^*mL*ohLt*c zw<B#DwtoLo&8qrLPUZ5XLp<02%PgsWYkt@5fZAFO-hww}6@Pb0W@djc*_WDiUbbTO zt-$B9d#c~c-*t0vj+|I+5%bIY`D~LAIfvphM@=@_HPvtR@47iC7QTI0ux!TObZJvb zvsVnWw;1o`d$jjkcb@VBr#C03-CO)c*8ELfz!^6$MLAoJw5^wOkN52EZP?%9WNVgn zu8;lrIlXRniQ0O{XC7+{PRi}M`rm8UTlH*pla^h#ulz0VuUc@y#p`W=^p&|UzUda2 z_jPQSw)H)r{N@-e$&{?#cp<>(Q{$m<)<1eKM@`qvohBx`Xp_^aiDEYnTRuoUGNZlA z*yprVZ%`-4L%R##v)$iRMy-0iXKJCEQ}2(b!YRgGNk0G0W8xyp9dd4TGAlhe!QNHv zeP*RsfoRv2zBwI-7w#5&<n-WGyqzQKWQUUIhE~b>3$DzK+4S}}bE==m?h7Y3Uvxiv zvvBi)JBt#mx~>FFyMK5C<8x&fy>7Ocx&?VcMvTVtD+{i_wzhLzq2ADZE%Y0MjK)W) zZX-QQf!21H11C3cw_bYwH|vVaPJ#ClJ6t|0bsHHu#TRg_*xq@(;jvTTwL~A5u6F0x zjOna0rs=;sHP&&r8s25fm(BWod&Q=lDa&oHES-Non%TX5(}8u>3!TorWBj>ZcEz)z z6*1i}>e)KxKj&FJNz{Vd-pQ-;_+v*mmE^B>_Y9N%Ec$Y1&6+=Y_u>?;Y&~#AZ`x(Y z=`1p(^%pIcSSf}alL^Q&JN(Rb#Vg)}1#T}o{w@Fa#w75UuKB-8t^Iqy1W8FrN6egh zcJg_f=Q@FpQWJtWbaqa0J)Hk&5wD`B#JeEzRZDg$h`7mQT-oLycskusL+?Pg{@xRZ z`Oi7#)QH-M?w<Ez<$+aqkF8Xn-;+6OM~t4I{Zo-Pxl$30tJ7kZew*@ZqrJ<*DCchr z-%n~_D)n2zV;Qg_cmASl`w#8?e&^($@P9`;9=aF*TDiRFPs_&*-z)>fR_&At-77ft zyWz{fzbDR^;85$V+w1$4VNL9IK7qG43pHcSy;{yhzb_HDdh$?LP;ZWV>!}IMtsYXH zw-h92&g`5bl`5*La!mc>gIZ(Dzi&Qg{QaU8a^QC1KhewYoHSiyoq11o?)|u>V#T_3 z$AaE6t=bnGm#-{&eJfMlqRUKetZx>F_)GBc`#Uc2d9YD^{<D?G<qj^pt+7@^acj7I zT*bG{mX;kiBHox;J8|h;UbJYF%;gOZj)8@@y^POt@gFN(R9}7ZUc-agHPXxZKD|FF z|0`8w@l0J6<EdA#zABAkXysUGU85k_te<f6(|Zj)O+_oMY0sXit;$|ynRP;dEtSWG z!_zm{bm~;mE7z_j%u?&*Jjv3-AUN@1OzqS6IxCNCnti|bPkYdVkKA!lPapM&C+~cG znB!UM`|sI?lODcgb_(2nu6m(YkL3&P?^fO}@-7wm|Nb4a-}&>`N}h8PUCWOizBT8) zrq;c_%qR~<fgptz7q7;%Y08Rrom1lW?)-D9`{_w_-$$#m*IEDc=S~b>D%);7?e@DJ z^NuZ3ldF7F*rp=s<H7xAw{M#SbI#kWt5*689wew;E92byu~eopYu*3LB9nwBpS=A| zd8c$yz$qt=#wm^$TYh*toZhrz&AJ8K*3G)7S?kf^|KRNP_-B2)mlwZZqbXxwsI+Tc z@+`G(as6li^sj$@c-1uH_pRle#~AX<w&ulFwtv0<Ta$g}FQzNIo(HndU!1kQ>7{e% zTKA{5XZ}>`PrPM4_5Jm=X|eC3rUd04%JlFp`?L1#pY1$$^Dcc7I;G`R*xvf_PH?~R z%NF4e6|+v<-^Z(|vi*J)_tDZ1cgue7yRCI(LO{sQVBHTh_D?;+n7GhDVakd_sz<7e zF4o!y%!_Vpb;vNw+yB$;((mP)Ge7f-<lNtOT<p4D)NW&?B|K%TofMWVS+|aD_F1=* z5T4m)`3GKqHYzyqU|ZOlg_%;PxpV$#)yh9EPHjzDwKkaPmv6kzqS;F`qS!W-SQ^XC zI@(hB_(Rp+DbuD;+^#!6-gk~iax(Mm`a3t&CS?c*B$eObEN_2Y)VA<;Nr~@q1D;v4 zr9b}KvzsF_I=uO|s9Q>i2(xfo!c4W#an-&1_x}*uZ?|gdYxQk!+7B*z{ZVDENPvdm zGQN4t!Q79O7hW+^S$asMI%aCh(>)eZtWj|%Y<^|@VYF`(U64QDPDNEkP*BeC+N-Gy zySLbtM_5dp7#K0_WPkMM6>C>3TWU^BbZ!?CzTCfSm((k%S7k*7EWEzFM~)r~j*B}t z_wus9;92J%KQ}E*I#$=;^ET7;THR$!b+=b$FN!!en{QK|vFvELepKz-8GCn?D<9Xh zUFUy4<Y|G0i^7BD3pX~(_O>2zJNmH1YUQeR4qi7erdrARElN((&|jbM>kRvpO>4qd zcIIlZd9AdZU-c-_=#p`O*TpxPP9BXSLhILyo;J$-TJ@ta+it%9T4l>c!RHU1R9aX# z(a5^E(0Z=W1(AxUjdL0T&h(mH-RqtH?Xy$Vha0<@gAHA*yxtb>pW(<k@%go%e{}x8 zvv%t}vm`u;>tyHN58J9%u3XE+Q8qtFp;f_3P3*MM%(C|~ZcBa?&;RXvS#A4WtD}#_ z&#~|0d44Q9@A+QW{7I80dBy#kw%|i<>`Hq91sf%qhD~g1H#0fimEe@AVVoMG8@v0h zz7T_H>f0}MpBa8+ZSs5Cm+cV4-1E{y;uiB|zwaOJ{ZdLhyNi8&;^QO2eUI;KKA-sJ z#l?`2sqZiSD!JQsTlSp!>1h)M@;;vLmNv?jn#qv2`_Vq**%3PrJBF2+?YDcZBg3b@ zEU~0y@v_VZ1r{4_=1eg?b?#Vj-MZMl@{Nz@y$q2^{C?BP?lR|sDZ2{aZZZ2P#%nR_ z)S?)HdiG;)-rhPR(j2+meDjxGQgXJ-+jhx|7r(FNS7<q6z;v)YKDy(<hT9u&zY)pP zPpX(Ce>?Br3_Zoo)BD%n-nQ_ymEZEsZ|_R}ab)lkd{#6uc-7@6Z>Km5O!5`BQho4h z=H94=UjY&q`Wn)&`M&>d!@zB<w)n{Q19kk<Zkx<7Q8-|E`0tOJIG)QK$EtD*=S~q? zav*X0<SA1;3KzdkPt{<xepOnve93~>W>c109l5@wO+-jwPU*3gHIt?vc(VU^;pb|> znr$Z?U)ych4BWH7^tSL^{wJ)_PKgfEp=HVjyba}SJS_JXcE?5aoL;i^YWMy3ho6?b z6<Oo$bJ)e>WT*PP1Jk$;R`1;XZtaI_R_c|ZlP0UrcTsq7+<@7BtAp>NOev0|Q|$ju z-2Qz3u{-T@N;;3PpZTLSZNDzxeRuA)vau`Utz&0S{4ZyrCgP^CBme1{9ybObL;jAJ zSu+n$@|_Z7VrnWRDA=i%>K>rix?thLd0XuM?sz**ddAly#x>h+9({0xVYXK3ChpR- zvpc${JQ49a)pd*MU&0*?mW-gq>$Xk%^NUI7k+7sy3diAgzNg36-uCFfy`g`q*v{Cs z$|bH2-fLW2j)?L`%&K5+*v>Yu{lSfOViEULX8wH7Aya1k^(*g@BS(ZJ1v{5tz5LMk z+O_Kf!osJI?%z4#<Ktr=zFEJYwD%#q(ec!x^LM&E-rF}ETUM3zdi8CY1rMtIu9pZj zoj8%PWXr`HHyYMuTFlie6A_(kc<P3^GVAKyQT{KQ8m5J0I|+Jm9GP@y_b;~V0vx5G z;is$Xn<uwVZ@FB5Kq0Q`<9Zc!)rX&dd-(V)+pvN`^H%ht1ouG3HbDjDT7k>&=iLiz z%bXb!GBq$V_MT#lb=hv_r6N<OnyRR&2#8C!3pCA{6Jzi<<=ZdM1Iwqke*7sW-Yoow z$Irl`a>9JZk7^CA0;hLJg}-QONIS6E@l~F@{rx%V`!`HE#guTd!1}_{kY<psplP%1 z|9;duXZ=3LMDs@A7Fl1fUteCj`;^G|`tr(Nc5~u5rR}|P)k-BJ8>YL<l4pwP#_@Zt zoZp##IoD(5#&5r6(#}?L#9n_ndDf{9iOrfCHx4f0u@^k|V0o10kCM&ZC(~nme0)sq z>qMX1tpEQ&;9im7W2X7GmB)^)T6bmZTtDs|iO&N5uV62G(jawTlzB<O!Lv0!{#-$? zFERYwkixuF<hZOkqp#N|?oS0fV~!kGfAo3lq$v}6G9`c1+)MDzk-y+}@y?|yhFh=v zJ9k^s_i~}doQm4Gchv?n=HK2QAODG)t8m-1i!ZM3`1WLekny$YFQ=G$t=pfc_0GUN zc-=qc(yyg|e(m9o2!8bY;gfYCCF;AT2`yZ6epg;o#&4BdyY?u*U&2_IboaxtrtKSa zy6ZAus;H?1$HbgEz5d*B1Ew!tuY7k{*NCq#dA`3~oUcju{L_*|7M_1aw{3UK;S)Po zKh>4{+2;#$Zi-yHS@CgFl^X94&9)!k)2xM$^&gdewrtxzsd|MMywy=r8u?F-uDiB% z?mE?PUiaJ$H*32_tkTtvFwQM0Y>Am%aP~*qzwh1u4PLgy3%)Dc{NU{Nh>2U-wmWaE z`kFPb;!UE^qe&Sbw_SLXdBkXK-?Sf}KbgEKW1qEbp~#uqH<_zet&05f(%r??Jz0uv z`Meq~`T9?s-|N2Vrt^H<w9;w$N%e@GhtDzdvt8dD5*98XD(D+{k<Uc)iulfFlk`GM z)OTHBx_<9+zHC$ILL)Vi7_(caGn@aOnPJ*4{lADkWZjde-qJsEykrF%b7M+wzW<r{ zS#1uV`p1o(M~)qP%*TB^u{>$}&5gHZE#~UoNqpGSx|7k-(^E5|Dc;wH@36s&b)3)6 ziiqSM-s1D@PPzQ-Eagfo?bZ_$!;8<bUf%Kfog|O6S<A9#YC5N#yn4^t=PBM%Ez7wf zFl$L1hileeq5h^Q38rYLCIN%rJ!y;fZ?yQIA%A#M-6yX2T}v7(BkS^Ze$`96Q>^~@ zSl^-N-yiaEGb;voEu3;_lTK9h-ip0(N_PZ9!orfSzwME<?P~d9vF!Y;vwtc-bMSXB z*t4j`Al%};ew2eth03mViIHKq`wwmMNm6>eV%55o>O@7~wOWS7Z+^@!x}IXcIK)6Z z_ebIJqh9+9jh&XQkKg<1)VIgKL+%IU6dAl~Jhb#c=iHrPnsuA=s&4Jpkt(q9(s{kf zuzKN&xT0^}hBn`?B)hn}ZqlvScIQ9+WVfhx<fpIU6*g<1h>JY>{@c^fE9ISYv4iHe z_czW3Hn(p|c^Ura@6qW$9=vUJadl0a#kSF~(8SC%C@9FqH<#BgUVB>V!vYIVetva5 zvw0^@Xz(0Xu;1@+x8k*|k^sk^<cMQycU@Q~?sR9ulqpYEtyv|sEc4u{lX0fi@vns^ z?eSZg8QgFyU`pwNn=uO?7g%(3_AT4FvvbA@37*Rj?tZs-2wD4Z$&Z+Kvtmxa4mU~I z8e&v`Fxo=Kk1dtw&?X(F#Y%x*hX2=^gIZ-JJAULn-Cpx^{`ng_ezI$=*2>7rTeNiR z)L+M{yiR-F*idMjU3~4rjT;9V7+)q`Yzpt}?%nGkeCu1?-(PqC9Z4=eY*$geaL4oY z+Z9`8%(SfgV`sfmF;aQ|vvpVYOyn1f(-4to`fVjq;c+8m;bnDG*4XPCUz*)X%sX}J z)XDq%n$6c`Bt{f%IGy{EJ8kZ@BfRf*6VI#&{PJq*nQHmEBac+$i@$70ykqdyN=xhX ziMYwFf*fxqP1;es&iD6+ScM1a(FemGJreTp^?bTie4gl2(a;{5iJD8M%vg3XGJW33 z=<a(PKW!7WIbp{a+@`a+>aK03cWbIF|EkkF``9O)oocl#^W)=dHZpwbX0zu`jl8+U zEn4;w<C$MJO}Fj3RIa6dJTck7_;PN2>dWi*4XQ%a*8lm;I?L8~&6%jiM2XzQj%}Bx zTwXUb&%RY#ikG)kWV%S==G!lCn@_#9E33$C&B8^im|`#Qc-i*a#5?k_ald8S{7wIy zc6lHDZv5+cPi^8^gUwoXTpikuy-Q~=y+7af%JD^WYL=bf)&JoGhtaR^slWS@^lV-& zSJ-n?{fE~1b7#%(H{E}q{%>~vrCU;S=2d-Jxc}kz-w{*)%5Es`^Zl^>Zr<^{@<p$u zPHp<Y`sae#s>^m0?%lcM5?iYqIPv0?sp6Bbsn0!eLc`0;yYiX5{*0gwwbLSo4hQeO zDt0K(lCs{dW0&yx`_v2Es^2V5Et+tD?d)k$LPhFsA9*_R>t5cE7r!B7_wS(Hq7`wk zqpzx5%CkH8dwp^H&n|{{zbtA#b!}>SZTI^{ZHcbM?d(XgtzS!3)YUd?{kA@J%Deof zTJEm7D^_UC@l&6*Y;mU0?6ZAWOlC<*ugG6>J5?rZvee4GzZYdoT@2h<^W)_5R~Oai z3AG9SxZ&V?bHdcE{*#}vmn@#YEuYic<i3cStC)Ch>=*C<^N#4RzxL<N#AHAF=W`zW z`g*Nhw2G(xK>y{3PS@X<RL@$uLg&8f{$pvIg~g@C_k8<&^wnN|yTC>Vhdzs{8HIPZ zhQI!M>DR-e*1*u%ji)VgHZSiy(UCE)_93fj{lP<GsViR>hpnHr-TvwuPU(GRd`o|A z)L5)6nq0b2_tDjy>odC2Zf-xRKS@ZrXHU3Zc2&Or^fqf@bv{XpfM72{`RN{;mv{bZ ztNQiDZ$ZNEZSyTPH*PHS(A=4QD`)YtZR;+XoK0_CRQ9*6_j!Ez<J{%;cHbS{()y0P z&R)9o>SaT|+pls}jg-0;xAThzbsc)YIqco^iUJF6j_(V1<k!wTw|aH#pXct@%UGL@ z*(SUw3yz$@-IZCr>q4$^#iyCiBev)1KA%_2cetHb+0KknQ?<93_n_hBZQo~JetAUp z*|Wv{_Q9s6rJ>8hdrqB<ygG09ul_R|AJ5<M_?@Kr-`|VByIwjM92K-6#NdJd>&ac2 zQO<09GB0lIDqWpluXS^+Oi#e(l+|;!<NBTat-I^@ez4J=UVHQq>*vZ3|01VcIehHX z{QA1j*(Pe=J{vy&BK0OUzUcYf@`7hO|2x0?^)*-7M0fX->n*K2H{Q(Asd-+jbGbrG zJ^iO%=W(+&mTifvK6Mo>Qd(60F~D?XqNecfyNn9TN=o0Xd!K9&+fbil@crX4>2>O# zUkFz0)xB~pbn=uLF6)=D?7Oq;b<&irN6psFkw2>*tyKAFHb<THwyEpatxqh7*&G-f zym(3~YxF(8&EjUW_ts9G6yWqHr!W8PEK^g4WtmBvZ(FzI&u3+{`t~|}S8d$09m#sq zb~T^uj$dlu+K{<XEpNGke!eu<(Y{G<r-V&eAQDq^(Y0phQBPm*4}v;3v!35_4eXJu zx5?l8QOnuwU)O3em(9C8)DPyaY-?jn)ok_M{#T`G*}^HUr(Y%=>3Dc--oA%VUu--+ zhx5ce&Apr~f2w=<=kl@p+geRGK5y~%%Laq%HFw{xl`{M`W4oLG41<#VQkylbQ<&P+ zCD;6{(+y&Y?mqu~>CMYWIFI`;S>ac3X|v&+@9S?|yKUF;;LqoCskdV5RdvoBeY^eM zp(UQ`1;5)Ty6m3vtLS5R#57kImnV9bi|$<uD~Wyn?Dg_j3g=GB*gu@eDXiwgrTC<y z@bS4TCLeG8d_FJt=yBD6`vKPr=Pvs@WzmgWw@wAR^FF&aJAYF5v;F7ZNPf3yeUNne z#_zPo_N@&J%|gsNe}84`oIdnH^2U<pTeGrCVn030*8lkBF~8xzCI1WK?7#YFz1n*H z(uFGre#sYosF=00?o|jIzvQv&w`I2ZMsGWD?V6a9^5Qx#{V77;kyox=H%hr6Ft6%O z;v2Ku@ln24Cs^h=bvx8my<302XI|O!_@(#XzxJ4rHQ(Y|sch?_HH&&gS5Mnqc$v+_ z_mcWna|WwpzxG~zzu}|P{RrVRljLTl80g%5utKHzYpPZEwVg8xa->{cTfca|^{#cc z6%`fzQ4=S_$L`7L8B=z#_0aS0L2+?To{^l(mTs8RnmLQbr+b!|rr!QHN>BNJxQ4ih z=q=~oFZd#2Ye;Nx>+Pq{c5oiw^rhQBwa}9@ZvFL(yUX(*B|lzz|NY{G<7NsLMVI@| zrm?d&v++1C)wYr2cjDNVch-6GrnIlCLQ|_(mwy+$aOC#Qe+SYz;vz)PJxE+!Y5Cm! z)&9Jk)AvQ@)W5s==jE*IjLeT8-s}JKO-*IpwQk{St6l3BzqIP)>|FBI*I9AGEEQEt z*7mz6ll|?^9`lXf@q7LDqD!6XT>ZzJ6Qxwtmj}c|T~S;hGHKE$rCHIlJpA4qZTR=n zL-XU$+9~1F0)oY5PT#1!7Jt3OWMyDLz=>6B-iNxm?echinLYOU&o`g-eS;%^n;gGY z%W@=)>-UV{ozn7u9~=-!wE2I=I9FNbtca-i$H)EAlJ;dhU%!^tZ2VEIbNZ0zvqQ4a zj)^{Vy55}mb)Fc1<<H75{;&Ouob>O!D|oi|AKU3^>l2=R**&x34U5<5u9YiSs+n%p z-)LBP#H~6bCyztTY3tF_v-8wGaofsz2JWAtpxScaVS$hV@4H!cv#(vd*30xO!pqg_ zP1&EuhGi`4-+JHOecrm@^t7UX^ViS*{r^W&_hjyK_Uwu*2N&wg|Gjic!bpQzQ`LK4 z6jQGEsieipA6S`0#HT;}`m3Y2cVYhgeK&Hq^@aMls#;gPZ|<MyWKeS>fJeDuStgI9 zO;16&%G!HjLc)_eIQsuY#(bYVdC^-#PcM$f(~>e`b^ltYpS>3LK5g;R$}hLpObra0 z{`YU&f2Pwx<!jHMirT4P`rb~rVA-aM>;tno3Sa+=NsF2gyvn%r5+@52<0)<LW<Ku& zOX}~J6q!E}GGID#<j8}PT{Fzz^Lm{+Rd_4Kw>$nQpS0DHU61w6v-Sp81qX&YuD<Ra zlcTe1U1R2_Urnqr=BZqU7dPhI+S3|-zvA+pz!;VIs(+CaCFZ*%2Q&N5d$6iuZuA|w z$xBRRmmlsFX!^;0Z=2Zv^p)<KpBH_TnYmRvEQfvDd;h<?`x_W8&Fa3ij_un|YpGXJ zD)$<aE*x-tvCD72-ODT2t_FmP$_Qv`>K=SsCM+p=a(ef42XD#wanb%oEvdgtx<Ai* zDWAXd@9Wgl$>(i<>s)-5d(_}hMwEo`v3|w>?V@}BA5=eb?8wHXr&`6Ar|AYM*t2MV z`gA|G_R{C`wwgl1!W`V(i<fQ{oxgwT-SqMnfs9#wchlUxcn=#GFsaS2|0tiRHShG< zbN7xP71{sc#IB;k6FXNd*pvJDMy=ngm6^O@4}VGLKkELkbIeGzHu$%&uxxwcj2|^| zN{5<fOXx(;J1c*z`d0WAw|S;Fes5oW-1PRny63iu+i!C6^FQn6Qk-G)(}k(ZhGG4g z>R#X3=Fc^+yf4}m{_j}E$2m_kbAKKe4fhSy-~VY>>Z~w>@2YC^W~_)%I;7lL;LcXx z?*6c-O>yaxb<5h$&NfTje*5QH*5`{4PT81zyi9ZE&T3AM0?&K1H42q~@AzV&eC~m~ zxamZ_ea{<zrxiTPOfPzRwVop{AYJmstiH=nm2}SRJf3$pQ8|dC@$5T?>$w@b`mU(B z^U57@=D&CT%kKQ=TY~+StgN)0H9r1Y5hz@pdt<}F`IEQ4I?wTOdinkT0aZ4-Q>IM| z3W<^7vHimqx4!?`vb0azo*CEwbK06(EGH-!_=CAlN=j-*$sd=8C6<qwPGs-;v}4!& z28QW5wS0+lIYZvO4e>p+@$a8AHhX8P)~|cElUq7--HjvVtHTm!iA|h%@Z-aRa+c-u zi<I<JcWP#H_+5H-Jwqqr`Lk8p_1(VL4Rx8@5BCX7h@aq|nQ3TvF>p@pwU;qfA6ums zELxN!+kBPlQPp=p!?$MAy}Y~<jLp}?<gdq-Z{GFe)9M|6z6bC4dM>jxU$4ge{l?|< zwnjxoOJ1;No`1gm^wS4>HlGi2I<=dfPv*wUuc~*09U8hn?LU&o$N1Ia!QIzCS*E-B zzmZS)<RCx4?we{`=A;=D8t%V$_B#1~{SKb=82fYo!g-e4%OB5=>q|VbVdI?IXOTbt z*!i4xxn9E5$gs7v^vacM8y0KKNZL{Ro6p2oJ9<}1ru!OY(Z%fiQYt#$7w_EhDG4#T z{ps_{m1|wOOyhpO+4wqaZAWO`Z$r_kQ$s(C>ui$YW4{;}_$2rA^VzBQXL39&a8dj6 z@=fxqIKMOR=EMi^-#Jw+$)C7lWyB*c7Uu6|GkvvIWoKn(tWY*IocZe*o7QUWlOE?E zeB4>Asj0nm*|uqRnwnqyJY6-rZ~a=u_x=8J?hEFoy#321>lGR{iAbC0n)zJ*Q}z5e zhi}j8`})37(>$yGGkR!7ZmVgX<dnAlY}CZNb#Zy`HtiC8tQPb4y}o$;q*=2LEjw$! z>Zx{^lE7<T?Sg-8rmL;@Ms0syTYYnpqjKQ2Opa0`FQ0_%OK;52Eh;##E_kQt@qEkI zJ;p26u0Htub5LY#<K2fUsyoFmPP~{ARj_!MSU&ez-QI|4t?O<Z@HT(H_kTvqj|w4S zp$-oI<%?Ez?d-Sh4T_mDdG9CL20`UIQDvEbt6sdwsJzsvZjkiDKu}!%_?GJT!M(h^ z+n=mCSCv(M+4#8ZXa5KNL0Lafnas=XD6o&-Q1UX=ZmSgo1JgOsS^&GRdi!0@3m1sD zJXrgs(ZiBy>94)}4;p^lcV7A2-Y<{3pUhtt<Lv4xx%BB#74>h2g4BG^_Rg3ldWLiB zO{=C{-^&-4^d+*)`2FJYwOggHb(c=zdr)GvrsG3FV03i+l!?=3?JIbAi0^sUn;RSV z@@zRh;gi<VH4j<lFHiNXdatROd8mbRVqCMKWp-HYQl~Eus&_Ql7k-(M+<(brYVD^d zp6evP-%)-2`t^-XrNYZnCr+Eyb~cau-N&TJh-sb6Sj%S#C`qiY+-sM1@B99=x`W@u zbRLU5-JTy__FrP<kqA|Z)h#vl=GjkA?=Sg(=8Vtw5{tH3Udx`Ot^e~N;p*<{{mkE+ z8@#o*Nv4HHL`1|d6=6Kgz`}f){b5n-$5*dEPd&TRIPr~yptN|mnrd5Oz<q%`SI#Z7 z)X=%3sC&6ep}e##EPCVot$*K4oij&<f5P7D!p>(BFEcUr**%-Fah8zwx*dOn-k#E~ z(`IU9Xlyw6*xxp{_Uqa0(;P&iPDwF*c=6w^;qJQNfDOFMFT2javd`wz6XRpsa#_2J zHigS>$d~3ey=&g{g5`Di+9=*@@^RIVeZStZj|=JT^*uAAbpOw<=J%^~*BD<<TYF-{ zt~dIv84-W~-g>afXu;B>&6!e5mVdo!>iccQ`v$8uQ3=+{$NKGE#c$2tbyiIL!|&Bo zjr^mh&)vK2@&CttKf|-U*55xruW))?WN7Cmk;FXn*G1+A@3*p^()YZvB`fso!ZnBY z6-8`4P*${glbE-0!ItyyXQy+T)}?=JipZZnW!g*CrKv8iZjbpTYPK8AKI*;Cj3F^N z>xQD?9$}ejx&`?>@^*Lfird4#dc709_vYh;3l|hx1=@nLCT=>icxQIlI?F3&@3j9< zWnxO{n_sXyK#O;&myV+O&8Z)+zPh?vns00D@6+{b8``<spIU#|->J;>t)P$N#$ijP k1pen84YqS&0zd5^p4PY_xn$J=1_lNOPgg&ebxsLQ0IDg?iU0rr literal 0 HcmV?d00001 diff --git a/Tst/tst/generator.py b/Tst/tst/generator.py index f3821b6..dee547c 100644 --- a/Tst/tst/generator.py +++ b/Tst/tst/generator.py @@ -350,7 +350,7 @@ def make_verification_script(model, model_spec): def make_documentation(model, model_spec): - return None + return def make_all(model): @@ -363,11 +363,6 @@ def make_all(model): dc_path = make_documentation(sequence, model) break - #cs_path = make_command_script(model) - #cms_path = make_command_manually_steps_script(model) - #vf_path = make_verification_script(model) - #dc_path = make_documentation(model) - if cs_path is not None: paths.append(cs_path) if cms_path is not None: diff --git a/Tst/tst/tst.py b/Tst/tst/tst.py index d06ce7e..f823017 100755 --- a/Tst/tst/tst.py +++ b/Tst/tst/tst.py @@ -282,25 +282,26 @@ class TstAppWindow(Gtk.ApplicationWindow): self.btn_export_csv.set_icon_name('text-csv') self.btn_export_csv.set_tooltip_text('Export current spec to CSV') self.btn_export_csv.connect('clicked', self.on_generate_csv) - # self.btn_generate_products = Gtk.ToolButton() - # self.btn_generate_products.set_label('Generate scripts') - # self.btn_generate_products.set_icon_name('text-x-python') - # self.btn_generate_products.set_tooltip_text('Generate command.py, verification.py and manually.py') - # self.btn_generate_products.connect('clicked', self.on_generate_products) + self.btn_generate_products = Gtk.ToolButton() + self.btn_generate_products.set_label('Automated test scripts') + pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(os.path.join(cfg.get('paths', 'ccs'), 'pixmap/pythons.png'), 28, 28) + icon = Gtk.Image.new_from_pixbuf(pixbuf) + self.btn_generate_products.set_icon_widget(icon) + self.btn_generate_products.set_tooltip_text('Generate set of Python scripts for automated testing') + self.btn_generate_products.connect('clicked', self.on_generate_products) self.btn_generate_script = Gtk.ToolButton() - self.btn_generate_script.set_label('Generate scripts') + self.btn_generate_script.set_label('Generate script') self.btn_generate_script.set_icon_name('text-x-python') - self.btn_generate_script.set_tooltip_text('Generate Python script of the current test') + self.btn_generate_script.set_tooltip_text('Generate compact Python script of the current test') self.btn_generate_script.connect('clicked', self.on_generate_barescript) self.btn_start_ccs_editor = Gtk.ToolButton() self.btn_start_ccs_editor.set_label('Start CCS') - pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size( - cfg.get('paths', 'ccs') + '/pixmap/ccs_logo_2.svg', 28, 28) + pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(os.path.join(cfg.get('paths', 'ccs'), 'pixmap/ccs_logo_2.svg'), 28, 28) icon = Gtk.Image.new_from_pixbuf(pixbuf) self.btn_start_ccs_editor.set_icon_widget(icon) self.btn_start_ccs_editor.set_tooltip_text('Start CCS-Editor') - self.btn_start_ccs_editor.connect('clicked', self.on_start_ccs_editor) + self.btn_start_ccs_editor.connect('clicked', self.connect_to_ccs_editor) self.btn_open_progress_view = Gtk.ToolButton() self.btn_open_progress_view.set_label('Start ProgressView') @@ -315,10 +316,10 @@ class TstAppWindow(Gtk.ApplicationWindow): self.toolbar.insert(self.btn_save_as, 3) # self.toolbar.insert(self.btn_show_model_viewer, 2) self.toolbar.insert(self.btn_export_csv, 4) - # self.toolbar.insert(self.btn_generate_products, 5) self.toolbar.insert(self.btn_generate_script, 5) - self.toolbar.insert(self.btn_start_ccs_editor, 6) - self.toolbar.insert(self.btn_open_progress_view, 7) + self.toolbar.insert(self.btn_generate_products, 6) + self.toolbar.insert(self.btn_start_ccs_editor, 7) + self.toolbar.insert(self.btn_open_progress_view, 8) # IDB chooser self.idb_chooser = Gtk.ToolButton() @@ -328,12 +329,12 @@ class TstAppWindow(Gtk.ApplicationWindow): self.idb_chooser.set_label_widget(label) self.idb_chooser.set_tooltip_text('Select IDB') self.idb_chooser.connect('clicked', self.on_set_idb_version) - self.toolbar.insert(self.idb_chooser, 8) + self.toolbar.insert(self.idb_chooser, 9) # separator sepa = Gtk.SeparatorToolItem() sepa.set_expand(True) - self.toolbar.insert(sepa, 9) + self.toolbar.insert(sepa, 10) # logo self.unilogo = Gtk.ToolButton() @@ -342,7 +343,7 @@ class TstAppWindow(Gtk.ApplicationWindow): icon = Gtk.Image.new_from_pixbuf(pixbuf) self.unilogo.set_icon_widget(icon) self.unilogo.connect('clicked', self.on_about) - self.toolbar.insert(self.unilogo, 10) + self.toolbar.insert(self.unilogo, 11) self.box.pack_start(self.toolbar, False, True, 0) self.info_bar = None @@ -889,9 +890,6 @@ class TstAppWindow(Gtk.ApplicationWindow): This function generates out of the current test script model the command script, the verification script and the documentation file. If it succeeded, a dialog box will be triggered. """ - # ToDo: remove the reloading, when developing is finished - # import importlib - # importlib.reload(generator) model = self.current_model() if not model: logger.info('Test Files can not be generated without Steps') @@ -901,21 +899,38 @@ class TstAppWindow(Gtk.ApplicationWindow): logger.info('Test Files can not be generated if Test has no name!') logger.error('Please give the test a name') return - self.product_paths = generator.make_all(model=model) + + existfns = self.check_for_existing_files(model) + if existfns: + + dialog = FilesExistDialog(existfns[0]) + dialog.set_transient_for(self) + + response = dialog.run() + if response != Gtk.ResponseType.OK: + dialog.destroy() + return + + dialog.destroy() + + self.product_paths = generator.make_all(model) # triggering the dialog after generation self.on_generate_products_message_dialog(paths=self.product_paths) + def check_for_existing_files(self, model): + cmdfn = generator.create_script_path(model.name, generator.cmd_scrpt_auxiliary) + runfn = generator.create_script_path(model.name, generator.run_scrpt_auxiliary) + vrcfn = generator.create_script_path(model.name, generator.vrc_scrpt_auxiliary) + + if os.path.isfile(cmdfn) or os.path.isfile(runfn) or os.path.isfile(vrcfn): + return cmdfn, runfn, vrcfn + else: + return False + def on_generate_barescript(self, *args): """ Generates a compact python test file without all the additional stuff from on_generate_scripts """ - # dialog = Gtk.FileChooserDialog( - # title="Save script as", parent=self, action=Gtk.FileChooserAction.SAVE) - # dialog.add_buttons( - # Gtk.STOCK_CANCEL, - # Gtk.ResponseType.CANCEL, - # Gtk.STOCK_SAVE, - # Gtk.ResponseType.OK, ) if self.current_test_instance(): # current_json_filename = self.current_test_instance().filename @@ -979,7 +994,7 @@ class TstAppWindow(Gtk.ApplicationWindow): dialog.destroy() return - def connect_to_ccs_editor(self): + def connect_to_ccs_editor(self, *args): # get the DBus connection to the CCS-Editor editor = connect_apps.connect_to_editor() if editor is None: @@ -987,6 +1002,7 @@ class TstAppWindow(Gtk.ApplicationWindow): self.on_start_ccs_editor(False) editor = connect_apps.connect_to_app('editor') + editor.Functions('present') ''' k = 0 while k < 3: @@ -1046,11 +1062,11 @@ class TstAppWindow(Gtk.ApplicationWindow): Gtk.MessageType.QUESTION, Gtk.ButtonsType.YES_NO, 'Scripts were generated') - message = 'Generated files:\n' + message = 'Generated files in {}:\n\n'.format(os.path.dirname(paths[0])) for entry in paths: message += os.path.basename(entry) + '\n' paths.append(os.path.join(os.path.realpath(os.path.join(os.path.dirname(__file__), '..')), 'prep_test_env.py')) - message += 'Do you want to open them in CCS?' + message += '\nDo you want to open them in CCS?' dialog.format_secondary_text(message) response = dialog.run() if response == Gtk.ResponseType.YES: @@ -1101,13 +1117,14 @@ class TstAppWindow(Gtk.ApplicationWindow): progress_viewer = self.connect_progress_viewer() file_names = self.get_log_file_paths_from_json_file_name() try: - progress_viewer.Activate('open-test-files', [file_names], []) + if file_names: + progress_viewer.Activate('open-test-files', [file_names], []) except Exception as e: - message = 'Could not start ProgressViewer application.' + message = 'Could not load test files for {} in Progress Viewer.'.format(file_names['json_file_path']) self.logger.error(message) self.logger.exception(e) # add a info bar message that the starting of the CCS-Editor failed. - self.add_info_bar(message_type=Gtk.MessageType.ERROR, message=message) + self.add_info_bar(message_type=Gtk.MessageType.WARNING, message=message) def on_start_ccs_editor(self, *args): try: @@ -1328,5 +1345,15 @@ class ScriptExportDialog(Gtk.FileChooserDialog): self.csvspec.set_sensitive(False) +class FilesExistDialog(Gtk.MessageDialog): + + def __init__(self, existpath): + super().__init__(title='Files exist', message_type=Gtk.MessageType.INFO) + + existdir, existfn = os.path.split(existpath) + self.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OK, Gtk.ResponseType.OK) + self.set_markup('\n<i>{}*</i> scripts already exist in\n{}\nand will be overwritten!'.format(existfn.replace(generator.cmd_scrpt_auxiliary, ''), existdir)) + + if __name__ == '__main__': run() -- GitLab