diff --git a/platformio/package/manager/_install.py b/platformio/package/manager/_install.py index 1bafcf8c..1a83d65b 100644 --- a/platformio/package/manager/_install.py +++ b/platformio/package/manager/_install.py @@ -180,20 +180,19 @@ class PackageManagerInstallMixin(object): dst_pkg = PackageItem( os.path.join(self.package_dir, tmp_pkg.metadata.spec.name) ) - elif dst_pkg.metadata and dst_pkg.metadata.spec.external: - if dst_pkg.metadata.spec.url != tmp_pkg.metadata.spec.url: - action = "detach-existing" - elif tmp_pkg.metadata.spec.external: - action = "detach-new" - elif dst_pkg.metadata and ( - dst_pkg.metadata.version != tmp_pkg.metadata.version - or dst_pkg.metadata.spec.owner != tmp_pkg.metadata.spec.owner - ): - action = ( - "detach-existing" - if tmp_pkg.metadata.version > dst_pkg.metadata.version - else "detach-new" - ) + elif dst_pkg.metadata: + if dst_pkg.metadata.spec.external: + if dst_pkg.metadata.spec.url != tmp_pkg.metadata.spec.url: + action = "detach-existing" + elif ( + dst_pkg.metadata.version != tmp_pkg.metadata.version + or dst_pkg.metadata.spec.owner != tmp_pkg.metadata.spec.owner + ): + action = ( + "detach-existing" + if tmp_pkg.metadata.version > dst_pkg.metadata.version + else "detach-new" + ) def _cleanup_dir(path): if os.path.isdir(path): diff --git a/platformio/telemetry.py b/platformio/telemetry.py index 68392f98..3fbcb74f 100644 --- a/platformio/telemetry.py +++ b/platformio/telemetry.py @@ -154,7 +154,7 @@ class MeasurementProtocol(TelemetryBase): "project", "settings", "system", - "team" + "team", ): cmd_path = args[:2] if args[0] == "lib" and len(args) > 1: diff --git a/tests/commands/test_lib_complex.py b/tests/commands/test_lib_complex.py index dfb853f4..442edee3 100644 --- a/tests/commands/test_lib_complex.py +++ b/tests/commands/test_lib_complex.py @@ -98,9 +98,10 @@ def test_global_install_archive(clirunner, validate_cliresult, isolated_pio_core items1 = [d.basename for d in isolated_pio_core.join("lib").listdir()] items2 = [ "ArduinoJson", + "ArduinoJson@src-69ebddd821f771debe7ee734d3c7fa81", "SomeLib", "OneWire", - "ESP32WebServer@src-a1a3c75631882b35702e71966ea694e8", + "ESP32WebServer", ] assert set(items1) >= set(items2) @@ -122,11 +123,11 @@ def test_global_install_repository(clirunner, validate_cliresult, isolated_pio_c validate_cliresult(result) items1 = [d.basename for d in isolated_pio_core.join("lib").listdir()] items2 = [ - "PJON@src-1204e8bbd80de05e54e171b3a07bcc3f", + "PJON", "PJON@src-79de467ebe19de18287becff0a1fb42d", "ArduinoJson@src-69ebddd821f771debe7ee734d3c7fa81", - "platformio-libmirror@src-b7e674cad84244c61b436fcea8f78377", - "PubSubClient@src-98ec699a461a31615982e5adaaefadda", + "platformio-libmirror", + "PubSubClient", ] assert set(items1) >= set(items2) @@ -293,13 +294,13 @@ def test_global_lib_uninstall(clirunner, validate_cliresult, isolated_pio_core): "ArduinoJson@src-69ebddd821f771debe7ee734d3c7fa81", "AsyncMqttClient", "AsyncTCP", - "ESP32WebServer@src-a1a3c75631882b35702e71966ea694e8", + "ESP32WebServer", "ESPAsyncTCP", "NeoPixelBus", - "PJON@src-1204e8bbd80de05e54e171b3a07bcc3f", + "PJON", "PJON@src-79de467ebe19de18287becff0a1fb42d", - "platformio-libmirror@src-b7e674cad84244c61b436fcea8f78377", - "PubSubClient@src-98ec699a461a31615982e5adaaefadda", + "platformio-libmirror", + "PubSubClient", "SomeLib", ] assert set(items1) == set(items2) diff --git a/tests/package/test_manager.py b/tests/package/test_manager.py index f5939f15..299b0020 100644 --- a/tests/package/test_manager.py +++ b/tests/package/test_manager.py @@ -186,6 +186,12 @@ version = 5.2.7 pkg = lm.install_from_url("file://%s" % src_dir, spec) assert str(pkg.metadata.version) == "5.2.7" + # check package folder names + lm.memcache_reset() + assert ["local-lib-dir", "manifest-lib-name", "wifilib"] == [ + os.path.basename(pkg.path) for pkg in lm.get_installed() + ] + def test_install_from_registry(isolated_pio_core, tmpdir_factory): # Libraries