From c001cf9270775b50a381b3a71d3fbdbb6e6d1903 Mon Sep 17 00:00:00 2001 From: harold random Date: Fri, 1 May 2020 12:14:09 +0800 Subject: [PATCH 1/7] support .egg-info to store wheel type extension metadata --- .../azure/cli/core/extension/__init__.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/azure-cli-core/azure/cli/core/extension/__init__.py b/src/azure-cli-core/azure/cli/core/extension/__init__.py index 4104f77040e..47d67dbd490 100644 --- a/src/azure-cli-core/azure/cli/core/extension/__init__.py +++ b/src/azure-cli-core/azure/cli/core/extension/__init__.py @@ -138,7 +138,9 @@ def get_metadata(self): return None metadata = {} ext_dir = self.path or get_extension_path(self.name) - info_dirs = glob(os.path.join(ext_dir, self.name.replace('-', '_') + '-' + '*.dist-info')) + + # include *.egg-info and *.dist-info + info_dirs = glob(os.path.join(ext_dir, self.name.replace('-', '_') + '-' + '*.*-info')) azext_metadata = WheelExtension.get_azext_metadata(ext_dir) if azext_metadata: @@ -146,11 +148,17 @@ def get_metadata(self): for dist_info_dirname in info_dirs: try: - ext_whl_metadata = pkginfo.Wheel(dist_info_dirname) + if dist_info_dirname.endswith('.egg-info'): + ext_whl_metadata = pkginfo.Develop(dist_info_dirname) + elif dist_info_dirname.endswith('.dist-info'): + ext_whl_metadata = pkginfo.Wheel(dist_info_dirname) + else: + logger.warning('unsupported folder %s for Azure CLI to read Python metadata.', dist_info_dirname) + if self.name == ext_whl_metadata.name: metadata.update(vars(ext_whl_metadata)) except ValueError: - logger.warning('extension % contains invalid metadata for Python Package', self.name) + logger.warning('extension %s contains invalid metadata for Python Package', self.name) return metadata @@ -177,13 +185,13 @@ def get_all(): if os.path.isdir(EXTENSIONS_DIR): for ext_name in os.listdir(EXTENSIONS_DIR): ext_path = os.path.join(EXTENSIONS_DIR, ext_name) - pattern = os.path.join(ext_path, '*.dist-info') + pattern = os.path.join(ext_path, '*.*-info') # include *.egg-info and *.dist-info if os.path.isdir(ext_path) and glob(pattern): exts.append(WheelExtension(ext_name, ext_path)) if os.path.isdir(EXTENSIONS_SYS_DIR): for ext_name in os.listdir(EXTENSIONS_SYS_DIR): ext_path = os.path.join(EXTENSIONS_SYS_DIR, ext_name) - pattern = os.path.join(ext_path, '*.dist-info') + pattern = os.path.join(ext_path, '*.*-info') # include *.egg-info and *.dist-info if os.path.isdir(ext_path) and glob(pattern): ext = WheelExtension(ext_name, ext_path) if ext not in exts: From b3ed72f59f63188f49e93c0bd9479c5ac2c0a7f4 Mon Sep 17 00:00:00 2001 From: harold random Date: Fri, 1 May 2020 12:20:52 +0800 Subject: [PATCH 2/7] raise ValueError instead of warning in case of bug --- src/azure-cli-core/azure/cli/core/extension/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/azure-cli-core/azure/cli/core/extension/__init__.py b/src/azure-cli-core/azure/cli/core/extension/__init__.py index 47d67dbd490..c068dee37d4 100644 --- a/src/azure-cli-core/azure/cli/core/extension/__init__.py +++ b/src/azure-cli-core/azure/cli/core/extension/__init__.py @@ -153,7 +153,7 @@ def get_metadata(self): elif dist_info_dirname.endswith('.dist-info'): ext_whl_metadata = pkginfo.Wheel(dist_info_dirname) else: - logger.warning('unsupported folder %s for Azure CLI to read Python metadata.', dist_info_dirname) + raise ValueError() if self.name == ext_whl_metadata.name: metadata.update(vars(ext_whl_metadata)) From 65cf627af125b79c82a1bad300e9c9bf0591e743 Mon Sep 17 00:00:00 2001 From: Harold Zeng Date: Wed, 6 May 2020 17:56:50 +0800 Subject: [PATCH 3/7] add tests for wheel type and dev type extension --- .../azure/cli/core/extension/__init__.py | 2 +- .../core/extension/tests/latest/__init__.py | 18 +++ .../tests/latest/data/hello-0.1.0.tar.gz | Bin 0 -> 1740 bytes ..._0_packed_extension-0.1.0-py3-none-any.whl | Bin 0 -> 2728 bytes ..._0_packed_extension-0.1.0-py3-none-any.whl | Bin 0 -> 1831 bytes .../tests/latest/test_dev_type_extension.py | 40 +++++++ .../tests/latest/test_wheel_type_extension.py | 108 ++++++++++++++++++ 7 files changed, 167 insertions(+), 1 deletion(-) create mode 100644 src/azure-cli-core/azure/cli/core/extension/tests/latest/data/hello-0.1.0.tar.gz create mode 100644 src/azure-cli-core/azure/cli/core/extension/tests/latest/data/wheel_0_30_0_packed_extension-0.1.0-py3-none-any.whl create mode 100644 src/azure-cli-core/azure/cli/core/extension/tests/latest/data/wheel_0_31_0_packed_extension-0.1.0-py3-none-any.whl create mode 100644 src/azure-cli-core/azure/cli/core/extension/tests/latest/test_dev_type_extension.py create mode 100644 src/azure-cli-core/azure/cli/core/extension/tests/latest/test_wheel_type_extension.py diff --git a/src/azure-cli-core/azure/cli/core/extension/__init__.py b/src/azure-cli-core/azure/cli/core/extension/__init__.py index c068dee37d4..086ff8af67d 100644 --- a/src/azure-cli-core/azure/cli/core/extension/__init__.py +++ b/src/azure-cli-core/azure/cli/core/extension/__init__.py @@ -140,7 +140,7 @@ def get_metadata(self): ext_dir = self.path or get_extension_path(self.name) # include *.egg-info and *.dist-info - info_dirs = glob(os.path.join(ext_dir, self.name.replace('-', '_') + '-' + '*.*-info')) + info_dirs = glob(os.path.join(ext_dir, self.name.replace('-', '_') + '*.*-info')) azext_metadata = WheelExtension.get_azext_metadata(ext_dir) if azext_metadata: diff --git a/src/azure-cli-core/azure/cli/core/extension/tests/latest/__init__.py b/src/azure-cli-core/azure/cli/core/extension/tests/latest/__init__.py index 34913fb394d..4ee64e56f3f 100644 --- a/src/azure-cli-core/azure/cli/core/extension/tests/latest/__init__.py +++ b/src/azure-cli-core/azure/cli/core/extension/tests/latest/__init__.py @@ -2,3 +2,21 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- + +import os +import unittest +import tempfile +import shutil + + +def get_test_data_file(filename): + return os.path.join(os.path.dirname(os.path.realpath(__file__)), 'data', filename) + + +class ExtensionTypeTestMixin(unittest.TestCase): + + def setUp(self): + self.ext_dir = tempfile.mkdtemp() + + def tearDown(self): + shutil.rmtree(self.ext_dir, ignore_errors=True) diff --git a/src/azure-cli-core/azure/cli/core/extension/tests/latest/data/hello-0.1.0.tar.gz b/src/azure-cli-core/azure/cli/core/extension/tests/latest/data/hello-0.1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..40e60960b70fd5ebd556eb5dae78226b08917684 GIT binary patch literal 1740 zcmV;-1~d5|iwFotgR))%|72-%bT4RSY;12WFfK7JFfMdqascgG>u=gf5a;v$6?>^p zPOib&fbA0!y5k7Fpe7^=X{%FPA;(@|TifefuanSI|Mwd|Acm5M)j%KF-v?NGXU30t z?s%uf^H^0=bycfXHUte|Sw`}&TZUHrpQEBTOrvRNx}ljBO>Z<`co{QT!J#cM7V5}kO-%rB- z)3FK$QB4e@_Ne|}uKqLiB>&6$@0;p>c=GD3+Z(FlT713!?~4BotFf&Ax~3U*8UMF| zLd}nkJA?j<-tb(d0Xpk-4vu@O@1jLjkdML{vOke)F-py)HiGOy#b~s8J{$W)*pNnS z^+UvhrFm5?t~bz%?VY~-yV@VTI6=4Dy7&7 zkN@jl=w|9aO<(cv7XN>=V0o|q>&?~tZ|R!!|81aTnjZ zvA~^AF(HV#Fk!_9#Amp7El7|^K!?mH)zF?KqJ;>fR;@OnVj5ql4)bfN z6j(OEZ`JW=mCX5~n&5=gd^-|^*COs@hKf3|m@;0xkuKvQ%A1+;?#&b}3Z-B%#dt!36H79nL^OKJK_atOz3kdSEMTr<_f=?Zf;8 zAHkc8!4?wE(;4V0C_$Qx>SgIwt0YIGEWK)!<}gchSh>|EM<>HR?t~#{m!OMQYR5RA zM&;xGe0~4eG3K85-!QC2{iijwdeZ;bHQE2!3ZDH^iz8mUph1lUmpIHk5k14z4Fbe> zSvcc#G8K5&*;^mNRowABoDxNtlZbGzaus-U3wLo0F^FR^B}Kzm@sNb3zLFC#Yp}_t0bdPgLn>XwU zUo7a&B_W?-J4*g0gr{`bP`$Ewu)FgnyF`Qoc#rla!JKJM%x z^tyL8?4Jy98!KtFQ4%9N2epi2(6R>%n2oWs2!>H|g@tr%3m~6Y4dE=LYG$e`+5PgcB>Y;8iEbKD*3A4Zj? zwGyPN^>E@w2~yQ4Lu{5Iwv>$aVMz}pzXumP=$-Zk2fabJ-%Aw^=dPg8O#N(ES+us5 zeXMZ!0evwSZlbNkVqE=Q*-NZ{oOwt_3_`{#hl+4_uPCX|z#6Ui(*YFS zZ6!^}`5U^-O7C{=JK0J1rcP}urHk-fvYl4PMgBtIU7{JK6?9u!TS4cPF$aQ2DCu)? z9t$R;;$!AYc#f5K!Mi|#LH;Up`b_!oH2w2jM8W&p1@F%$=V7$H6jXQjvRN8HMc{cO zPX3K4q@8xrnwA74AIRH1$Y8v1;J9P|FY2E%#;7%{=X)5ZOs35<7WRy z)3U(-byJi6zZGQF%TB6pl}4wWTvBqi)53zsWPf?GcMVG(nk<-XZyf~`@?DRDW0SmR z3`9G1RZ~rC2Yr^Gm%exZFYN!>X8%vq>c#$_mi7PS{@<;D296iI1Q+*WNw0XC{=aC9 zY`6apM>q9WaB$o(I3|A*ZF i@pSipNJvOXNJvOXNJvOXNJvQh{P-U-P+5QgPyhf;w~GS+ literal 0 HcmV?d00001 diff --git a/src/azure-cli-core/azure/cli/core/extension/tests/latest/data/wheel_0_30_0_packed_extension-0.1.0-py3-none-any.whl b/src/azure-cli-core/azure/cli/core/extension/tests/latest/data/wheel_0_30_0_packed_extension-0.1.0-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..452219407b9bf5423897755bd9cda2f1a75b3a6a GIT binary patch literal 2728 zcmZ{m3pmsJAIE=g!`uo{5&DYp%|IWFm+b22s?rbu-(Q^!e>OD9% zN=$NF?)c9~L5#-=;ZZl7tIv0sDex=y;bM!eN?gHu${#0JSaL8|a(IFqqqN#wg9_SW zt;+0H8BY)7R}J#-tSswd|F2oy`5M*-_5PTrMC)-$8A@sXsy`l23_li542Q)fC!DzT z0td)eb=?$FHQTwOET*uYD@-!BICFtH;J3ri;}JDS$mBi|wq5AbCzvO}=gN|8%I9df z`#2gEJ~x*|Ej~A|I?v^nu;W^QH6ghYA!4?AnX5#AucVA6_2t;0RxoRr73^4SG7%bk zA}Ybs73u4O^T7IfczeN;l8L?nN+^uyTg-$=G%)B}i|TXdqP=+>?`Dw*jN*AyAXmVE}OP>3MkyMKyBmO5V1!( ze$0rXXYAR%1!G^Ul#$%p{wW|nb?AQJX06$ZAlru;SoXB2ashU(U9SrPr7;o1MDO6> zI@07nv~3)9E7RXb&&cj_dcJ!{AOz=!lzRwzw%CGHGstu4#b359fBGp}E^MR~7gEeT z(5p4V5gbTq?A`1JilZcvujE#k?A4t(O#Tg~?OvX2W3c*;P>AmH>3Q|*<5OX2rB169 zm8p0Br(fKS^`UAAD_7ONwVw45en4H)YgI{Y+;d_=VkiNhiYLH`r-LC);=hBnZ`c4jXMg?xS;)|w@T5alh6{tG@Fe1G*1EK^@VV(KG zWTbX-{6M2=LFd5M*f!z&SN5p-s!?>E`k@!;+;NuO?qO!w+wzDceMkr+Fp5?I(XXB! z`5;r%^9cOfZQ9yP2T?;QTQb5r7Mu^e2mYZcsMV>Ki(?z}XO^Lx$9+1^W~RJ-KmiPjP7B5R8sV`*;mX{N%0m20K|GBuf-r9$AU zuuTbeBsgBVY2VGC^G1Rr-&C9W(W+i_owPBmFpTVTWDu?*9XCfYotlP+s4F82v^$^cPv5PRbL82??f z^Mj?7qTq9_MP*|9RSx}ST*Qr68GH zix_lmpvTB$_Lnp7`e>#0XSYp=&&;mmtiJuky-t0u3FkH!ml?icm$!4T9C>rByx`y+ z_lClqiH)z#JC@jN)cZwqL~iPEGV@A%#|NG4PFh;>^Fy^|F1eve-jPr{0Rfev8YrVG-{u@9gOZ}|15ZB;rC97f4)qfM*qmU(X#e8`SP z$H5|#phs6(&-`f`Kh;5&GLc!u|6VXYs(8Eac4f4fYyo&p>xbpt5)_&o(1;# zUjE~FdQ4t^B{+L(xgvc$Ks1=PbsIJ`-=EK#Opw{#ZyEcv1c^OCG|kO?l5vqT6lVu4 zCSJ-4!qInawbe`%rA>um(K52yavQ%EB(44OHDrHYHh4Sy9kSl|{)zyAhU^9@$U4LP z@38eo@EXiP;=lD{OllxYBc;db8nSCc#>ErPF#1s3^Y? y@Jn_}gQOF74OF%v=zn=D&62+JYpej!MxwqZ02Zwv`Q!78R0)WZBnCw3^X@O=JTC13 literal 0 HcmV?d00001 diff --git a/src/azure-cli-core/azure/cli/core/extension/tests/latest/data/wheel_0_31_0_packed_extension-0.1.0-py3-none-any.whl b/src/azure-cli-core/azure/cli/core/extension/tests/latest/data/wheel_0_31_0_packed_extension-0.1.0-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..802ed17e47c68b44f45129aee85708e361a97185 GIT binary patch literal 1831 zcmWIWW@Zs#U|`^2c%ZW^;EiHaX+4k^$;iMU4x|&SQY%X0Gg5PM^7Z56GxIV_;^XxS zD!2AK@*OhZVR^qNX=&U8hkp$giWh}z7*zF4xeA}`;Hc}r%2gL|zs&aaRO>h4b9~zu zU+Mo;Ym)Pr&(?jaTJz5Jp*7Nf$gEFTWOm*Rs=KTBe*Jfrt zm-@tf=IJw6YVmimi5l`OI>G(8I{f_7%jehs`Y9d&cQc>kvVcIZ-zh#ow`K#eJer#! z?$1pvNlZyBNz}_K&d*!@EQo<=>5)}ex`g(gdDO7z%BC|{id3~*CoQ@ZA{*j)y{qZU zqBD1{?3r{#CP%Bt`171%qq(2EgANCEcNu^F+|V_p=L^r5GiRpm$lA$(aL96?LkzE` zUg85ffCq?`ffyWYx(0fNdIowanZ+f#nR#jX`X%`V@j0nwsX2Nj6(!zlyw+-Tp7%I= z^5kH|M8!DTa4vRHXU8?XoHqlM#PPppyC~C6qo({$DfuOSU<;k{j3$eS7ML3N64t{ zmSEd&X)}M8OY6zg%paIgeJFnGolG4tX_PZFFv#I_lCNusql;sR7*pGB<%LIF1-S|Nts!i+mx%D%>Gmz%Z)r37f{n7Q`=uzbFxVyJLSwg z4VTAr+cy6R(Y-jSO?T_s@c#{y|CrbZzP=a5)7;j&vZ=rBaKOH=jR}uf3rfw*`x0g? zDe%5__-?$~beStxqEA`nOfoGNFAX$l+y2)(t}^;f442ROHCeuH^1C7m6tr~QmIWLM z5dD4Z)V%F>HF+tIoS!onX>D^i-jor=`{NpKQdO?~j+IMh&Gz#0uM;NOpR)SF?1r!pY|mcIikmiT%4)~9GUXL7%gmDcLIO%(?lZmu-Nz zhFI{)lkJYNwYFYw>u1UDUfidee^|lpJ!;HpXuT@50mj@}AeO-yb3v}o{y{FKXHVxf zIWV+7tQEe`BCwE4XP1M72+L01ubXBTXopKq5j?m&|8m2md-li#)@YdEe|dibo{%+E_-yp zetP~x`}g_rK|*SZoHI8aKKta`zsnrgVoR?zdAU_97q!|te&KDnvU65q$>T@4uQbAL z9=p;cnwGy`>8ufVTk51m$|V(Ciz{uuH}4jlEp2dI=<($WA+~Gf zXPN98v|rk2t?AYbTJ&Sm*M_8OE!VxT+I1P8eOX!g{cUaS6Bqupxw-2i{;k?RQNFl6 z~yI?M&NN9OeJZ8{o~zB*KilKm`Up7;I?-Q8=0.31.0 not containing metadata.json but we can still handle it properly. + For scenario like 'az extenion add'. + """ + + # this wheel contains METADATA only + wheel_0_31_0_packed = get_test_data_file('wheel_0_31_0_packed_extension-0.1.0-py3-none-any.whl') + + zf = zipfile.ZipFile(wheel_0_31_0_packed) + zf.extractall(self.ext_dir) + + ext_name, ext_version = 'hello', '0.1.0' + + whl_extension = WheelExtension(ext_name, self.ext_dir) + metadata = whl_extension.get_metadata() # able to read metadata from wheel==0.30.0 built extension + + # wheel type extension generates .dist-info + dist_info = ext_name + '-' + ext_version + '.dist-info' + + # assert Python metadata + self.assertEqual(metadata['name'], ext_name) + self.assertEqual(metadata['version'], ext_version) + self.assertEqual(metadata['author'], 'Microsoft Corporation') + self.assertNotIn('metadata.json', os.listdir(os.path.join(self.ext_dir, dist_info))) + + # assert Azure CLI extended metadata + self.assertTrue(metadata['azext.isPreview']) + self.assertTrue(metadata['azext.isExperimental']) + self.assertEqual(metadata['azext.minCliCoreVersion'], '2.0.67') + + def test_reading_wheel_type_extension_from_develop_mode(self): + """ + Test wheel type extension but installing from source code. + For scenario that user are developing extension via 'pip install -e' directlly + and load it from _CUSTOM_EXT_DIR or GLOBAL_CONFIG_DIR + """ + + source_code_packaged = get_test_data_file('hello-0.1.0.tar.gz') + + with tarfile.open(source_code_packaged, 'r:gz') as tar: + tar.extractall(self.ext_dir) + + ext_name, ext_version = 'hello', '0.1.0' + egg_info = ext_name + '.egg-info' + + ext_extension = WheelExtension(ext_name, os.path.join(self.ext_dir, ext_name + '-' + ext_version)) + metadata = ext_extension.get_metadata() # able to read metadata from source code even in wheel type extension + + # assert Python metadata + self.assertEqual(metadata['name'], ext_name) + self.assertEqual(metadata['version'], ext_version) + self.assertEqual(metadata['author'], 'Microsoft Corporation') + self.assertNotIn('metadata.json', os.listdir(os.path.join(self.ext_dir, ext_name + '-' + ext_version))) + + # assert Azure CLI extended metadata + self.assertTrue(metadata['azext.isPreview']) + self.assertTrue(metadata['azext.isExperimental']) + self.assertEqual(metadata['azext.minCliCoreVersion'], '2.0.67') From 28d6ecd0a7b68b9c00f3e38a4e271a6e1fe27909 Mon Sep 17 00:00:00 2001 From: Harold Zeng Date: Wed, 6 May 2020 18:01:57 +0800 Subject: [PATCH 4/7] add license --- .../core/extension/tests/latest/test_dev_type_extension.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_dev_type_extension.py b/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_dev_type_extension.py index 2751c3edb81..4209298cd24 100644 --- a/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_dev_type_extension.py +++ b/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_dev_type_extension.py @@ -1,3 +1,8 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + import os import tempfile import zipfile From e06aa801e1a72e53fdfabf148e0aa62dd048897f Mon Sep 17 00:00:00 2001 From: Harold Zeng Date: Wed, 6 May 2020 18:29:40 +0800 Subject: [PATCH 5/7] fix bug --- .../azure/cli/core/extension/__init__.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/azure-cli-core/azure/cli/core/extension/__init__.py b/src/azure-cli-core/azure/cli/core/extension/__init__.py index 086ff8af67d..0c7a142f7ac 100644 --- a/src/azure-cli-core/azure/cli/core/extension/__init__.py +++ b/src/azure-cli-core/azure/cli/core/extension/__init__.py @@ -134,13 +134,14 @@ def get_version(self): def get_metadata(self): from glob import glob - if not extension_exists(self.name): - return None + metadata = {} ext_dir = self.path or get_extension_path(self.name) # include *.egg-info and *.dist-info info_dirs = glob(os.path.join(ext_dir, self.name.replace('-', '_') + '*.*-info')) + if not info_dirs: + return None azext_metadata = WheelExtension.get_azext_metadata(ext_dir) if azext_metadata: @@ -207,12 +208,13 @@ def get_version(self): return self.metadata.get('version') def get_metadata(self): - - if not extension_exists(self.name): - return None metadata = {} ext_dir = self.path + egg_info_dirs = [f for f in os.listdir(ext_dir) if f.endswith('.egg-info')] + if not egg_info_dirs: + return None + azext_metadata = DevExtension.get_azext_metadata(ext_dir) if azext_metadata: metadata.update(azext_metadata) From cbfc649660f01dbd115479742f0b256cd521e6d4 Mon Sep 17 00:00:00 2001 From: Harold Zeng Date: Wed, 6 May 2020 18:45:27 +0800 Subject: [PATCH 6/7] fix style --- .../core/extension/tests/latest/test_dev_type_extension.py | 3 +-- .../extension/tests/latest/test_wheel_type_extension.py | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_dev_type_extension.py b/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_dev_type_extension.py index 4209298cd24..5cc5d67f986 100644 --- a/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_dev_type_extension.py +++ b/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_dev_type_extension.py @@ -28,10 +28,9 @@ def test_reading_wheel_type_extension_from_develop_mode(self): tar.extractall(self.ext_dir) ext_name, ext_version = 'hello', '0.1.0' - egg_info = ext_name + '.egg-info' ext_extension = DevExtension(ext_name, os.path.join(self.ext_dir, ext_name + '-' + ext_version)) - metadata = ext_extension.get_metadata() # able to read metadata from source code + metadata = ext_extension.get_metadata() # able to read metadata from source code # assert Python metadata self.assertEqual(metadata['name'], ext_name) diff --git a/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_wheel_type_extension.py b/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_wheel_type_extension.py index 69e4c197085..f740a5c65f1 100644 --- a/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_wheel_type_extension.py +++ b/src/azure-cli-core/azure/cli/core/extension/tests/latest/test_wheel_type_extension.py @@ -31,7 +31,7 @@ def test_reading_wheel_type_0_30_0_extension_metadata(self): ext_name, ext_version = 'hello', '0.1.0' whl_extension = WheelExtension(ext_name, self.ext_dir) - metadata = whl_extension.get_metadata() # able to read metadata from wheel==0.30.0 built extension + metadata = whl_extension.get_metadata() # able to read metadata from wheel==0.30.0 built extension # wheel type extension generates .dist-info dist_info = ext_name + '-' + ext_version + '.dist-info' @@ -62,7 +62,7 @@ def test_reading_wheel_type_0_31_0_extension_metadata(self): ext_name, ext_version = 'hello', '0.1.0' whl_extension = WheelExtension(ext_name, self.ext_dir) - metadata = whl_extension.get_metadata() # able to read metadata from wheel==0.30.0 built extension + metadata = whl_extension.get_metadata() # able to read metadata from wheel==0.30.0 built extension # wheel type extension generates .dist-info dist_info = ext_name + '-' + ext_version + '.dist-info' @@ -91,10 +91,9 @@ def test_reading_wheel_type_extension_from_develop_mode(self): tar.extractall(self.ext_dir) ext_name, ext_version = 'hello', '0.1.0' - egg_info = ext_name + '.egg-info' ext_extension = WheelExtension(ext_name, os.path.join(self.ext_dir, ext_name + '-' + ext_version)) - metadata = ext_extension.get_metadata() # able to read metadata from source code even in wheel type extension + metadata = ext_extension.get_metadata() # able to read metadata from source code even in wheel type extension # assert Python metadata self.assertEqual(metadata['name'], ext_name) From d146a3e480c818e1c761c9a7d713509d76de7dfb Mon Sep 17 00:00:00 2001 From: Harold Zeng Date: Thu, 7 May 2020 13:08:25 +0800 Subject: [PATCH 7/7] remove unnecessary global varibales --- src/azure-cli-core/azure/cli/core/extension/__init__.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/azure-cli-core/azure/cli/core/extension/__init__.py b/src/azure-cli-core/azure/cli/core/extension/__init__.py index 77ecf6e2931..a30c47c9be7 100644 --- a/src/azure-cli-core/azure/cli/core/extension/__init__.py +++ b/src/azure-cli-core/azure/cli/core/extension/__init__.py @@ -26,8 +26,6 @@ EXTENSIONS_MOD_PREFIX = 'azext_' -WHL_METADATA_FILENAME = 'metadata.json' -EGG_INFO_METADATA_FILE_NAME = 'PKG-INFO' # used for dev packages AZEXT_METADATA_FILENAME = 'azext_metadata.json' EXT_METADATA_MINCLICOREVERSION = 'azext.minCliCoreVersion'