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