mirror of
https://github.com/actions/python-versions.git
synced 2025-04-05 06:49:39 +00:00
mplement script to build and prepare packages for Python
This commit is contained in:
72
tests/python-tests.ps1
Normal file
72
tests/python-tests.ps1
Normal file
@ -0,0 +1,72 @@
|
||||
param (
|
||||
[Version] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
|
||||
$Version,
|
||||
[String] [Parameter (Mandatory = $true)] [ValidateNotNullOrEmpty()]
|
||||
$Platform
|
||||
)
|
||||
|
||||
Import-Module (Join-Path $PSScriptRoot "../helpers/pester-extensions.psm1")
|
||||
Import-Module (Join-Path $PSScriptRoot "../helpers/common-helpers.psm1")
|
||||
|
||||
function Analyze-MissingModules([string] $buildOutputLocation) {
|
||||
$searchStringStart = "Failed to build these modules:"
|
||||
$searchStringEnd = "running build_scripts"
|
||||
$pattern = "$searchStringStart(.*?)$searchStringEnd"
|
||||
|
||||
$buildContent = Get-Content -Path $buildOutputLocation
|
||||
$splitBuiltOutput = $buildContent -split "\n";
|
||||
|
||||
### Search for missing modules that are displayed between the search strings
|
||||
$regexMatch = [regex]::match($SplitBuiltOutput, $Pattern)
|
||||
if ($regexMatch.Success)
|
||||
{
|
||||
Write-Host "Failed missing modules:"
|
||||
Write-Host $regexMatch.Groups[1].Value
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
Describe "Tests" {
|
||||
It "Python version" {
|
||||
"python --version" | Should -ReturnZeroExitCode
|
||||
$pythonLocation = (Get-Command "python").Path
|
||||
$pythonLocation | Should -Not -BeNullOrEmpty
|
||||
$expectedPath = Join-Path -Path $env:AGENT_TOOLSDIRECTORY -ChildPath "Python"
|
||||
$pythonLocation.startsWith($expectedPath) | Should -BeTrue
|
||||
}
|
||||
|
||||
It "Run simple code" {
|
||||
"python ./sources/simple-test.py" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
if (IsNixPlatform $Platform) {
|
||||
|
||||
It "Check for failed modules in build_output" {
|
||||
$buildOutputLocation = Join-Path $env:BUILD_BINARIESDIRECTORY "build_output.txt"
|
||||
Analyze-MissingModules $buildOutputLocation | Should -Be 0
|
||||
}
|
||||
|
||||
It "Check if all required python modules are installed" {
|
||||
"python ./sources/python-modules.py" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "Check if python configuration is correct" {
|
||||
"python ./sources/python-config-test.py" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "Check if shared libraries are linked correctly" {
|
||||
"bash ./sources/psutil-install-test.sh" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
# Pyinstaller 3.5 does not support Python 3.8.0. Check issue https://github.com/pyinstaller/pyinstaller/issues/4311
|
||||
if ($Version -lt "3.8.0") {
|
||||
It "Validate Pyinstaller" {
|
||||
"pip install pyinstaller" | Should -ReturnZeroExitCode
|
||||
"pyinstaller --onefile ./sources/simple-test.py" | Should -ReturnZeroExitCode
|
||||
"./dist/simple-test" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user