From 9dae7ed751e6d935b127ab47cc48248eda14f5a5 Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 12:24:13 +0200 Subject: [PATCH 01/13] Migrated TestCompletionNoArgs from test_completion.py to completion_test.go --- .../completion/completion_test.go | 34 +++++++++++++++++++ test/test_completion.py | 8 ----- 2 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 internal/integrationtest/completion/completion_test.go diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go new file mode 100644 index 00000000000..be312ffb4b0 --- /dev/null +++ b/internal/integrationtest/completion/completion_test.go @@ -0,0 +1,34 @@ +// This file is part of arduino-cli. +// +// Copyright 2022 ARDUINO SA (http://www.arduino.cc/) +// +// This software is released under the GNU General Public License version 3, +// which covers the main part of arduino-cli. +// The terms of this license can be found at: +// https://www.gnu.org/licenses/gpl-3.0.en.html +// +// You can be released from the requirements of the above licenses by purchasing +// a commercial license. Buying such a license is mandatory if you want to +// modify or otherwise use the software for commercial activities involving the +// Arduino software without disclosing the source code of your own applications. +// To purchase a commercial license, send an email to license@arduino.cc. + +package completion_test + +import ( + "testing" + + "github.com/arduino/arduino-cli/internal/integrationtest" + "github.com/stretchr/testify/require" +) + +// test if the completion command behaves correctly +func TestCompletionNoArgs(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + stdout, stderr, err := cli.Run("completion") + require.Error(t, err) + require.Contains(t, string(stderr), "Error: accepts 1 arg(s), received 0") + require.Empty(t, stdout) +} diff --git a/test/test_completion.py b/test/test_completion.py index 7c0118f8bd7..53038204578 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,14 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -# test if the completion command behaves correctly -def test_completion_no_args(run_command): - result = run_command(["completion"]) - assert not result.ok - assert "Error: accepts 1 arg(s), received 0" in result.stderr - assert result.stdout == "" - - def test_completion_bash(run_command): result = run_command(["completion", "bash"]) assert result.ok From 584f95a162f2a9a41985b02fb197acff768d8bd8 Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 12:33:14 +0200 Subject: [PATCH 02/13] Migrated TestCompletionBash from test_completion.py to completion_test.go --- .../integrationtest/completion/completion_test.go | 11 +++++++++++ test/test_completion.py | 8 -------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index be312ffb4b0..10b04664d7e 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -32,3 +32,14 @@ func TestCompletionNoArgs(t *testing.T) { require.Contains(t, string(stderr), "Error: accepts 1 arg(s), received 0") require.Empty(t, stdout) } + +func TestCompletionBash(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + stdout, stderr, err := cli.Run("completion", "bash") + require.NoError(t, err) + require.Empty(t, stderr) + require.Contains(t, string(stdout), "# bash completion V2 for arduino-cli") + require.Contains(t, string(stdout), "__start_arduino-cli()") +} diff --git a/test/test_completion.py b/test/test_completion.py index 53038204578..2cb6e8e5b45 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,14 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -def test_completion_bash(run_command): - result = run_command(["completion", "bash"]) - assert result.ok - assert result.stderr == "" - assert "# bash completion V2 for arduino-cli" in result.stdout - assert "__start_arduino-cli()" in result.stdout - - def test_completion_zsh(run_command): result = run_command(["completion", "zsh"]) assert result.ok From eb9a229c61078de0ca364318014cf6404cf9e3de Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 12:36:50 +0200 Subject: [PATCH 03/13] Migrated TestCompletionZsh from test_completion.py to completion_test.go --- .../integrationtest/completion/completion_test.go | 11 +++++++++++ test/test_completion.py | 8 -------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index 10b04664d7e..ab6e1daf5ae 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -43,3 +43,14 @@ func TestCompletionBash(t *testing.T) { require.Contains(t, string(stdout), "# bash completion V2 for arduino-cli") require.Contains(t, string(stdout), "__start_arduino-cli()") } + +func TestCompletionZsh(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + stdout, stderr, err := cli.Run("completion", "zsh") + require.NoError(t, err) + require.Empty(t, stderr) + require.Contains(t, string(stdout), "#compdef _arduino-cli arduino-cli") + require.Contains(t, string(stdout), "_arduino-cli()") +} diff --git a/test/test_completion.py b/test/test_completion.py index 2cb6e8e5b45..9297d095e5f 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,14 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -def test_completion_zsh(run_command): - result = run_command(["completion", "zsh"]) - assert result.ok - assert result.stderr == "" - assert "#compdef _arduino-cli arduino-cli" in result.stdout - assert "_arduino-cli()" in result.stdout - - def test_completion_fish(run_command): result = run_command(["completion", "fish"]) assert result.ok From ae7379e84b98ab7af1f7b90a0b69c2c2ace1ec1e Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 12:39:50 +0200 Subject: [PATCH 04/13] Migrated TestCompletionFish from test_completion.py to completion_test.go --- .../integrationtest/completion/completion_test.go | 11 +++++++++++ test/test_completion.py | 8 -------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index ab6e1daf5ae..f5c0359bd61 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -54,3 +54,14 @@ func TestCompletionZsh(t *testing.T) { require.Contains(t, string(stdout), "#compdef _arduino-cli arduino-cli") require.Contains(t, string(stdout), "_arduino-cli()") } + +func TestCompletionFish(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + stdout, stderr, err := cli.Run("completion", "fish") + require.NoError(t, err) + require.Empty(t, stderr) + require.Contains(t, string(stdout), "# fish completion for arduino-cli") + require.Contains(t, string(stdout), "function __arduino_cli_perform_completion") +} diff --git a/test/test_completion.py b/test/test_completion.py index 9297d095e5f..cd6a8e97cf6 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,14 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -def test_completion_fish(run_command): - result = run_command(["completion", "fish"]) - assert result.ok - assert result.stderr == "" - assert "# fish completion for arduino-cli" in result.stdout - assert "function __arduino_cli_perform_completion" in result.stdout - - def test_completion_powershell(run_command): result = run_command(["completion", "powershell"]) assert result.ok From 2eb47a6c7a4c2065faacaf77b7ad9424109c263d Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 12:43:08 +0200 Subject: [PATCH 05/13] Migrated TestCompletionPowershell from test_completion.py to completion_test.go --- .../integrationtest/completion/completion_test.go | 11 +++++++++++ test/test_completion.py | 8 -------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index f5c0359bd61..8b79dfd594d 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -65,3 +65,14 @@ func TestCompletionFish(t *testing.T) { require.Contains(t, string(stdout), "# fish completion for arduino-cli") require.Contains(t, string(stdout), "function __arduino_cli_perform_completion") } + +func TestCompletionPowershell(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + stdout, stderr, err := cli.Run("completion", "powershell") + require.NoError(t, err) + require.Empty(t, stderr) + require.Contains(t, string(stdout), "# powershell completion for arduino-cli") + require.Contains(t, string(stdout), "Register-ArgumentCompleter -CommandName 'arduino-cli' -ScriptBlock") +} diff --git a/test/test_completion.py b/test/test_completion.py index cd6a8e97cf6..eb538a40b39 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,14 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -def test_completion_powershell(run_command): - result = run_command(["completion", "powershell"]) - assert result.ok - assert result.stderr == "" - assert "# powershell completion for arduino-cli" in result.stdout - assert "Register-ArgumentCompleter -CommandName 'arduino-cli' -ScriptBlock" in result.stdout - - def test_completion_bash_no_desc(run_command): result = run_command(["completion", "bash", "--no-descriptions"]) assert result.ok From d2c93a6929e8b88d5c6c20ff2c06fd42581f6003 Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 12:47:13 +0200 Subject: [PATCH 06/13] Migrated TestCompletionBashNoDesc from test_completion.py to completion_test.go --- .../integrationtest/completion/completion_test.go | 12 ++++++++++++ test/test_completion.py | 9 --------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index 8b79dfd594d..22dbf6e3c8e 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -76,3 +76,15 @@ func TestCompletionPowershell(t *testing.T) { require.Contains(t, string(stdout), "# powershell completion for arduino-cli") require.Contains(t, string(stdout), "Register-ArgumentCompleter -CommandName 'arduino-cli' -ScriptBlock") } + +func TestCompletionBashNoDesc(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + stdout, stderr, err := cli.Run("completion", "bash", "--no-descriptions") + require.NoError(t, err) + require.Empty(t, stderr) + require.Contains(t, string(stdout), "# bash completion V2 for arduino-cli") + require.Contains(t, string(stdout), "__start_arduino-cli()") + require.Contains(t, string(stdout), "__completeNoDesc") +} diff --git a/test/test_completion.py b/test/test_completion.py index eb538a40b39..347d4e659ab 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,15 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -def test_completion_bash_no_desc(run_command): - result = run_command(["completion", "bash", "--no-descriptions"]) - assert result.ok - assert result.stderr == "" - assert "# bash completion V2 for arduino-cli" in result.stdout - assert "__start_arduino-cli()" in result.stdout - assert "__completeNoDesc" in result.stdout - - def test_completion_zsh_no_desc(run_command): result = run_command(["completion", "zsh", "--no-descriptions"]) assert result.ok From 407720309d991d026346295a6b6dede6487088ab Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 12:52:19 +0200 Subject: [PATCH 07/13] Migrated TestCompletionZshNoDesc from test_completion.py to completion_test.go --- .../integrationtest/completion/completion_test.go | 12 ++++++++++++ test/test_completion.py | 9 --------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index 22dbf6e3c8e..b1e7f29f5e6 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -88,3 +88,15 @@ func TestCompletionBashNoDesc(t *testing.T) { require.Contains(t, string(stdout), "__start_arduino-cli()") require.Contains(t, string(stdout), "__completeNoDesc") } + +func TestCompletionZshNoDesc(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + stdout, stderr, err := cli.Run("completion", "zsh", "--no-descriptions") + require.NoError(t, err) + require.Empty(t, stderr) + require.Contains(t, string(stdout), "#compdef _arduino-cli arduino-cli") + require.Contains(t, string(stdout), "_arduino-cli()") + require.Contains(t, string(stdout), "__completeNoDesc") +} diff --git a/test/test_completion.py b/test/test_completion.py index 347d4e659ab..f9997b518c1 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,15 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -def test_completion_zsh_no_desc(run_command): - result = run_command(["completion", "zsh", "--no-descriptions"]) - assert result.ok - assert result.stderr == "" - assert "#compdef _arduino-cli arduino-cli" in result.stdout - assert "_arduino-cli()" in result.stdout - assert "__completeNoDesc" in result.stdout - - def test_completion_fish_no_desc(run_command): result = run_command(["completion", "fish", "--no-descriptions"]) assert result.ok From a6b26762691acadaeb93de8baf42faab0c845f62 Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 12:55:26 +0200 Subject: [PATCH 08/13] Migrated TestCompletionFishNoDesc from test_completion.py to completion_test.go --- .../integrationtest/completion/completion_test.go | 12 ++++++++++++ test/test_completion.py | 9 --------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index b1e7f29f5e6..59052f1f2fb 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -100,3 +100,15 @@ func TestCompletionZshNoDesc(t *testing.T) { require.Contains(t, string(stdout), "_arduino-cli()") require.Contains(t, string(stdout), "__completeNoDesc") } + +func TestCompletionFishNoDesc(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + stdout, stderr, err := cli.Run("completion", "fish", "--no-descriptions") + require.NoError(t, err) + require.Empty(t, stderr) + require.Contains(t, string(stdout), "# fish completion for arduino-cli") + require.Contains(t, string(stdout), "function __arduino_cli_perform_completion") + require.Contains(t, string(stdout), "__completeNoDesc") +} diff --git a/test/test_completion.py b/test/test_completion.py index f9997b518c1..ca75d1bc5b7 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,15 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -def test_completion_fish_no_desc(run_command): - result = run_command(["completion", "fish", "--no-descriptions"]) - assert result.ok - assert result.stderr == "" - assert "# fish completion for arduino-cli" in result.stdout - assert "function __arduino_cli_perform_completion" in result.stdout - assert "__completeNoDesc" in result.stdout - - def test_completion_powershell_no_desc(run_command): result = run_command(["completion", "powershell", "--no-descriptions"]) assert not result.ok From 1c00b0ed0101e040f52ef25134c439f8175596bb Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 12:59:07 +0200 Subject: [PATCH 09/13] Migrated TestCompletionPowershellNoDesc from test_completion.py to completion_test.go --- internal/integrationtest/completion/completion_test.go | 10 ++++++++++ test/test_completion.py | 7 ------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index 59052f1f2fb..9daf12197d4 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -112,3 +112,13 @@ func TestCompletionFishNoDesc(t *testing.T) { require.Contains(t, string(stdout), "function __arduino_cli_perform_completion") require.Contains(t, string(stdout), "__completeNoDesc") } + +func TestCompletionPowershellNoDesc(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + stdout, stderr, err := cli.Run("completion", "powershell", "--no-descriptions") + require.Error(t, err) + require.Empty(t, stdout) + require.Contains(t, string(stderr), "Error: command description is not supported by powershell") +} diff --git a/test/test_completion.py b/test/test_completion.py index ca75d1bc5b7..5618ad2b591 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,13 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -def test_completion_powershell_no_desc(run_command): - result = run_command(["completion", "powershell", "--no-descriptions"]) - assert not result.ok - assert result.stdout == "" - assert "Error: command description is not supported by powershell" in result.stderr - - # test if the completion suggestions returned are meaningful # we use the __complete hidden command # https://github.com/spf13/cobra/blob/master/shell_completions.md#debugging From b16fd2f70be6d5f9208d2bb66ec2eef6d4f979de Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 14:09:29 +0200 Subject: [PATCH 10/13] Migrated TestStaticCompletions from test_completion.py to completion_test.go --- .../completion/completion_test.go | 19 +++++++++++ test/test_completion.py | 32 ------------------- 2 files changed, 19 insertions(+), 32 deletions(-) diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index 9daf12197d4..aad8566354e 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -122,3 +122,22 @@ func TestCompletionPowershellNoDesc(t *testing.T) { require.Empty(t, stdout) require.Contains(t, string(stderr), "Error: command description is not supported by powershell") } + +// test if the completion suggestions returned are meaningful +// we use the __complete hidden command +// https://github.com/spf13/cobra/blob/master/shell_completions.md#debugging + +// test static completions +func TestStaticCompletions(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + stdout, _, _ := cli.Run("__complete", "--format", "") + require.Contains(t, string(stdout), "json") + + stdout, _, _ = cli.Run("__complete", "--log-format", "") + require.Contains(t, string(stdout), "json") + + stdout, _, _ = cli.Run("__complete", "--log-level", "") + require.Contains(t, string(stdout), "trace") +} diff --git a/test/test_completion.py b/test/test_completion.py index 5618ad2b591..4e1433e0fa5 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,38 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -# test if the completion suggestions returned are meaningful -# we use the __complete hidden command -# https://github.com/spf13/cobra/blob/master/shell_completions.md#debugging - -# test static completions -def test_static_completions(run_command): - result = run_command( - [ - "__complete", - "--format", - "", - ] - ) - assert "json" in result.stdout - result = run_command( - [ - "__complete", - "--log-format", - "", - ] - ) - assert "json" in result.stdout - result = run_command( - [ - "__complete", - "--log-level", - "", - ] - ) - assert "trace" in result.stdout - - # here we test if the completions coming from the core are working def test_config_completion(run_command): result = run_command(["__complete", "config", "add", ""]) From 7b3a9138fe6c270655fba134d98b027ed2ac5095 Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 14:14:37 +0200 Subject: [PATCH 11/13] Migrated TestConfigCompletion from test_completion.py to completion_test.go --- .../integrationtest/completion/completion_test.go | 15 +++++++++++++++ test/test_completion.py | 12 ------------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index aad8566354e..61921cbf1f7 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -141,3 +141,18 @@ func TestStaticCompletions(t *testing.T) { stdout, _, _ = cli.Run("__complete", "--log-level", "") require.Contains(t, string(stdout), "trace") } + +// here we test if the completions coming from the core are working +func TestConfigCompletion(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + stdout, _, _ := cli.Run("__complete", "config", "add", "") + require.Contains(t, string(stdout), "board_manager.additional_urls") + stdout, _, _ = cli.Run("__complete", "config", "remove", "") + require.Contains(t, string(stdout), "board_manager.additional_urls") + stdout, _, _ = cli.Run("__complete", "config", "delete", "") + require.Contains(t, string(stdout), "board_manager.additional_urls") + stdout, _, _ = cli.Run("__complete", "config", "set", "") + require.Contains(t, string(stdout), "board_manager.additional_urls") +} diff --git a/test/test_completion.py b/test/test_completion.py index 4e1433e0fa5..e9eefa035d0 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,18 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -# here we test if the completions coming from the core are working -def test_config_completion(run_command): - result = run_command(["__complete", "config", "add", ""]) - assert "board_manager.additional_urls" in result.stdout - result = run_command(["__complete", "config", "remove", ""]) - assert "board_manager.additional_urls" in result.stdout - result = run_command(["__complete", "config", "delete", ""]) - assert "board_manager.additional_urls" in result.stdout - result = run_command(["__complete", "config", "set", ""]) - assert "board_manager.additional_urls" in result.stdout - - # here we test if the completions coming from the libs are working def test_lib_completion(run_command): assert run_command(["lib", "update-index"]) From 3aeff22798e4df570ebe20dac2934d19dfed19f7 Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 14:37:19 +0200 Subject: [PATCH 12/13] Migrated TestLibCompletion from test_completion.py to completion_test.go --- .../completion/completion_test.go | 24 +++++++++++++++++++ test/test_completion.py | 19 --------------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index 61921cbf1f7..89372273fd5 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -156,3 +156,27 @@ func TestConfigCompletion(t *testing.T) { stdout, _, _ = cli.Run("__complete", "config", "set", "") require.Contains(t, string(stdout), "board_manager.additional_urls") } + +// here we test if the completions coming from the libs are working +func TestLibCompletion(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + _, _, err := cli.Run("lib", "update-index") + require.NoError(t, err) + stdout, _, _ := cli.Run("__complete", "lib", "install", "") + require.Contains(t, string(stdout), "WiFi101") + stdout, _, _ = cli.Run("__complete", "lib", "download", "") + require.Contains(t, string(stdout), "WiFi101") + stdout, _, _ = cli.Run("__complete", "lib", "uninstall", "") + require.NotContains(t, string(stdout), "WiFi101") // not yet installed + + _, _, err = cli.Run("lib", "install", "Wifi101") + require.NoError(t, err) + stdout, _, _ = cli.Run("__complete", "lib", "uninstall", "") + require.Contains(t, string(stdout), "WiFi101") + stdout, _, _ = cli.Run("__complete", "lib", "examples", "") + require.Contains(t, string(stdout), "WiFi101") + stdout, _, _ = cli.Run("__complete", "lib", "deps", "") + require.Contains(t, string(stdout), "WiFi101") +} diff --git a/test/test_completion.py b/test/test_completion.py index e9eefa035d0..9cacef22d39 100644 --- a/test/test_completion.py +++ b/test/test_completion.py @@ -14,25 +14,6 @@ # a commercial license, send an email to license@arduino.cc. -# here we test if the completions coming from the libs are working -def test_lib_completion(run_command): - assert run_command(["lib", "update-index"]) - result = run_command(["__complete", "lib", "install", ""], hide=True) - assert "WiFi101" in result.stdout - result = run_command(["__complete", "lib", "download", ""], hide=True) - assert "WiFi101" in result.stdout - result = run_command(["__complete", "lib", "uninstall", ""], hide=True) - assert "WiFi101" not in result.stdout # not yet installed - - assert run_command(["lib", "install", "WiFi101"]) - result = run_command(["__complete", "lib", "uninstall", ""]) - assert "WiFi101" in result.stdout - result = run_command(["__complete", "lib", "examples", ""]) - assert "WiFi101" in result.stdout - result = run_command(["__complete", "lib", "deps", ""]) - assert "WiFi101" in result.stdout - - # here we test if the completions coming from the core are working def test_core_completion(run_command): assert run_command(["core", "update-index"]) From 9c4422b578c44bf2a3d9e63bf367a288a4441083 Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Thu, 18 Aug 2022 14:58:37 +0200 Subject: [PATCH 13/13] Migrated TestCoreCompletion to completion_test.go and deleted test_completion.py --- .../completion/completion_test.go | 55 ++++++++++++++++ test/test_completion.py | 64 ------------------- 2 files changed, 55 insertions(+), 64 deletions(-) delete mode 100644 test/test_completion.py diff --git a/internal/integrationtest/completion/completion_test.go b/internal/integrationtest/completion/completion_test.go index 89372273fd5..1ace773fa1e 100644 --- a/internal/integrationtest/completion/completion_test.go +++ b/internal/integrationtest/completion/completion_test.go @@ -180,3 +180,58 @@ func TestLibCompletion(t *testing.T) { stdout, _, _ = cli.Run("__complete", "lib", "deps", "") require.Contains(t, string(stdout), "WiFi101") } + +// here we test if the completions coming from the core are working +func TestCoreCompletion(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + _, _, err := cli.Run("core", "update-index") + require.NoError(t, err) + stdout, _, _ := cli.Run("__complete", "core", "install", "") + require.Contains(t, string(stdout), "arduino:avr") + stdout, _, _ = cli.Run("__complete", "core", "download", "") + require.Contains(t, string(stdout), "arduino:avr") + stdout, _, _ = cli.Run("__complete", "core", "uninstall", "") + require.NotContains(t, string(stdout), "arduino:avr") + + // we install a core because the provided completions comes from it + _, _, err = cli.Run("core", "install", "arduino:avr@1.8.3") + require.NoError(t, err) + + stdout, _, _ = cli.Run("__complete", "core", "uninstall", "") + require.Contains(t, string(stdout), "arduino:avr") + + stdout, _, _ = cli.Run("__complete", "board", "details", "-b", "") + require.Contains(t, string(stdout), "arduino:avr:uno") + stdout, _, _ = cli.Run("__complete", "burn-bootloader", "-b", "") + require.Contains(t, string(stdout), "arduino:avr:uno") + stdout, _, _ = cli.Run("__complete", "compile", "-b", "") + require.Contains(t, string(stdout), "arduino:avr:uno") + stdout, _, _ = cli.Run("__complete", "debug", "-b", "") + require.Contains(t, string(stdout), "arduino:avr:uno") + stdout, _, _ = cli.Run("__complete", "lib", "examples", "-b", "") + require.Contains(t, string(stdout), "arduino:avr:uno") + stdout, _, _ = cli.Run("__complete", "upload", "-b", "") + require.Contains(t, string(stdout), "arduino:avr:uno") + stdout, _, _ = cli.Run("__complete", "monitor", "-b", "") + require.Contains(t, string(stdout), "arduino:avr:uno") + stdout, _, _ = cli.Run("__complete", "burn-bootloader", "-l", "") + require.Contains(t, string(stdout), "network") + stdout, _, _ = cli.Run("__complete", "compile", "-l", "") + require.Contains(t, string(stdout), "network") + stdout, _, _ = cli.Run("__complete", "debug", "-l", "") + require.Contains(t, string(stdout), "network") + stdout, _, _ = cli.Run("__complete", "upload", "-l", "") + require.Contains(t, string(stdout), "network") + stdout, _, _ = cli.Run("__complete", "monitor", "-l", "") + require.Contains(t, string(stdout), "network") + stdout, _, _ = cli.Run("__complete", "burn-bootloader", "-P", "") + require.Contains(t, string(stdout), "atmel_ice") + stdout, _, _ = cli.Run("__complete", "compile", "-P", "") + require.Contains(t, string(stdout), "atmel_ice") + stdout, _, _ = cli.Run("__complete", "debug", "-P", "") + require.Contains(t, string(stdout), "atmel_ice") + stdout, _, _ = cli.Run("__complete", "upload", "-P", "") + require.Contains(t, string(stdout), "atmel_ice") +} diff --git a/test/test_completion.py b/test/test_completion.py deleted file mode 100644 index 9cacef22d39..00000000000 --- a/test/test_completion.py +++ /dev/null @@ -1,64 +0,0 @@ -# This file is part of arduino-cli. -# -# Copyright 2020 ARDUINO SA (http://www.arduino.cc/) -# -# This software is released under the GNU General Public License version 3, -# which covers the main part of arduino-cli. -# The terms of this license can be found at: -# https://www.gnu.org/licenses/gpl-3.0.en.html -# -# You can be released from the requirements of the above licenses by purchasing -# a commercial license. Buying such a license is mandatory if you want to modify or -# otherwise use the software for commercial activities involving the Arduino -# software without disclosing the source code of your own applications. To purchase -# a commercial license, send an email to license@arduino.cc. - - -# here we test if the completions coming from the core are working -def test_core_completion(run_command): - assert run_command(["core", "update-index"]) - result = run_command(["__complete", "core", "install", ""]) - assert "arduino:avr" in result.stdout - result = run_command(["__complete", "core", "download", ""]) - assert "arduino:avr" in result.stdout - result = run_command(["__complete", "core", "uninstall", ""]) - assert "arduino:avr" not in result.stdout - - # we install a core because the provided completions comes from it - assert run_command(["core", "install", "arduino:avr@1.8.3"]) - - result = run_command(["__complete", "core", "uninstall", ""]) - assert "arduino:avr" in result.stdout - - result = run_command(["__complete", "board", "details", "-b", ""]) - assert "arduino:avr:uno" in result.stdout - result = run_command(["__complete", "burn-bootloader", "-b", ""]) - assert "arduino:avr:uno" in result.stdout - result = run_command(["__complete", "compile", "-b", ""]) - assert "arduino:avr:uno" in result.stdout - result = run_command(["__complete", "debug", "-b", ""]) - assert "arduino:avr:uno" in result.stdout - result = run_command(["__complete", "lib", "examples", "-b", ""]) - assert "arduino:avr:uno" in result.stdout - result = run_command(["__complete", "upload", "-b", ""]) - assert "arduino:avr:uno" in result.stdout - result = run_command(["__complete", "monitor", "-b", ""]) - assert "arduino:avr:uno" in result.stdout - result = run_command(["__complete", "burn-bootloader", "-l", ""]) - assert "network" in result.stdout - result = run_command(["__complete", "compile", "-l", ""]) - assert "network" in result.stdout - result = run_command(["__complete", "debug", "-l", ""]) - assert "network" in result.stdout - result = run_command(["__complete", "upload", "-l", ""]) - assert "network" in result.stdout - result = run_command(["__complete", "monitor", "-l", ""]) - assert "network" in result.stdout - result = run_command(["__complete", "burn-bootloader", "-P", ""]) - assert "atmel_ice" in result.stdout - result = run_command(["__complete", "compile", "-P", ""]) - assert "atmel_ice" in result.stdout - result = run_command(["__complete", "debug", "-P", ""]) - assert "atmel_ice" in result.stdout - result = run_command(["__complete", "upload", "-P", ""]) - assert "atmel_ice" in result.stdout