From 8d06194983c3a03a615300fcd8a0da4ee59d1828 Mon Sep 17 00:00:00 2001 From: Lova ANDRIARIMALALA <43842786+Xpirix@users.noreply.github.com> Date: Thu, 16 Nov 2023 09:38:24 +0300 Subject: [PATCH 1/2] Make LICENSE file as required in plugin package --- qgis-app/plugins/tests/test_validator.py | 25 ++++++++++++++++++ .../testfiles/plugin_without_license.zip_ | Bin 0 -> 39590 bytes .../tests/testfiles/valid_metadata_link.zip | Bin 39894 -> 45863 bytes .../plugins/tests/testfiles/valid_plugin.zip_ | Bin 39590 -> 45559 bytes qgis-app/plugins/validator.py | 5 ++++ 5 files changed, 30 insertions(+) create mode 100644 qgis-app/plugins/tests/testfiles/plugin_without_license.zip_ diff --git a/qgis-app/plugins/tests/test_validator.py b/qgis-app/plugins/tests/test_validator.py index 54fe0b2c..13d5af3a 100644 --- a/qgis-app/plugins/tests/test_validator.py +++ b/qgis-app/plugins/tests/test_validator.py @@ -193,3 +193,28 @@ def test_zipfile_with_gitignore(self, mock_namelist): exception.message, "For security reasons, zip file cannot contain '.git' directory", ) + + +class TestLicenseValidator(TestCase): + """Test if zipfile contains LICENSE file """ + + def setUp(self) -> None: + plugin_without_license = os.path.join(TESTFILE_DIR, "plugin_without_license.zip_") + self.invalid_plugin = open(plugin_without_license, "rb") + + def tearDown(self): + self.invalid_plugin.close() + + def test_zipfile_without_license(self): + self.assertRaises( + ValidationError, + validator, + InMemoryUploadedFile( + self.invalid_plugin, + field_name="tempfile", + name="testfile.zip", + content_type="application/zip", + size=39889, + charset="utf8", + ), + ) \ No newline at end of file diff --git a/qgis-app/plugins/tests/testfiles/plugin_without_license.zip_ b/qgis-app/plugins/tests/testfiles/plugin_without_license.zip_ new file mode 100644 index 0000000000000000000000000000000000000000..1f93a0418775ea6e6f9acc436ca5c23fd101e522 GIT binary patch literal 39590 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 delta 7520 zcmb`LdrVVT9LGM0{a~(;1Dp z9TWF}#kdRW4El&4JoNh~e{9%au{cd~dx%BpOuiGWGG|lgG ze&_c(=S$abK36{SDKE(NRR|Ei;xb(GyM6<%E(= z@Qd$_8~uq&{f93h+=~;WC0YR}Q%y)HiKfwph>0$HwDqvJ7a0nDR%x_zmLIU?`4ED3 zZsM*Txx=nqjv^#T=vrRsI#apXV&YtE`7^F$;8H>fz6)Hm&tG1yOVnu3RdgR*qay@C z;!Di-C&U0wU-Jz|r@a%$t8>&qyn1F|+(K{|?Zk-_A9E7l?H+}AZ%v*L5Hljr7H2~k z&`z8fGJ%jV@NsbL1W6zJ^nPOixN?`aP&I}SG!q9l=?R$tz!m05Nua&Woa6_@1y)_+ zR6jz{PMlagiOUrIxXB<*yxlZQ-=fi~u2-&@0W`F860s85+~el}VeTtUmO5u`Vwz@5 z5lOrh4bto^a=NQ8DBYE8#T1O2tuHjIvZ315D39a}HpmGSC zlU$6B{d!ppYl=oHB;M@hZE6+3_dnHppMW_c#Nm+v&PK{@mu@8cwss3P`ys2jq7s@N?ZkHf#=b657eGdz{QN>mCzywbeaA=WAfFKtQ?SP8)N%k(7DU+t}>P z&GdzRZ;SrCJq?CETD$knavz2f5(8;^ydVw}@12-aa6$vbypCTte*iSJ6DJy=-{XP! zaB+0?I#Y8~t+lM4%ez-LA&KXc&S&=*X|o4&yOXj96LXT1v!`G8ffY2`~JpV0qlVJpE{^K`#uGVr z4^~scT&w>s$Pe0zQwfYn90s-N23nQ+IQr_Hx<54$sRvBz8}UFzTPGF%7K|?Z43|F| z(__H133DWQMvfeP&EPM#cT7((-C_-rj$oIy6}|d?TyaYac!jp^y|TUd0KA&)qVDSn zmZVa;{xm=@{Mdc+B$%P8I5Yy17VCnpXbhBu+FKj9so*3zdf}(RO;A2)>pg%YZcyfw zr)!)iiQ;hP!CE1NKS`$aN_$BszV|-XzboPTamY+R`Dj|e|VB)-JEDo zz!HDwXn*}=*fE-k0|#Ac_doo^l+|lW>rKgxW^QVDFUgSFD>#h4+|rYJ5gbK=IJ*kA zf*0|LP12`5&2L&(rqRCDYMF*w2F=8QI;j2;0>`|zwkEl*rb60hLR32S-3Rtg?O431 z%v%$h_es`Lc=aLHam?`VZ0?R^n^vb`RC?nWAkW1~4_ zoI4Y6VTCeft9L30S3U$}$oS?=`p<{qFANW>M{pCSKLfmlzzFK!KIT8{94?FuGG`Vb zr^v+dUC1g`P`JZ5hpiiN;V;6NE>Es&9^SdAGTRVH$m$rQbwWLB&S z8#CiMLP7E>Y$R5y3VHqu2nE6Wzctd496=+=l)J7*!ocDMjn%BEc=^X+yO%?aM}le8 z(Xki-uXlZ6L=nk~R=D5tL>P5%FD58`v8EL8SV;;}m*JgU1}?@dk*j;zBLf{}l_^|# z8SuQ9xV;B-scCm-fI@#+Wy-dc!*+Hh`kOzh#`TOTt4)Pz+PR7zJrb?ZMOK#zUA$Jp zxma31iWK#9krkyvW`8L#xk;iR>#Q0T;>>F~7e|$~o-VS2lpXU9TTvNJ>5NhsMOKc2 zie>62)Pye5sC>ObB&$V1$1=#YazF;to~$qhNIctEAqpavL1tEQ$bc@TcOzDX3OoGS zY7SYEIv%~0d0$|KBD%-kKZcAKYiV>(Xtrx+jB--)V~tg$!q$$ZQ9TA!whF?C4zh9- zlq?g*;CgT{go3P9h-9@W=vW4s(ZC@=)Z%F&qifK1WEh3luBjUYr-e*OJL0rpg(<39 z{&CngY@kuSTph{qmOs^5S<2pL9JcqHsP1sA%o^fxtP&L_ea>dUMJ|;mY=v_JTZmPp z!ZUsIR)Vrt=9$hr%IZ$G*d4Z6+k{z?scJpc5UWGk`?16J-YW#vtisT;DpZ*GzMZt@ ZczEh)-R=kf;|0|QKL_A{_({9*)4v>Pxg`Jq diff --git a/qgis-app/plugins/tests/testfiles/valid_plugin.zip_ b/qgis-app/plugins/tests/testfiles/valid_plugin.zip_ index 1f93a0418775ea6e6f9acc436ca5c23fd101e522..82210e3347272e48a4798fcd2d2577de8cf8d64f 100644 GIT binary patch delta 13723 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 delta 7530 zcmb`Mc}x^{6vuxHOLs-7fXl5MiXw8T@kWuZ^#TM%@oWQfEQbPeiGtMaMk}URu>G0Z zs!jL@2`C|SR~k()u{BL?OIxiqt)#{%wzeK~COZn6Vv$urcp5@At0X z`{J|PE+@~pnAaq`Y7GP*eLda4{owd(Gzle@ri#kU;vKm=i>9wn_aM5o3kkXF;0wR+ z+&!9Tw0B(z;r_CN^h8hUYLnOUpdUgA87Bm#WNkO)6&9H|V1W64_}25?3ArusB_LW2 z8}rjEP*T=;10~dE)u1SsrGcUUREp^K_u0ot=nD zXOoYgJ%!0HFcp>BO9|72NgtMYIU1zdUXyfV=eUKAWUHoN+|oMzmK0PLJL>v{obdxp zXQO{SSI93!2(c6B^<(ZYe3*$2MscHuBF4}TwLpmlbBr+gwEy1Njs18o?~5mAp&!vs zypYal2&9RNO+;Zyu4#8{c}3-5ki?sPZi7|>@WXREo)Iudgg89d)80ry$K@NzntHql zo4u*LFuwqr9qq)4-rja%*ufEq=?53OLERsEmg7GUItlF**F6qWg>{b!>fPfUp-Xiz zSRkO>ET+qnxRJE@p48Z^N?Pm+=iVFo)rmNm&1mgBH_QFUpO7#}(~Z<{OuRHPaCN5+ zh$$c4+0za*v=b-#Lcd1<@!OQp;_asDT|3HiE4aK%vI&X06n!c2%vyb7PjXvyVoy|3 zbZlbGEf;u$PQU4BpdY*phP%`ouff0#hc_m~MaZ9FZ=4rK%{^;X2U%Z~Wp{?_*Y%e|suO>UF8K(@gRGL$I4xpERZtLm-Gc*;4213#%IiQi1-m*~Zy2`y8 zxJgKipR|4aE$ai38oC`iCf-!kir? zv85&XgFgF%ToT!HHSXFc&#fo*V{lP$GtezHxP-EdeOSp zHw;^#Z%5yp31EYEYmzlC23Kh@3Mt^80V94>B~9&Me)Z)grI}Z!b}k_{OQMi0(5jNv z=X9Na11m96v+$42G6qB^?>ha>)iX(M(hdi+N>d2#8cT~?1C!O^Se*%7!Mh28$nhp9 zR#oy?l?j*gAn$?Y%OHYURV9zrnAl|eW3#*#Mo_7mm7N#u*pY>wajx>ufbm|eGcWMl z4uv{Z6FFG1L-A~O28;`)(>0xee6l4kL1zOD#j(*GFusF0|1^aHR+bu<#c0J7>8wJ-nJEK65XuNDLCZyAFTklgx(5ykC~m9Mbr@JXV~7=w*1?bZ{{&U8w@*uRZ?ktVV_9mjSkwsJ0xC~$|n$VyXo%-bwYSya;;qB4rCFa3}U8Maf9x9QnDg{N$AP?pM z(m-pC{wk1ox3Q8G`UKa}525pDNQMh+iRS2#Nh3a<5b-`*>6uA6jvs|p8{q0;KDe#tG7g&YL zE;KgFAC>fa( Date: Mon, 20 Nov 2023 15:28:33 +0700 Subject: [PATCH 2/2] Update qgis-app/plugins/validator.py --- qgis-app/plugins/validator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qgis-app/plugins/validator.py b/qgis-app/plugins/validator.py index 925e0b0c..930eeb77 100644 --- a/qgis-app/plugins/validator.py +++ b/qgis-app/plugins/validator.py @@ -238,7 +238,7 @@ def validator(package): raise ValidationError(_("Cannot find __init__.py in plugin package.")) # Checks for LICENCE file precense - licensename = package_name+"/LICENSE" + licensename = package_name + "/LICENSE" if licensename not in namelist: raise ValidationError(_("Cannot find LICENSE in plugin package."))