pulumiPackages.pulumi-python: add smoke test

This commit is contained in:
Ivan Trubach
2025-03-25 18:41:12 +03:00
parent 893eed259e
commit 500ee16a0d
4 changed files with 60 additions and 0 deletions
@@ -1,6 +1,7 @@
{
lib,
buildGoModule,
callPackage,
pulumi,
bash,
python3,
@@ -45,6 +46,8 @@ buildGoModule rec {
../../dist/pulumi-analyzer-policy-python
'';
passthru.tests.smokeTest = callPackage ./smoke-test/default.nix { };
meta = {
homepage = "https://www.pulumi.com/docs/iac/languages-sdks/python/";
description = "Language host for Pulumi programs written in Python";
@@ -0,0 +1,2 @@
name: smoke-test
runtime: python
@@ -0,0 +1,18 @@
from binascii import b2a_hex
from os import urandom
from pulumi import export, ResourceOptions
from pulumi.dynamic import Resource, ResourceProvider, CreateResult
class RandomProvider(ResourceProvider):
def create(self, inputs):
return CreateResult(b2a_hex(urandom(16)), outs={})
class Random(Resource):
def __init__(self, name, opts = None):
super().__init__(RandomProvider(), name, {}, opts)
export("out", Random(name="random_test").id)
@@ -0,0 +1,37 @@
{
lib,
stdenvNoCC,
pulumiTestHook,
pulumi,
pulumi-python,
python3Packages,
}:
stdenvNoCC.mkDerivation {
name = "pulumi-python-smoke-test";
src = builtins.filterSource (name: _: !(lib.hasSuffix ".nix" name)) ./.;
doCheck = true;
nativeCheckInputs = [
pulumiTestHook
pulumi
pulumi-python
python3Packages.pulumi
];
__darwinAllowLocalNetworking = true;
checkPhase = ''
runHook preCheck
pulumi update --skip-preview
stackOutput=$(pulumi stack output out)
[[ $stackOutput =~ ^[0-9a-f]{32}$ ]]
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir -p "$out"
runHook postInstall
'';
}