github.com/mcuadros/ascode@v1.3.1/starlark/types/testdata/provider.star (about)

     1  load("assert.star", "assert")
     2  
     3  p = tf.provider("aws", "2.13.0")
     4  assert.eq(p.__kind__, "provider")
     5  assert.eq(p.__type__, "aws")
     6  assert.eq(p.__name__, "id_1")
     7  assert.eq(p.__version__, "2.13.0")
     8  
     9  # attr names
    10  assert.eq("__provider__" in dir(p), False)
    11  assert.eq("depends_on" in dir(p), False)
    12  assert.eq("add_provisioner" in dir(p), False)
    13  assert.eq("__version__" in dir(p), True)
    14  assert.eq("data" in dir(p), True)
    15  assert.eq("resource" in dir(p), True)
    16  
    17  # attr
    18  assert.eq(len(dir(p.data)), 133)
    19  assert.eq(len(dir(p.resource)), 508)
    20  
    21  resources = dir(p.resource)
    22  assert.contains(resources, "instance")
    23  
    24  # types
    25  assert.eq(type(p), "Provider")
    26  assert.eq(type(p.resource), "ResourceCollectionGroup<resource>")
    27  assert.eq(type(p.resource.instance), "ResourceCollection<resource>")
    28  assert.eq(type(p.resource.instance()), "Resource<resource>")
    29  assert.eq(type(p.data.ami().filter()), "Resource<nested>")
    30  
    31  # string
    32  assert.eq(str(p), "Provider<aws>")
    33  assert.eq(str(p.resource), "ResourceCollectionGroup<aws.resource>")
    34  assert.eq(str(p.resource.instance), "ResourceCollection<aws.resource.aws_instance>")
    35  assert.eq(str(p.resource.instance()), "Resource<aws.resource.aws_instance>")
    36  assert.eq(str(p.data.ami().filter()), "Resource<aws.data.aws_ami.filter>")
    37  
    38  
    39  assert.eq(len(p.resource.instance), 2)
    40  
    41  p.region = "us-west-2"
    42  assert.eq(p.region, "us-west-2")
    43  
    44  alias = tf.provider("aws", "2.13.0", "alias")
    45  assert.eq(alias.__name__, "alias")
    46  assert.eq(alias.__version__, "2.13.0")
    47  
    48  kwargs = tf.provider("aws", region="foo")
    49  assert.eq(kwargs.region, "foo")
    50  
    51  # ResourceCollectionGroup
    52  assert.eq("__kind__" in dir(p.resource), True)
    53  assert.eq(p.resource.__kind__, "resource")
    54  assert.eq("__provider__" in dir(p.resource), True)
    55  assert.eq(p.resource.__provider__, p)
    56  
    57  # compare
    58  assert.ne(p, kwargs)
    59  assert.ne(p, kwargs)
    60  
    61  foo = p.resource.instance("foo", ami="valueA")
    62  bar = p.resource.instance("bar", ami="valueA", disable_api_termination=False)
    63  qux = p.resource.instance("qux", ami="valueB", disable_api_termination=True)
    64  
    65  result = p.resource.instance.search("id", "foo")
    66  assert.eq(len(result), 1)
    67  assert.eq(result[0], foo)
    68  
    69  assert.eq(len(p.resource.instance.search("ami", "valueA")), 2)
    70  assert.eq(len(p.resource.instance.search("disable_api_termination", True)), 1)
    71  assert.eq(len(p.resource.instance.search("disable_api_termination", False)), 1)
    72  
    73  assert.eq(p.resource.instance.search("foo")[0], foo)
    74