From 500ee16a0df86c280d019d1d695296aa505041d4 Mon Sep 17 00:00:00 2001 From: Ivan Trubach Date: Wed, 19 Feb 2025 18:55:09 +0300 Subject: [PATCH] pulumiPackages.pulumi-python: add smoke test --- .../pulumi/plugins/pulumi-python/package.nix | 3 ++ .../pulumi-python/smoke-test/Pulumi.yaml | 2 + .../pulumi-python/smoke-test/__main__.py | 18 +++++++++ .../pulumi-python/smoke-test/default.nix | 37 +++++++++++++++++++ 4 files changed, 60 insertions(+) create mode 100644 pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml create mode 100644 pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/__main__.py create mode 100644 pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/default.nix diff --git a/pkgs/by-name/pu/pulumi/plugins/pulumi-python/package.nix b/pkgs/by-name/pu/pulumi/plugins/pulumi-python/package.nix index 3d9a76c58681..74ff53ad2b08 100644 --- a/pkgs/by-name/pu/pulumi/plugins/pulumi-python/package.nix +++ b/pkgs/by-name/pu/pulumi/plugins/pulumi-python/package.nix @@ -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"; diff --git a/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml b/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml new file mode 100644 index 000000000000..94072ba5e3aa --- /dev/null +++ b/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/Pulumi.yaml @@ -0,0 +1,2 @@ +name: smoke-test +runtime: python diff --git a/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/__main__.py b/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/__main__.py new file mode 100644 index 000000000000..43b7d1a8e895 --- /dev/null +++ b/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/__main__.py @@ -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) diff --git a/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/default.nix b/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/default.nix new file mode 100644 index 000000000000..903461878342 --- /dev/null +++ b/pkgs/by-name/pu/pulumi/plugins/pulumi-python/smoke-test/default.nix @@ -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 + ''; +}