Skip to content

Commit d1eda8e

Browse files
authored
Added live test cases (#21011)
* Added live test cases for Network and DNS * Added live test cases for modules Automation, Databricks and Functions Added more detailed error info and enabled Debug preference during the last retry
1 parent a997c19 commit d1eda8e

File tree

4 files changed

+224
-1
lines changed

4 files changed

+224
-1
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
Invoke-LiveTestScenario -Name "Create automation account" -Description "Test creating automation account with different sku" -ScenarioScript `
2+
{
3+
param ($rg)
4+
5+
$rgName = $rg.ResourceGroupName
6+
$autoAccParams = @(
7+
@{
8+
Name = New-LiveTestResourceName;
9+
Location = "westus";
10+
Plan = "Free"
11+
},
12+
@{
13+
Name = New-LiveTestResourceName;
14+
Location = "eastus";
15+
Plan = "Basic"
16+
}
17+
)
18+
19+
$autoAccParams | ForEach-Object {
20+
New-AzAutomationAccount -ResourceGroupName $rgName -Name $_.Name -Location $_.Location -Plan $_.Plan
21+
22+
$actual = Get-AzAutomationAccount -ResourceGroupName $rgName -Name $_.Name
23+
Assert-NotNull $actual
24+
Assert-AreEqual $rgName $actual.ResourceGroupName
25+
Assert-AreEqual $_.Name $actual.AutomationAccountName
26+
Assert-AreEqual $_.Location $actual.Location
27+
#Assert-AreEqual $_.Plan $actual.Plan
28+
Assert-AreEqual "Ok" $actual.State
29+
}
30+
}
31+
32+
Invoke-LiveTestScenario -Name "Update automation account" -Description "Test updating an existing automation account" -ScenarioScript `
33+
{
34+
param ($rg)
35+
36+
$rgName = $rg.ResourceGroupName
37+
$accName = New-LiveTestResourceName
38+
$accLocation = "centralus"
39+
40+
New-AzAutomationAccount -ResourceGroupName $rgName -Name $accName -Location $accLocation
41+
Set-AzAutomationAccount -ResourceGroupName $rgName -Name $accName -AssignSystemIdentity -DisablePublicNetworkAccess -Tags @{ "key" = "val" }
42+
43+
$actual = Get-AzAutomationAccount -ResourceGroupName $rgName -Name $accName
44+
Assert-NotNull $actual
45+
Assert-AreEqual $rgName $actual.ResourceGroupName
46+
Assert-AreEqual $accName $actual.AutomationAccountName
47+
Assert-AreEqual $accLocation $actual.Location
48+
Assert-AreEqual "Ok" $actual.State
49+
}
50+
51+
Invoke-LiveTestScenario -Name "Remove automation account" -Description "Test removing an automation account" -ScenarioScript `
52+
{
53+
param ($rg)
54+
55+
$rgName = $rg.ResourceGroupName
56+
$accName = New-LiveTestResourceName
57+
$accLocation = "eastus"
58+
59+
New-AzAutomationAccount -ResourceGroupName $rgName -Name $accName -Location $accLocation
60+
Remove-AzAutomationAccount -ResourceGroupName $rgName -Name $accName -Force
61+
62+
$actual = Get-AzAutomationAccount -ResourceGroupName $rgName -Name $accName -ErrorAction SilentlyContinue
63+
Assert-Null $actual
64+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
Invoke-LiveTestScenario -Name "Create access connector for databricks" -Description "Test creating access connector for data bricks" -ResourceGroupLocation "eastus" -ScenarioScript `
2+
{
3+
param ($rg)
4+
5+
$rgName = $rg.ResourceGroupName
6+
$connName = New-LiveTestResourceName
7+
$location = "eastus"
8+
9+
New-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName -Location $location
10+
11+
$actual = Get-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName
12+
Assert-NotNull $actual
13+
Assert-AreEqual $rgName $actual.ResourceGroupName
14+
Assert-AreEqual $connName $actual.Name
15+
Assert-AreEqual $location $actual.Location
16+
Assert-AreEqual "Succeeded" $actual.ProvisioningState
17+
}
18+
19+
Invoke-LiveTestScenario -Name "Update access connector for databricks" -Description "Test updating an existing access connector for data bricks" -ResourceGroupLocation "eastus" -ScenarioScript `
20+
{
21+
param ($rg)
22+
23+
$rgName = $rg.ResourceGroupName
24+
$connName = New-LiveTestResourceName
25+
$location = "eastus"
26+
27+
$connector = New-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName -Location $location
28+
$connector | Update-AzDatabricksAccessConnector -Tag @{ "key" = "value" }
29+
30+
$actual = Get-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName
31+
Assert-NotNull $actual
32+
Assert-AreEqual $rgName $actual.ResourceGroupName
33+
Assert-AreEqual $connName $actual.Name
34+
Assert-AreEqual $location $actual.Location
35+
Assert-AreEqual "Succeeded" $actual.ProvisioningState
36+
Assert-AreEqual 1 $actual.Tag.Count
37+
}
38+
39+
Invoke-LiveTestScenario -Name "Remove access connector for data bricks" -Description "Test removing access connector for data bricks" -ResourceGroupLocation "eastus" -ScenarioScript `
40+
{
41+
param ($rg)
42+
43+
$rgName = $rg.ResourceGroupName
44+
$connName = New-LiveTestResourceName
45+
$location = "eastus"
46+
47+
New-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName -Location $location
48+
Remove-AzDatabricksAccessConnector -ResourceGroupName $rgName -name $connName
49+
50+
$actual = Get-AzDatabricksAccessConnector -ResourceGroupName $rgName -Name $connName -ErrorAction SilentlyContinue
51+
Assert-Null $actual
52+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
Invoke-LiveTestScenario -Name "Create function app" -Description "Test creating function app" -ScenarioScript `
2+
{
3+
param ($rg)
4+
5+
$rgName = $rg.ResourceGroupName
6+
$saName = New-LiveTestStorageAccountName
7+
$funcAppName = New-LiveTestResourceName
8+
$location = "westus"
9+
10+
New-AzStorageAccount -ResourceGroupName $rgName -Name $saName -Location $location -SkuName Standard_LRS
11+
New-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Location $location -FunctionsVersion 4 -StorageAccountName $saName -OSType Windows -Runtime PowerShell -RuntimeVersion 7.2
12+
13+
$actual = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName
14+
Assert-NotNull $actual
15+
Assert-AreEqual $rgName $actual.ResourceGroupName
16+
Assert-AreEqual $funcAppName $actual.Name
17+
Assert-AreEqual "Running" $actual.State
18+
Assert-AreEqual "Windows" $actual.OSType
19+
Assert-AreEqual "PowerShell" $actual.Runtime
20+
}
21+
22+
Invoke-LiveTestScenario -Name "Update function app" -Description "Test updating an existing function app" -ScenarioScript `
23+
{
24+
param ($rg)
25+
26+
$rgName = $rg.ResourceGroupName
27+
$saName = New-LiveTestStorageAccountName
28+
$funcAppName = New-LiveTestResourceName
29+
$location = "eastus"
30+
31+
New-AzStorageAccount -ResourceGroupName $rgName -Name $saName -Location $location -SkuName Standard_LRS
32+
$funcApp = New-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Location $location -FunctionsVersion 4 -StorageAccountName $saName -OSType Windows -Runtime PowerShell -RuntimeVersion 7.2
33+
$funcApp | Update-AzFunctionApp -Tag @{ "key" = "value" } -Force
34+
Update-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -IdentityType SystemAssigned -Force
35+
36+
$actual = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName
37+
Assert-NotNull $actual
38+
Assert-AreEqual $rgName $actual.ResourceGroupName
39+
Assert-AreEqual $funcAppName $actual.Name
40+
Assert-AreEqual "Running" $actual.State
41+
Assert-AreEqual "SystemAssigned" $actual.IdentityType
42+
Assert-AreEqual 1 $actual.Tag.Count
43+
}
44+
45+
Invoke-LiveTestScenario -Name "Remove function app" -Description "Test removing function app" -ScenarioScript `
46+
{
47+
param ($rg)
48+
49+
$rgName = $rg.ResourceGroupName
50+
$saName = New-LiveTestStorageAccountName
51+
$funcAppName = New-LiveTestResourceName
52+
$location = "centralus"
53+
54+
New-AzStorageAccount -ResourceGroupName $rgName -Name $saName -Location $location -SkuName Standard_LRS
55+
New-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Location $location -FunctionsVersion 4 -StorageAccountName $saName -OSType Windows -Runtime PowerShell -RuntimeVersion 7.2
56+
Remove-AzFunctionApp -ResourceGroupName $rgName -name $funcAppName -Force
57+
58+
$actual = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -ErrorAction SilentlyContinue
59+
Assert-Null $actual
60+
}
61+
62+
Invoke-LiveTestScenario -Name "Operate function app" -Description "Test operating function app by starting, stopping and restarting it" -ResourceGroupLocation "eastus" -ScenarioScript `
63+
{
64+
param ($rg)
65+
66+
$rgName = $rg.ResourceGroupName
67+
$saName = New-LiveTestStorageAccountName
68+
$funcAppName = New-LiveTestResourceName
69+
$location = "eastus"
70+
71+
New-AzStorageAccount -ResourceGroupName $rgName -Name $saName -Location $location -SkuName Standard_LRS
72+
New-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Location $location -FunctionsVersion 4 -StorageAccountName $saName -OSType Windows -Runtime PowerShell -RuntimeVersion 7.2
73+
74+
Stop-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Force
75+
$app = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName
76+
Assert-NotNull $app
77+
Assert-AreEqual "Stopped" $app.State
78+
79+
$app | Start-AzFunctionApp
80+
$app = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName
81+
Assert-NotNull $app
82+
Assert-AreEqual "Running" $app.State
83+
84+
Restart-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName -Force
85+
$app = Get-AzFunctionApp -ResourceGroupName $rgName -Name $funcAppName
86+
Assert-NotNull $app
87+
Assert-AreEqual "Running" $app.State
88+
}

tools/TestFx/Live/LiveTestUtility.psm1

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,13 @@ function Invoke-LiveTestScenario {
275275

276276
do {
277277
try {
278-
$ScenarioScript.InvokeWithContext($null, @([psvariable]::new("ErrorActionPreference", "Stop"), [psvariable]::new("ConfirmPreference", "None")), $snrResourceGroup)
278+
if ($snrRetryCount -eq $script:ScenarioMaxRetryCount) {
279+
$ScenarioScript.InvokeWithContext($null, @([psvariable]::new("ErrorActionPreference", "Stop"), [psvariable]::new("ConfirmPreference", "None"), [psvariable]::new("DebugPreference", "Continue")), $snrResourceGroup)
280+
}
281+
else {
282+
$ScenarioScript.InvokeWithContext($null, @([psvariable]::new("ErrorActionPreference", "Stop"), [psvariable]::new("ConfirmPreference", "None")), $snrResourceGroup)
283+
}
284+
279285
Write-Host "##[section]Successfully executed the live scenario `"$Name`"." -ForegroundColor Green
280286
break
281287
}
@@ -285,6 +291,19 @@ function Invoke-LiveTestScenario {
285291
$snrErrorDetails = $snrErrorMessage
286292

287293
$snrInvocationInfo = $snrErrorRecord.InvocationInfo
294+
295+
Write-Host "##[error]Error Object:" -ForegroundColor Red
296+
$_ | Format-List * -Force
297+
298+
Write-Host "##[error]Exception Object:" -ForegroundColor Red
299+
$_.Exception.InnerException | Format-List * -Force
300+
301+
Write-Host "##[error]Error Record:" -ForegroundColor Red
302+
$snrErrorRecord | Format-List * -Force
303+
304+
Write-Host "##[error]Invocation Info:" -ForegroundColor Red
305+
$snrInvocationInfo | Format-List * -Force
306+
288307
if ($null -ne $snrInvocationInfo) {
289308
$snrScriptName = Split-Path -Path $snrInvocationInfo.ScriptName -Leaf -ErrorAction SilentlyContinue
290309
if ($snrScriptName -eq "Assert.ps1") {

0 commit comments

Comments
 (0)