summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2018-05-28 14:01:25 +0200
committerThomas Haller <thaller@redhat.com>2018-05-28 16:24:22 +0200
commitbaaab52266961d7b36a627eed5bd48d192c3534c (patch)
tree8bf9facee45fdf916c889ebcadbc4a177369228a
parentf0cdd28db3861fd4de8cd16085ca792afaafc8df (diff)
downloadNetworkManager-baaab52266961d7b36a627eed5bd48d192c3534c.tar.gz
clients/tests: run nmcli commands in parallel
Most nmcli calls from clients/tests don't change the server's state. Hence, they can easily run in parallel. Run tests in parallel. No longer handle one nmcli invocation after the other. Instead, spawn groups of processes in parallel, and track the pending jobs. Only at certain synchronization points we call self.async_wait() to wait for all previous jobs to complete. This reduces the test time on my machine from 7 to 3 seconds. Arguably, that matters less during a full `make check -j 8`, because the entire set of tests anyway takes longer than 7 seconds. So when running the entire test suite, the machine is kept busy anyway. It matters however for manual invocations.
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-001.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-002.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-003.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-004.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-005.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-006.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-007.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-008.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-009.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-010.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-011.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-012.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-013.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-014.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-015.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-016.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-017.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-018.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-019.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-020.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-021.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-022.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-023.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-024.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-025.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_001-026.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-001.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-002.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-003.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-004.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-005.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-006.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-007.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-008.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-009.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-010.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-011.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-012.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-013.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-014.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-015.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-016.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-017.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-018.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-019.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-020.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-021.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-022.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-023.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_002-024.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-001.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-002.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-003.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-004.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-005.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-006.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-007.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-008.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-009.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-010.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-011.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-012.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-013.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-014.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-015.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-016.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-017.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-018.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-019.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-020.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-021.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-022.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-023.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-024.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-025.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-026.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-027.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-028.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-029.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-030.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-031.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-032.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-033.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-034.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-035.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-036.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-037.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-038.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-039.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-040.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-041.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-042.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-043.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-044.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-045.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-046.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-047.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-048.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-049.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-050.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-051.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-052.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-053.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_003-054.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_004-001.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_004-002.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_004-003.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_004-004.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_004-005.expected2
-rw-r--r--clients/tests/test-client.check-on-disk/test_004-006.expected2
-rwxr-xr-xclients/tests/test-client.py235
111 files changed, 261 insertions, 194 deletions
diff --git a/clients/tests/test-client.check-on-disk/test_001-001.expected b/clients/tests/test-client.check-on-disk/test_001-001.expected
index 0d1cbd4d86..23f546bfb6 100644
--- a/clients/tests/test-client.check-on-disk/test_001-001.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-001.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:586:test_001()/1
+location: clients/tests/test-client.py:651:test_001()/1
cmd: $NMCLI
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-002.expected b/clients/tests/test-client.check-on-disk/test_001-002.expected
index 8a79af5c93..bcbb86ee12 100644
--- a/clients/tests/test-client.check-on-disk/test_001-002.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-002.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:586:test_001()/2
+location: clients/tests/test-client.py:651:test_001()/2
cmd: $NMCLI
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-003.expected b/clients/tests/test-client.check-on-disk/test_001-003.expected
index 3cb5cd2119..f08e8df7b9 100644
--- a/clients/tests/test-client.check-on-disk/test_001-003.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-003.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:588:test_001()/3
+location: clients/tests/test-client.py:653:test_001()/3
cmd: $NMCLI -f AP -mode multiline -p d show wlan0
lang: C
returncode: 10
diff --git a/clients/tests/test-client.check-on-disk/test_001-004.expected b/clients/tests/test-client.check-on-disk/test_001-004.expected
index f68e437c50..1e01f6cd86 100644
--- a/clients/tests/test-client.check-on-disk/test_001-004.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-004.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:588:test_001()/4
+location: clients/tests/test-client.py:653:test_001()/4
cmd: $NMCLI -f AP -mode multiline -p d show wlan0
lang: pl_PL.UTF-8
returncode: 10
diff --git a/clients/tests/test-client.check-on-disk/test_001-005.expected b/clients/tests/test-client.check-on-disk/test_001-005.expected
index bb1d52ba06..c3ddbd52b1 100644
--- a/clients/tests/test-client.check-on-disk/test_001-005.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-005.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:590:test_001()/5
+location: clients/tests/test-client.py:655:test_001()/5
cmd: $NMCLI c s
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-006.expected b/clients/tests/test-client.check-on-disk/test_001-006.expected
index 92bf33e248..6e1bbca1c4 100644
--- a/clients/tests/test-client.check-on-disk/test_001-006.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-006.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:590:test_001()/6
+location: clients/tests/test-client.py:655:test_001()/6
cmd: $NMCLI c s
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-007.expected b/clients/tests/test-client.check-on-disk/test_001-007.expected
index 6da72f538f..759cfe56cd 100644
--- a/clients/tests/test-client.check-on-disk/test_001-007.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-007.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:592:test_001()/7
+location: clients/tests/test-client.py:657:test_001()/7
cmd: $NMCLI bogus s
lang: C
returncode: 2
diff --git a/clients/tests/test-client.check-on-disk/test_001-008.expected b/clients/tests/test-client.check-on-disk/test_001-008.expected
index 787184423a..ba4d941c73 100644
--- a/clients/tests/test-client.check-on-disk/test_001-008.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-008.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:592:test_001()/8
+location: clients/tests/test-client.py:657:test_001()/8
cmd: $NMCLI bogus s
lang: pl_PL.UTF-8
returncode: 2
diff --git a/clients/tests/test-client.check-on-disk/test_001-009.expected b/clients/tests/test-client.check-on-disk/test_001-009.expected
index beffd1a78e..2614409a18 100644
--- a/clients/tests/test-client.check-on-disk/test_001-009.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-009.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/9
+location: clients/tests/test-client.py:665:test_001()/9
cmd: $NMCLI general permissions
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-010.expected b/clients/tests/test-client.check-on-disk/test_001-010.expected
index f155ddbda5..0c9f540fe8 100644
--- a/clients/tests/test-client.check-on-disk/test_001-010.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-010.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/10
+location: clients/tests/test-client.py:665:test_001()/10
cmd: $NMCLI general permissions
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-011.expected b/clients/tests/test-client.check-on-disk/test_001-011.expected
index 688692f08f..fc6cc6b62e 100644
--- a/clients/tests/test-client.check-on-disk/test_001-011.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-011.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/11
+location: clients/tests/test-client.py:665:test_001()/11
cmd: $NMCLI --pretty general permissions
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-012.expected b/clients/tests/test-client.check-on-disk/test_001-012.expected
index 9e84bcc195..cb1793d2d7 100644
--- a/clients/tests/test-client.check-on-disk/test_001-012.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-012.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/12
+location: clients/tests/test-client.py:665:test_001()/12
cmd: $NMCLI --pretty general permissions
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-013.expected b/clients/tests/test-client.check-on-disk/test_001-013.expected
index 1e56db90c5..1317ee1347 100644
--- a/clients/tests/test-client.check-on-disk/test_001-013.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-013.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/13
+location: clients/tests/test-client.py:665:test_001()/13
cmd: $NMCLI --terse general permissions
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-014.expected b/clients/tests/test-client.check-on-disk/test_001-014.expected
index 6d3a7e3e57..73e62b7e72 100644
--- a/clients/tests/test-client.check-on-disk/test_001-014.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-014.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/14
+location: clients/tests/test-client.py:665:test_001()/14
cmd: $NMCLI --terse general permissions
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-015.expected b/clients/tests/test-client.check-on-disk/test_001-015.expected
index a0415e5d2a..426d9834a1 100644
--- a/clients/tests/test-client.check-on-disk/test_001-015.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-015.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/15
+location: clients/tests/test-client.py:665:test_001()/15
cmd: $NMCLI --mode tabular general permissions
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-016.expected b/clients/tests/test-client.check-on-disk/test_001-016.expected
index 99663d2c80..e501a8d317 100644
--- a/clients/tests/test-client.check-on-disk/test_001-016.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-016.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/16
+location: clients/tests/test-client.py:665:test_001()/16
cmd: $NMCLI --mode tabular general permissions
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-017.expected b/clients/tests/test-client.check-on-disk/test_001-017.expected
index 3c9736b5b1..ab38df973f 100644
--- a/clients/tests/test-client.check-on-disk/test_001-017.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-017.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/17
+location: clients/tests/test-client.py:665:test_001()/17
cmd: $NMCLI --mode tabular --pretty general permissions
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-018.expected b/clients/tests/test-client.check-on-disk/test_001-018.expected
index b6c7882bf0..7bbf78f543 100644
--- a/clients/tests/test-client.check-on-disk/test_001-018.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-018.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/18
+location: clients/tests/test-client.py:665:test_001()/18
cmd: $NMCLI --mode tabular --pretty general permissions
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-019.expected b/clients/tests/test-client.check-on-disk/test_001-019.expected
index cd39d207fb..23692b05ed 100644
--- a/clients/tests/test-client.check-on-disk/test_001-019.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-019.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/19
+location: clients/tests/test-client.py:665:test_001()/19
cmd: $NMCLI --mode tabular --terse general permissions
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-020.expected b/clients/tests/test-client.check-on-disk/test_001-020.expected
index 6e4ebfcad5..b0987d67d4 100644
--- a/clients/tests/test-client.check-on-disk/test_001-020.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-020.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/20
+location: clients/tests/test-client.py:665:test_001()/20
cmd: $NMCLI --mode tabular --terse general permissions
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-021.expected b/clients/tests/test-client.check-on-disk/test_001-021.expected
index a955355149..eb082c0273 100644
--- a/clients/tests/test-client.check-on-disk/test_001-021.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-021.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/21
+location: clients/tests/test-client.py:665:test_001()/21
cmd: $NMCLI --mode multiline general permissions
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-022.expected b/clients/tests/test-client.check-on-disk/test_001-022.expected
index 776de8adb5..df0020533f 100644
--- a/clients/tests/test-client.check-on-disk/test_001-022.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-022.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/22
+location: clients/tests/test-client.py:665:test_001()/22
cmd: $NMCLI --mode multiline general permissions
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-023.expected b/clients/tests/test-client.check-on-disk/test_001-023.expected
index bef1d86446..55376eb9c9 100644
--- a/clients/tests/test-client.check-on-disk/test_001-023.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-023.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/23
+location: clients/tests/test-client.py:665:test_001()/23
cmd: $NMCLI --mode multiline --pretty general permissions
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-024.expected b/clients/tests/test-client.check-on-disk/test_001-024.expected
index c9598ff1bd..10b3b04c19 100644
--- a/clients/tests/test-client.check-on-disk/test_001-024.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-024.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/24
+location: clients/tests/test-client.py:665:test_001()/24
cmd: $NMCLI --mode multiline --pretty general permissions
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-025.expected b/clients/tests/test-client.check-on-disk/test_001-025.expected
index 10c27a3a5b..687e62bf93 100644
--- a/clients/tests/test-client.check-on-disk/test_001-025.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-025.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/25
+location: clients/tests/test-client.py:665:test_001()/25
cmd: $NMCLI --mode multiline --terse general permissions
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_001-026.expected b/clients/tests/test-client.check-on-disk/test_001-026.expected
index 4451f185ce..1b01d876cf 100644
--- a/clients/tests/test-client.check-on-disk/test_001-026.expected
+++ b/clients/tests/test-client.check-on-disk/test_001-026.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:600:test_001()/26
+location: clients/tests/test-client.py:665:test_001()/26
cmd: $NMCLI --mode multiline --terse general permissions
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-001.expected b/clients/tests/test-client.check-on-disk/test_002-001.expected
index 15f3b4542b..5f3d7d6a0a 100644
--- a/clients/tests/test-client.check-on-disk/test_002-001.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-001.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:605:test_002()/1
+location: clients/tests/test-client.py:670:test_002()/1
cmd: $NMCLI d
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-002.expected b/clients/tests/test-client.check-on-disk/test_002-002.expected
index f9b0e5258c..3bdc45e469 100644
--- a/clients/tests/test-client.check-on-disk/test_002-002.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-002.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:605:test_002()/2
+location: clients/tests/test-client.py:670:test_002()/2
cmd: $NMCLI d
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-003.expected b/clients/tests/test-client.check-on-disk/test_002-003.expected
index d2dc9229e0..e2e56101dd 100644
--- a/clients/tests/test-client.check-on-disk/test_002-003.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-003.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:607:test_002()/3
+location: clients/tests/test-client.py:672:test_002()/3
cmd: $NMCLI -f all d
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-004.expected b/clients/tests/test-client.check-on-disk/test_002-004.expected
index fe9323b04f..0e884ed081 100644
--- a/clients/tests/test-client.check-on-disk/test_002-004.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-004.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:607:test_002()/4
+location: clients/tests/test-client.py:672:test_002()/4
cmd: $NMCLI -f all d
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-005.expected b/clients/tests/test-client.check-on-disk/test_002-005.expected
index 63c28c7111..3d1440eae3 100644
--- a/clients/tests/test-client.check-on-disk/test_002-005.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-005.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:609:test_002()/5
+location: clients/tests/test-client.py:674:test_002()/5
cmd: $NMCLI
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-006.expected b/clients/tests/test-client.check-on-disk/test_002-006.expected
index 473aaa6b38..a676f62de8 100644
--- a/clients/tests/test-client.check-on-disk/test_002-006.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-006.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:609:test_002()/6
+location: clients/tests/test-client.py:674:test_002()/6
cmd: $NMCLI
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-007.expected b/clients/tests/test-client.check-on-disk/test_002-007.expected
index ef1f3aa128..780e7f6e79 100644
--- a/clients/tests/test-client.check-on-disk/test_002-007.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-007.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:611:test_002()/7
+location: clients/tests/test-client.py:676:test_002()/7
cmd: $NMCLI -f AP -mode multiline d show wlan0
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-008.expected b/clients/tests/test-client.check-on-disk/test_002-008.expected
index 5422f63522..c605e8e755 100644
--- a/clients/tests/test-client.check-on-disk/test_002-008.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-008.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:611:test_002()/8
+location: clients/tests/test-client.py:676:test_002()/8
cmd: $NMCLI -f AP -mode multiline d show wlan0
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-009.expected b/clients/tests/test-client.check-on-disk/test_002-009.expected
index 03f0e28f2e..bd1bbe9056 100644
--- a/clients/tests/test-client.check-on-disk/test_002-009.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-009.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:612:test_002()/9
+location: clients/tests/test-client.py:677:test_002()/9
cmd: $NMCLI -f AP -mode multiline -p d show wlan0
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-010.expected b/clients/tests/test-client.check-on-disk/test_002-010.expected
index ef4cfd06f6..d3c06c7b29 100644
--- a/clients/tests/test-client.check-on-disk/test_002-010.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-010.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:612:test_002()/10
+location: clients/tests/test-client.py:677:test_002()/10
cmd: $NMCLI -f AP -mode multiline -p d show wlan0
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-011.expected b/clients/tests/test-client.check-on-disk/test_002-011.expected
index c93bb8f55e..e943c114e8 100644
--- a/clients/tests/test-client.check-on-disk/test_002-011.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-011.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:613:test_002()/11
+location: clients/tests/test-client.py:678:test_002()/11
cmd: $NMCLI -f AP -mode multiline -t d show wlan0
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-012.expected b/clients/tests/test-client.check-on-disk/test_002-012.expected
index 9b7bd5795d..6e3e5d56a7 100644
--- a/clients/tests/test-client.check-on-disk/test_002-012.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-012.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:613:test_002()/12
+location: clients/tests/test-client.py:678:test_002()/12
cmd: $NMCLI -f AP -mode multiline -t d show wlan0
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-013.expected b/clients/tests/test-client.check-on-disk/test_002-013.expected
index 68cdae538a..a649addd6b 100644
--- a/clients/tests/test-client.check-on-disk/test_002-013.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-013.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:614:test_002()/13
+location: clients/tests/test-client.py:679:test_002()/13
cmd: $NMCLI -f AP -mode tabular d show wlan0
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-014.expected b/clients/tests/test-client.check-on-disk/test_002-014.expected
index 044f71fead..d2a8a6677d 100644
--- a/clients/tests/test-client.check-on-disk/test_002-014.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-014.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:614:test_002()/14
+location: clients/tests/test-client.py:679:test_002()/14
cmd: $NMCLI -f AP -mode tabular d show wlan0
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-015.expected b/clients/tests/test-client.check-on-disk/test_002-015.expected
index a1ecc10d0b..1b28741fae 100644
--- a/clients/tests/test-client.check-on-disk/test_002-015.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-015.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:615:test_002()/15
+location: clients/tests/test-client.py:680:test_002()/15
cmd: $NMCLI -f AP -mode tabular -p d show wlan0
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-016.expected b/clients/tests/test-client.check-on-disk/test_002-016.expected
index 96bcea42b6..a597044783 100644
--- a/clients/tests/test-client.check-on-disk/test_002-016.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-016.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:615:test_002()/16
+location: clients/tests/test-client.py:680:test_002()/16
cmd: $NMCLI -f AP -mode tabular -p d show wlan0
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-017.expected b/clients/tests/test-client.check-on-disk/test_002-017.expected
index 80bcc5e87c..61499b6d0e 100644
--- a/clients/tests/test-client.check-on-disk/test_002-017.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-017.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:616:test_002()/17
+location: clients/tests/test-client.py:681:test_002()/17
cmd: $NMCLI -f AP -mode tabular -t d show wlan0
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-018.expected b/clients/tests/test-client.check-on-disk/test_002-018.expected
index e596f79c6b..bbac7a72c0 100644
--- a/clients/tests/test-client.check-on-disk/test_002-018.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-018.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:616:test_002()/18
+location: clients/tests/test-client.py:681:test_002()/18
cmd: $NMCLI -f AP -mode tabular -t d show wlan0
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-019.expected b/clients/tests/test-client.check-on-disk/test_002-019.expected
index 32fcbe10ea..0bcc5e9d48 100644
--- a/clients/tests/test-client.check-on-disk/test_002-019.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-019.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:618:test_002()/19
+location: clients/tests/test-client.py:683:test_002()/19
cmd: $NMCLI -f ALL d wifi
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-020.expected b/clients/tests/test-client.check-on-disk/test_002-020.expected
index f01cc14511..f433340e53 100644
--- a/clients/tests/test-client.check-on-disk/test_002-020.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-020.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:618:test_002()/20
+location: clients/tests/test-client.py:683:test_002()/20
cmd: $NMCLI -f ALL d wifi
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-021.expected b/clients/tests/test-client.check-on-disk/test_002-021.expected
index 3459839aa4..8dd7f6477d 100644
--- a/clients/tests/test-client.check-on-disk/test_002-021.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-021.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:620:test_002()/21
+location: clients/tests/test-client.py:685:test_002()/21
cmd: $NMCLI c
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-022.expected b/clients/tests/test-client.check-on-disk/test_002-022.expected
index a302eba08f..25d7bed294 100644
--- a/clients/tests/test-client.check-on-disk/test_002-022.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-022.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:620:test_002()/22
+location: clients/tests/test-client.py:685:test_002()/22
cmd: $NMCLI c
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-023.expected b/clients/tests/test-client.check-on-disk/test_002-023.expected
index 65e70ac396..43ce64190d 100644
--- a/clients/tests/test-client.check-on-disk/test_002-023.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-023.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:622:test_002()/23
+location: clients/tests/test-client.py:687:test_002()/23
cmd: $NMCLI c s con-1
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_002-024.expected b/clients/tests/test-client.check-on-disk/test_002-024.expected
index ff1fe90cfe..a5b7bc4afb 100644
--- a/clients/tests/test-client.check-on-disk/test_002-024.expected
+++ b/clients/tests/test-client.check-on-disk/test_002-024.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:622:test_002()/24
+location: clients/tests/test-client.py:687:test_002()/24
cmd: $NMCLI c s con-1
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-001.expected b/clients/tests/test-client.check-on-disk/test_003-001.expected
index 80cc0238fa..e131cb36b8 100644
--- a/clients/tests/test-client.check-on-disk/test_003-001.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-001.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:632:test_003()/1
+location: clients/tests/test-client.py:697:test_003()/1
cmd: $NMCLI c add type ethernet ifname '*' con-name con-xx1
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-002.expected b/clients/tests/test-client.check-on-disk/test_003-002.expected
index 0d4b814159..9c9cfb2d72 100644
--- a/clients/tests/test-client.check-on-disk/test_003-002.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-002.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:635:test_003()/2
+location: clients/tests/test-client.py:700:test_003()/2
cmd: $NMCLI c s
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-003.expected b/clients/tests/test-client.check-on-disk/test_003-003.expected
index c9c28a30ee..882d1b4d1c 100644
--- a/clients/tests/test-client.check-on-disk/test_003-003.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-003.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:635:test_003()/3
+location: clients/tests/test-client.py:700:test_003()/3
cmd: $NMCLI c s
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-004.expected b/clients/tests/test-client.check-on-disk/test_003-004.expected
index 2a827b71a1..37c67f275f 100644
--- a/clients/tests/test-client.check-on-disk/test_003-004.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-004.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:640:test_003()/4
+location: clients/tests/test-client.py:705:test_003()/4
cmd: $NMCLI c add type ethernet ifname '*'
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-005.expected b/clients/tests/test-client.check-on-disk/test_003-005.expected
index 107b731638..15ef586b4e 100644
--- a/clients/tests/test-client.check-on-disk/test_003-005.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-005.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:643:test_003()/5
+location: clients/tests/test-client.py:708:test_003()/5
cmd: $NMCLI c s
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-006.expected b/clients/tests/test-client.check-on-disk/test_003-006.expected
index fac53f88a4..cd89b202e8 100644
--- a/clients/tests/test-client.check-on-disk/test_003-006.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-006.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:643:test_003()/6
+location: clients/tests/test-client.py:708:test_003()/6
cmd: $NMCLI c s
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-007.expected b/clients/tests/test-client.check-on-disk/test_003-007.expected
index 058bb9523e..c2e5a56630 100644
--- a/clients/tests/test-client.check-on-disk/test_003-007.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-007.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:646:test_003()/7
+location: clients/tests/test-client.py:711:test_003()/7
cmd: $NMCLI -f ALL c s
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-008.expected b/clients/tests/test-client.check-on-disk/test_003-008.expected
index d7b9047740..1100563f1e 100644
--- a/clients/tests/test-client.check-on-disk/test_003-008.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-008.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:646:test_003()/8
+location: clients/tests/test-client.py:711:test_003()/8
cmd: $NMCLI -f ALL c s
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-009.expected b/clients/tests/test-client.check-on-disk/test_003-009.expected
index b9969e16c0..f3d9d2923c 100644
--- a/clients/tests/test-client.check-on-disk/test_003-009.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-009.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:650:test_003()/9
+location: clients/tests/test-client.py:715:test_003()/9
cmd: $NMCLI --complete-args -f ALL c s ''
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-010.expected b/clients/tests/test-client.check-on-disk/test_003-010.expected
index e954f97847..86c4dea0ee 100644
--- a/clients/tests/test-client.check-on-disk/test_003-010.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-010.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:650:test_003()/10
+location: clients/tests/test-client.py:715:test_003()/10
cmd: $NMCLI --complete-args -f ALL c s ''
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-011.expected b/clients/tests/test-client.check-on-disk/test_003-011.expected
index ac30cc3717..3da70bbf10 100644
--- a/clients/tests/test-client.check-on-disk/test_003-011.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-011.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:663:test_003()/11
+location: clients/tests/test-client.py:728:test_003()/11
cmd: $NMCLI con up ethernet ifname eth0
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-012.expected b/clients/tests/test-client.check-on-disk/test_003-012.expected
index 865bdaf06d..810ffc8b79 100644
--- a/clients/tests/test-client.check-on-disk/test_003-012.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-012.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:666:test_003()/12
+location: clients/tests/test-client.py:731:test_003()/12
cmd: $NMCLI con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-013.expected b/clients/tests/test-client.check-on-disk/test_003-013.expected
index 4e12107ac3..b17bbf2855 100644
--- a/clients/tests/test-client.check-on-disk/test_003-013.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-013.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:666:test_003()/13
+location: clients/tests/test-client.py:731:test_003()/13
cmd: $NMCLI con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-014.expected b/clients/tests/test-client.check-on-disk/test_003-014.expected
index ba02193e1a..da785a2c8b 100644
--- a/clients/tests/test-client.check-on-disk/test_003-014.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-014.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:669:test_003()/14
+location: clients/tests/test-client.py:734:test_003()/14
cmd: $NMCLI -f ALL con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-015.expected b/clients/tests/test-client.check-on-disk/test_003-015.expected
index 858ebd239c..ad645f8f82 100644
--- a/clients/tests/test-client.check-on-disk/test_003-015.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-015.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:669:test_003()/15
+location: clients/tests/test-client.py:734:test_003()/15
cmd: $NMCLI -f ALL con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-016.expected b/clients/tests/test-client.check-on-disk/test_003-016.expected
index c536471be2..8d68221f9d 100644
--- a/clients/tests/test-client.check-on-disk/test_003-016.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-016.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:672:test_003()/16
+location: clients/tests/test-client.py:737:test_003()/16
cmd: $NMCLI -f ALL con s ethernet
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-017.expected b/clients/tests/test-client.check-on-disk/test_003-017.expected
index 7b682f84e3..7e99138c22 100644
--- a/clients/tests/test-client.check-on-disk/test_003-017.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-017.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:672:test_003()/17
+location: clients/tests/test-client.py:737:test_003()/17
cmd: $NMCLI -f ALL con s ethernet
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-018.expected b/clients/tests/test-client.check-on-disk/test_003-018.expected
index e2aad1a20f..bc74883da7 100644
--- a/clients/tests/test-client.check-on-disk/test_003-018.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-018.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:675:test_003()/18
+location: clients/tests/test-client.py:740:test_003()/18
cmd: $NMCLI con s ethernet
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-019.expected b/clients/tests/test-client.check-on-disk/test_003-019.expected
index 6f3ecc5752..5e37312d12 100644
--- a/clients/tests/test-client.check-on-disk/test_003-019.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-019.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:675:test_003()/19
+location: clients/tests/test-client.py:740:test_003()/19
cmd: $NMCLI con s ethernet
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-020.expected b/clients/tests/test-client.check-on-disk/test_003-020.expected
index 0ad17f3c5d..513985a5a5 100644
--- a/clients/tests/test-client.check-on-disk/test_003-020.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-020.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:678:test_003()/20
+location: clients/tests/test-client.py:743:test_003()/20
cmd: $NMCLI -f ALL dev s eth0
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-021.expected b/clients/tests/test-client.check-on-disk/test_003-021.expected
index 8e4bd7b89f..6809f2907d 100644
--- a/clients/tests/test-client.check-on-disk/test_003-021.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-021.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:678:test_003()/21
+location: clients/tests/test-client.py:743:test_003()/21
cmd: $NMCLI -f ALL dev s eth0
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-022.expected b/clients/tests/test-client.check-on-disk/test_003-022.expected
index b2f91fa54a..57d4e4a8ed 100644
--- a/clients/tests/test-client.check-on-disk/test_003-022.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-022.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:681:test_003()/22
+location: clients/tests/test-client.py:746:test_003()/22
cmd: $NMCLI -f ALL dev show eth0
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-023.expected b/clients/tests/test-client.check-on-disk/test_003-023.expected
index af6fb64e38..0455374fd2 100644
--- a/clients/tests/test-client.check-on-disk/test_003-023.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-023.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:681:test_003()/23
+location: clients/tests/test-client.py:746:test_003()/23
cmd: $NMCLI -f ALL dev show eth0
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-024.expected b/clients/tests/test-client.check-on-disk/test_003-024.expected
index e30adb0a28..b20a45d45c 100644
--- a/clients/tests/test-client.check-on-disk/test_003-024.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-024.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:663:test_003()/24
+location: clients/tests/test-client.py:728:test_003()/24
cmd: $NMCLI con up ethernet ifname eth1
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-025.expected b/clients/tests/test-client.check-on-disk/test_003-025.expected
index 6a8a414fde..3806099b97 100644
--- a/clients/tests/test-client.check-on-disk/test_003-025.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-025.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:666:test_003()/25
+location: clients/tests/test-client.py:731:test_003()/25
cmd: $NMCLI con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-026.expected b/clients/tests/test-client.check-on-disk/test_003-026.expected
index a75b80d3b7..ee60913461 100644
--- a/clients/tests/test-client.check-on-disk/test_003-026.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-026.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:666:test_003()/26
+location: clients/tests/test-client.py:731:test_003()/26
cmd: $NMCLI con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-027.expected b/clients/tests/test-client.check-on-disk/test_003-027.expected
index df5fe07aed..96924a425a 100644
--- a/clients/tests/test-client.check-on-disk/test_003-027.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-027.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:669:test_003()/27
+location: clients/tests/test-client.py:734:test_003()/27
cmd: $NMCLI -f ALL con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-028.expected b/clients/tests/test-client.check-on-disk/test_003-028.expected
index db89b906cc..6065d1ea44 100644
--- a/clients/tests/test-client.check-on-disk/test_003-028.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-028.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:669:test_003()/28
+location: clients/tests/test-client.py:734:test_003()/28
cmd: $NMCLI -f ALL con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-029.expected b/clients/tests/test-client.check-on-disk/test_003-029.expected
index 895a099def..ebb89619ad 100644
--- a/clients/tests/test-client.check-on-disk/test_003-029.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-029.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:672:test_003()/29
+location: clients/tests/test-client.py:737:test_003()/29
cmd: $NMCLI -f ALL con s ethernet
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-030.expected b/clients/tests/test-client.check-on-disk/test_003-030.expected
index e81c47c563..adf743d87d 100644
--- a/clients/tests/test-client.check-on-disk/test_003-030.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-030.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:672:test_003()/30
+location: clients/tests/test-client.py:737:test_003()/30
cmd: $NMCLI -f ALL con s ethernet
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-031.expected b/clients/tests/test-client.check-on-disk/test_003-031.expected
index 0d9fb2872e..cbf57afcec 100644
--- a/clients/tests/test-client.check-on-disk/test_003-031.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-031.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:675:test_003()/31
+location: clients/tests/test-client.py:740:test_003()/31
cmd: $NMCLI con s ethernet
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-032.expected b/clients/tests/test-client.check-on-disk/test_003-032.expected
index f444f620d6..e5d74a1be9 100644
--- a/clients/tests/test-client.check-on-disk/test_003-032.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-032.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:675:test_003()/32
+location: clients/tests/test-client.py:740:test_003()/32
cmd: $NMCLI con s ethernet
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-033.expected b/clients/tests/test-client.check-on-disk/test_003-033.expected
index 8c87db6c9e..46b70521ae 100644
--- a/clients/tests/test-client.check-on-disk/test_003-033.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-033.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:678:test_003()/33
+location: clients/tests/test-client.py:743:test_003()/33
cmd: $NMCLI -f ALL dev s eth0
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-034.expected b/clients/tests/test-client.check-on-disk/test_003-034.expected
index 0f1b6847d3..77cc99fdff 100644
--- a/clients/tests/test-client.check-on-disk/test_003-034.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-034.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:678:test_003()/34
+location: clients/tests/test-client.py:743:test_003()/34
cmd: $NMCLI -f ALL dev s eth0
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-035.expected b/clients/tests/test-client.check-on-disk/test_003-035.expected
index a764a699d4..ae9286575f 100644
--- a/clients/tests/test-client.check-on-disk/test_003-035.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-035.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:681:test_003()/35
+location: clients/tests/test-client.py:746:test_003()/35
cmd: $NMCLI -f ALL dev show eth0
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-036.expected b/clients/tests/test-client.check-on-disk/test_003-036.expected
index 1f4c3bcf3a..11b511f719 100644
--- a/clients/tests/test-client.check-on-disk/test_003-036.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-036.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:681:test_003()/36
+location: clients/tests/test-client.py:746:test_003()/36
cmd: $NMCLI -f ALL dev show eth0
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-037.expected b/clients/tests/test-client.check-on-disk/test_003-037.expected
index 26668ae8ef..0346b310fc 100644
--- a/clients/tests/test-client.check-on-disk/test_003-037.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-037.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:688:test_003()/37
+location: clients/tests/test-client.py:755:test_003()/37
cmd: $NMCLI -f ALL con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-038.expected b/clients/tests/test-client.check-on-disk/test_003-038.expected
index f9f85d2480..81c7c237d7 100644
--- a/clients/tests/test-client.check-on-disk/test_003-038.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-038.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:688:test_003()/38
+location: clients/tests/test-client.py:755:test_003()/38
cmd: $NMCLI -f ALL con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-039.expected b/clients/tests/test-client.check-on-disk/test_003-039.expected
index 9f1ab1cc48..3640d0c9d2 100644
--- a/clients/tests/test-client.check-on-disk/test_003-039.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-039.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:691:test_003()/39
+location: clients/tests/test-client.py:758:test_003()/39
cmd: $NMCLI -f UUID,TYPE con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-040.expected b/clients/tests/test-client.check-on-disk/test_003-040.expected
index 9ffb02ed50..fd263f5507 100644
--- a/clients/tests/test-client.check-on-disk/test_003-040.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-040.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:691:test_003()/40
+location: clients/tests/test-client.py:758:test_003()/40
cmd: $NMCLI -f UUID,TYPE con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-041.expected b/clients/tests/test-client.check-on-disk/test_003-041.expected
index b7eba0b576..f61fb681a0 100644
--- a/clients/tests/test-client.check-on-disk/test_003-041.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-041.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:694:test_003()/41
+location: clients/tests/test-client.py:761:test_003()/41
cmd: $NMCLI -f UUID,TYPE --mode multiline con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-042.expected b/clients/tests/test-client.check-on-disk/test_003-042.expected
index 7ecd32e48a..6ea659e9d4 100644
--- a/clients/tests/test-client.check-on-disk/test_003-042.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-042.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:694:test_003()/42
+location: clients/tests/test-client.py:761:test_003()/42
cmd: $NMCLI -f UUID,TYPE --mode multiline con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-043.expected b/clients/tests/test-client.check-on-disk/test_003-043.expected
index aebed1fd5e..8f5aeb7049 100644
--- a/clients/tests/test-client.check-on-disk/test_003-043.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-043.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:697:test_003()/43
+location: clients/tests/test-client.py:764:test_003()/43
cmd: $NMCLI -f UUID,TYPE --mode multiline --terse con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-044.expected b/clients/tests/test-client.check-on-disk/test_003-044.expected
index b8b116737e..fbe01dab80 100644
--- a/clients/tests/test-client.check-on-disk/test_003-044.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-044.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:697:test_003()/44
+location: clients/tests/test-client.py:764:test_003()/44
cmd: $NMCLI -f UUID,TYPE --mode multiline --terse con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-045.expected b/clients/tests/test-client.check-on-disk/test_003-045.expected
index 4d9c75ace2..5759e2f429 100644
--- a/clients/tests/test-client.check-on-disk/test_003-045.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-045.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:700:test_003()/45
+location: clients/tests/test-client.py:767:test_003()/45
cmd: $NMCLI -f UUID,TYPE --mode multiline --pretty con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-046.expected b/clients/tests/test-client.check-on-disk/test_003-046.expected
index d8dc52c291..d853d48743 100644
--- a/clients/tests/test-client.check-on-disk/test_003-046.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-046.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:700:test_003()/46
+location: clients/tests/test-client.py:767:test_003()/46
cmd: $NMCLI -f UUID,TYPE --mode multiline --pretty con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-047.expected b/clients/tests/test-client.check-on-disk/test_003-047.expected
index c17d7c8697..6522c7b20e 100644
--- a/clients/tests/test-client.check-on-disk/test_003-047.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-047.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:703:test_003()/47
+location: clients/tests/test-client.py:770:test_003()/47
cmd: $NMCLI -f UUID,TYPE --mode tabular con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-048.expected b/clients/tests/test-client.check-on-disk/test_003-048.expected
index 8138a22fd4..08d3ae95c0 100644
--- a/clients/tests/test-client.check-on-disk/test_003-048.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-048.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:703:test_003()/48
+location: clients/tests/test-client.py:770:test_003()/48
cmd: $NMCLI -f UUID,TYPE --mode tabular con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-049.expected b/clients/tests/test-client.check-on-disk/test_003-049.expected
index 01008d61d8..3f8f30602a 100644
--- a/clients/tests/test-client.check-on-disk/test_003-049.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-049.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:706:test_003()/49
+location: clients/tests/test-client.py:773:test_003()/49
cmd: $NMCLI -f UUID,TYPE --mode tabular --terse con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-050.expected b/clients/tests/test-client.check-on-disk/test_003-050.expected
index 84b6670a29..dea01fd2c0 100644
--- a/clients/tests/test-client.check-on-disk/test_003-050.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-050.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:706:test_003()/50
+location: clients/tests/test-client.py:773:test_003()/50
cmd: $NMCLI -f UUID,TYPE --mode tabular --terse con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-051.expected b/clients/tests/test-client.check-on-disk/test_003-051.expected
index 4eca52d14f..7e4dd471cf 100644
--- a/clients/tests/test-client.check-on-disk/test_003-051.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-051.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:709:test_003()/51
+location: clients/tests/test-client.py:776:test_003()/51
cmd: $NMCLI -f UUID,TYPE --mode tabular --pretty con
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-052.expected b/clients/tests/test-client.check-on-disk/test_003-052.expected
index 5934722a04..3d6c2ecacc 100644
--- a/clients/tests/test-client.check-on-disk/test_003-052.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-052.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:709:test_003()/52
+location: clients/tests/test-client.py:776:test_003()/52
cmd: $NMCLI -f UUID,TYPE --mode tabular --pretty con
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-053.expected b/clients/tests/test-client.check-on-disk/test_003-053.expected
index b6cbf5dc11..dd92ec686a 100644
--- a/clients/tests/test-client.check-on-disk/test_003-053.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-053.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:712:test_003()/53
+location: clients/tests/test-client.py:779:test_003()/53
cmd: $NMCLI con s ethernet
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_003-054.expected b/clients/tests/test-client.check-on-disk/test_003-054.expected
index 9417e263c5..7379f872c6 100644
--- a/clients/tests/test-client.check-on-disk/test_003-054.expected
+++ b/clients/tests/test-client.check-on-disk/test_003-054.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:712:test_003()/54
+location: clients/tests/test-client.py:779:test_003()/54
cmd: $NMCLI con s ethernet
lang: pl_PL.UTF-8
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_004-001.expected b/clients/tests/test-client.check-on-disk/test_004-001.expected
index 2999fa2f5f..0723731d1f 100644
--- a/clients/tests/test-client.check-on-disk/test_004-001.expected
+++ b/clients/tests/test-client.check-on-disk/test_004-001.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:722:test_004()/1
+location: clients/tests/test-client.py:789:test_004()/1
cmd: $NMCLI c add type wifi ifname '*' ssid foobar con-name con-xx1
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_004-002.expected b/clients/tests/test-client.check-on-disk/test_004-002.expected
index 1eb463d439..37c88812da 100644
--- a/clients/tests/test-client.check-on-disk/test_004-002.expected
+++ b/clients/tests/test-client.check-on-disk/test_004-002.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:724:test_004()/2
+location: clients/tests/test-client.py:791:test_004()/2
cmd: $NMCLI connection mod con-xx1 ip.gateway ''
lang: C
returncode: 2
diff --git a/clients/tests/test-client.check-on-disk/test_004-003.expected b/clients/tests/test-client.check-on-disk/test_004-003.expected
index 61d22b9bb5..e76bb0bf11 100644
--- a/clients/tests/test-client.check-on-disk/test_004-003.expected
+++ b/clients/tests/test-client.check-on-disk/test_004-003.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:725:test_004()/3
+location: clients/tests/test-client.py:792:test_004()/3
cmd: $NMCLI connection mod con-xx1 ipv4.gateway 172.16.0.1
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_004-004.expected b/clients/tests/test-client.check-on-disk/test_004-004.expected
index 6969c2340a..17233cd113 100644
--- a/clients/tests/test-client.check-on-disk/test_004-004.expected
+++ b/clients/tests/test-client.check-on-disk/test_004-004.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:726:test_004()/4
+location: clients/tests/test-client.py:793:test_004()/4
cmd: $NMCLI connection mod con-xx1 ipv6.gateway ::99
lang: C
returncode: 0
diff --git a/clients/tests/test-client.check-on-disk/test_004-005.expected b/clients/tests/test-client.check-on-disk/test_004-005.expected
index f340fd089a..a4b0a592dc 100644
--- a/clients/tests/test-client.check-on-disk/test_004-005.expected
+++ b/clients/tests/test-client.check-on-disk/test_004-005.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:727:test_004()/5
+location: clients/tests/test-client.py:794:test_004()/5
cmd: $NMCLI connection mod con-xx1 802.abc ''
lang: C
returncode: 2
diff --git a/clients/tests/test-client.check-on-disk/test_004-006.expected b/clients/tests/test-client.check-on-disk/test_004-006.expected
index 51c4d89735..9fd5fe42de 100644
--- a/clients/tests/test-client.check-on-disk/test_004-006.expected
+++ b/clients/tests/test-client.check-on-disk/test_004-006.expected
@@ -1,4 +1,4 @@
-location: clients/tests/test-client.py:728:test_004()/6
+location: clients/tests/test-client.py:795:test_004()/6
cmd: $NMCLI connection mod con-xx1 802-11-wireless.band a
lang: C
returncode: 0
diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py
index e9642ef4f3..a8e107a0a2 100755
--- a/clients/tests/test-client.py
+++ b/clients/tests/test-client.py
@@ -304,6 +304,39 @@ class NMStubServer:
###############################################################################
+class AsyncProcess():
+
+ def __init__(self,
+ args,
+ env,
+ complete_cb):
+ self._args = args
+ self._env = env
+ self._complete_cb = complete_cb
+
+ def start(self):
+ if not hasattr(self, '_p'):
+ self._p = subprocess.Popen(self._args,
+ stdout = subprocess.PIPE,
+ stderr = subprocess.PIPE,
+ env = self._env)
+
+ def wait(self):
+
+ self.start()
+
+ Util.popen_wait(self._p, 2000)
+
+ (returncode, stdout, stderr) = (self._p.returncode, self._p.stdout.read(), self._p.stderr.read())
+
+ self._p.stdout.close()
+ self._p.stderr.close()
+ self._p = None
+
+ self._complete_cb(self, returncode, stdout, stderr)
+
+###############################################################################
+
file_list = []
class NmTestBase(unittest.TestCase):
@@ -320,7 +353,8 @@ class TestNmcli(NmTestBase):
replace_stdout = None,
replace_stderr = None,
sort_lines_stdout = False,
- extra_env = None):
+ extra_env = None,
+ sync_barrier = False):
frame = sys._getframe(1)
for lang in [ 'C', 'pl' ]:
self._call_nmcli(args,
@@ -333,6 +367,7 @@ class TestNmcli(NmTestBase):
replace_stderr,
sort_lines_stdout,
extra_env,
+ sync_barrier,
frame)
@@ -347,7 +382,8 @@ class TestNmcli(NmTestBase):
replace_stdout = None,
replace_stderr = None,
sort_lines_stdout = False,
- extra_env = None):
+ extra_env = None,
+ sync_barrier = None):
frame = sys._getframe(1)
@@ -358,6 +394,9 @@ class TestNmcli(NmTestBase):
lang = 'C'
langs = [lang]
+ if sync_barrier is None:
+ sync_barrier = (len(langs) == 1)
+
for lang in langs:
self._call_nmcli(args,
lang,
@@ -369,6 +408,7 @@ class TestNmcli(NmTestBase):
replace_stderr,
sort_lines_stdout,
extra_env,
+ sync_barrier,
frame)
def _call_nmcli(self,
@@ -382,12 +422,26 @@ class TestNmcli(NmTestBase):
replace_stderr,
sort_lines_stdout,
extra_env,
+ sync_barrier,
frame):
+ if sync_barrier:
+ self.async_wait()
+
calling_fcn = frame.f_code.co_name
calling_num = self._calling_num.get(calling_fcn, 0) + 1
self._calling_num[calling_fcn] = calling_num
+ test_name = '%s-%03d' % (calling_fcn, calling_num)
+
+ # we cannot use frame.f_code.co_filename directly, because it might be different depending
+ # on where the file lies and which is CWD. We still want to give the location of
+ # the file, so that the user can easier find the source (when looking at the .expected files)
+ script_filename = 'clients/tests/test-client.py'
+ self.assertTrue(os.path.abspath(frame.f_code.co_filename).endswith(script_filename))
+
+ calling_location = '%s:%d:%s()/%d' % (script_filename, frame.f_lineno, frame.f_code.co_name, calling_num)
+
if lang is None or lang == 'C':
lang = 'C'
language = ''
@@ -417,27 +471,10 @@ class TestNmcli(NmTestBase):
args = [conf.get(ENV_NM_TEST_CLIENT_NMCLI_PATH)] + list(args)
- p = subprocess.Popen(args,
- stdout = subprocess.PIPE,
- stderr = subprocess.PIPE,
- env = env)
- Util.popen_wait(p, 2000)
-
- (returncode, stdout, stderr) = (p.returncode, p.stdout.read(), p.stderr.read())
-
- p.stdout.close()
- p.stderr.close()
-
- stdout = Util.replace_text(stdout, replace_stdout)
- stderr = Util.replace_text(stderr, replace_stderr)
-
- if sort_lines_stdout:
- stdout = b'\n'.join(sorted(stdout.split(b'\n')))
-
- ignore_l10n_diff = ( lang != 'C'
- and not conf.get(ENV_NM_TEST_CLIENT_CHECK_L10N))
-
- test_name = '%s-%03d' % (calling_fcn, calling_num)
+ if replace_stdout is not None:
+ replace_stdout = list(replace_stdout)
+ if replace_stderr is not None:
+ replace_stderr = list(replace_stderr)
if check_on_disk is _DEFAULT_ARG:
check_on_disk = ( expected_returncode is _DEFAULT_ARG
@@ -450,79 +487,105 @@ class TestNmcli(NmTestBase):
if expected_stderr is _DEFAULT_ARG:
expected_stderr = None
- if expected_stderr is not None:
- if expected_stderr != stderr:
- if ignore_l10n_diff:
- self._skip_test_for_l10n_diff.append(test_name)
- else:
- self.assertEqual(expected_stderr, stderr)
- if expected_stdout is not None:
- if expected_stdout != stdout:
- if ignore_l10n_diff:
- self._skip_test_for_l10n_diff.append(test_name)
- else:
- self.assertEqual(expected_stdout, stdout)
- if expected_returncode is not None:
- self.assertEqual(expected_returncode, returncode)
-
+ def complete_cb(async_job,
+ returncode,
+ stdout,
+ stderr):
+
+ stdout = Util.replace_text(stdout, replace_stdout)
+ stderr = Util.replace_text(stderr, replace_stderr)
+
+ if sort_lines_stdout:
+ stdout = b'\n'.join(sorted(stdout.split(b'\n')))
+
+ ignore_l10n_diff = ( lang != 'C'
+ and not conf.get(ENV_NM_TEST_CLIENT_CHECK_L10N))
+
+ if expected_stderr is not None:
+ if expected_stderr != stderr:
+ if ignore_l10n_diff:
+ self._skip_test_for_l10n_diff.append(test_name)
+ else:
+ self.assertEqual(expected_stderr, stderr)
+ if expected_stdout is not None:
+ if expected_stdout != stdout:
+ if ignore_l10n_diff:
+ self._skip_test_for_l10n_diff.append(test_name)
+ else:
+ self.assertEqual(expected_stdout, stdout)
+ if expected_returncode is not None:
+ self.assertEqual(expected_returncode, returncode)
+
+ dirname = PathConfiguration.srcdir() + '/test-client.check-on-disk'
+ basename = test_name + '.expected'
+ filename = os.path.abspath(dirname + '/' + basename)
+
+ if not check_on_disk:
+ if os.path.exists(filename):
+ self.fail("The file '%s' exists, although we expect it not to." % (filename))
+ return
- dirname = PathConfiguration.srcdir() + '/test-client.check-on-disk'
- basename = test_name + '.expected'
- filename = os.path.abspath(dirname + '/' + basename)
+ file_list.append(basename)
- if not check_on_disk:
- if os.path.exists(filename):
- self.fail("The file '%s' exists, although we expect it not to." % (filename))
- return
+ content_old = Util.file_read(filename)
- file_list.append(basename)
+ content_new = ('location: %s\n' % (calling_location)).encode('utf8') + \
+ ('cmd: $NMCLI %s\n' % (' '.join([Util.quote(a) for a in args[1:]]))).encode('utf8') + \
+ ('lang: %s\n' % (lang)).encode('utf8') + \
+ ('returncode: %d\n' % (returncode)).encode('utf8') + \
+ ('stdout: %d bytes\n>>>\n' % (len(stdout))).encode('utf8') + \
+ stdout + \
+ ('\n<<<\nstderr: %d bytes\n>>>\n' % (len(stderr))).encode('utf8') + \
+ stderr + \
+ '\n<<<\n'.encode('utf8')
- content_old = Util.file_read(filename)
+ w = conf.get(ENV_NM_TEST_REGENERATE)
- # we cannot use frame.f_code.co_filename directly, because it might be different depending
- # on where the file lies and which is CWD. We still want to give the location of
- # the file, so that the user can easier find the source (when looking at the .expected files)
- script_filename = 'clients/tests/test-client.py'
- self.assertTrue(os.path.abspath(frame.f_code.co_filename).endswith(script_filename))
+ if content_old is not None:
+ if content_old == content_new:
+ return
- calling_location = '%s:%d:%s()/%d' % (script_filename, frame.f_lineno, frame.f_code.co_name, calling_num)
+ if not w:
+ if ignore_l10n_diff:
+ self._skip_test_for_l10n_diff.append(test_name)
+ return
+ print("\n\n\nThe file '%s' does not have the expected content:" % (filename))
+ print("ACTUAL OUTPUT:\n[[%s]]\n" % (content_new))
+ print("EXPECT OUTPUT:\n[[%s]]\n" % (content_old))
+ print("Let the test write the file by rerunning with NM_TEST_REGENERATE=1\n\n")
+ raise AssertionError("Unexpected output of command, expected %s. Rerun test with NM_TEST_REGENERATE=1 to regenerate files" % (filename))
+ else:
+ if not w:
+ self.fail("The file '%s' does not exist. Let the test write the file by rerunning with NM_TEST_REGENERATE=1" % (filename))
- content_new = ('location: %s\n' % (calling_location)).encode('utf8') + \
- ('cmd: $NMCLI %s\n' % (' '.join([Util.quote(a) for a in args[1:]]))).encode('utf8') + \
- ('lang: %s\n' % (lang)).encode('utf8') + \
- ('returncode: %d\n' % (returncode)).encode('utf8') + \
- ('stdout: %d bytes\n>>>\n' % (len(stdout))).encode('utf8') + \
- stdout + \
- ('\n<<<\nstderr: %d bytes\n>>>\n' % (len(stderr))).encode('utf8') + \
- stderr + \
- '\n<<<\n'.encode('utf8')
+ try:
+ if not os.path.exists(dirname):
+ os.makedirs(dirname)
+ with open(filename, 'wb') as content_file:
+ content_file.write(content_new)
+ except Exception as e:
+ self.fail("Failure to write '%s': %s" % (filename, e))
- w = conf.get(ENV_NM_TEST_REGENERATE)
+ async_job = AsyncProcess(args = args,
+ env = env,
+ complete_cb = complete_cb)
- if content_old is not None:
- if content_old == content_new:
- return
+ self._async_jobs.append(async_job)
- if not w:
- if ignore_l10n_diff:
- self._skip_test_for_l10n_diff.append(test_name)
- return
- print("\n\n\nThe file '%s' does not have the expected content:" % (filename))
- print("ACTUAL OUTPUT:\n[[%s]]\n" % (content_new))
- print("EXPECT OUTPUT:\n[[%s]]\n" % (content_old))
- print("Let the test write the file by rerunning with NM_TEST_REGENERATE=1\n\n")
- raise AssertionError("Unexpected output of command, expected %s. Rerun test with NM_TEST_REGENERATE=1 to regenerate files" % (filename))
+ if sync_barrier:
+ self.async_wait()
else:
- if not w:
- self.fail("The file '%s' does not exist. Let the test write the file by rerunning with NM_TEST_REGENERATE=1" % (filename))
+ self.async_start()
- try:
- if not os.path.exists(dirname):
- os.makedirs(dirname)
- with open(filename, 'wb') as content_file:
- content_file.write(content_new)
- except Exception as e:
- self.fail("Failure to write '%s': %s" % (filename, e))
+ def async_start(self):
+ # limit number parallel running jobs
+ for async_job in self._async_jobs[0:10]:
+ async_job.start()
+
+ def async_wait(self):
+ while self._async_jobs:
+ self.async_start()
+ self._async_jobs.pop(0).wait()
def setUp(self):
if not dbus_session_inited:
@@ -532,8 +595,10 @@ class TestNmcli(NmTestBase):
self.srv = NMStubServer()
self._calling_num = {}
self._skip_test_for_l10n_diff = []
+ self._async_jobs = []
def tearDown(self):
+ self.async_wait()
self.srv.shutdown()
self.srv = None
self._calling_num = None
@@ -680,6 +745,8 @@ class TestNmcli(NmTestBase):
self.call_nmcli_l(['-f', 'ALL', 'dev', 'show', 'eth0'],
replace_stdout = replace_stdout)
+ self.async_wait()
+
self.srv.setProperty('/org/freedesktop/NetworkManager/ActiveConnection/1',
'State',
dbus.UInt32(NM.ActiveConnectionState.DEACTIVATING))