Commit 500ee16a authored by Ivan Trubach's avatar Ivan Trubach
Browse files

pulumiPackages.pulumi-python: add smoke test

parent 893eed25
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
{
  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";
+2 −0
Original line number Diff line number Diff line
name: smoke-test
runtime: python
+18 −0
Original line number Diff line number Diff line
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)
+37 −0
Original line number Diff line number Diff line
{
  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
  '';
}