an example group is a class in which the block passed to
describe is evaluated
The blocks passed to it are evaluated in the
context of an instance of that class
nested groups using the describe or context
methods
can declare example groups using either describe or context
can declare examples within a group using any of it, specify, or
example
Declare a shared example group using shared_examples, and then include it
in any group using include_examples.
Nearly anything that can be declared within an example group can be declared
within a shared example group.
shared_context and include_context.
When a class is passed to describe, you can access it from an example
using the described_class method
rspec-core stores a metadata hash with every example and group
Example groups are defined by a describe or
context block, which is eagerly evaluated when the spec file is
loaded
Examples -- typically defined by an it block -- and any other
blocks with per-example semantics -- such as a before(:example) hook -- are
evaluated in the context of
an instance of the example group class to which the example belongs.
Examples are not executed when the spec file is loaded
run any examples until all spec files have been loaded
the overriding
effect is compounded, with later blocks taking precedence over earlier blocks.
Terraform has special handling of any configuration
file whose name ends in _override.tf or _override.tf.json. This special
handling also applies to a file named literally override.tf or
override.tf.json.Terraform initially skips these override files when loading configuration,
and then afterwards processes each one in turn (in lexicographical order).
If the original block defines a default value and an override block changes
the variable's type, Terraform attempts to convert the default value to
the overridden type, producing an error if this conversion is not possible.
each.value — The map value corresponding to this instance. (If a set was
provided, this is the same as each.key.)
for_each keys cannot be the result (or rely on the result of) of impure functions,
including uuid, bcrypt, or timestamp, as their evaluation is deferred during the
main evaluation step.
The value used in for_each is used
to identify the resource instance and will always be disclosed in UI output,
which is why sensitive values are not allowed.
if you would like to call keys(local.map), where
local.map is an object with sensitive values (but non-sensitive keys), you can create a
value to pass to for_each with toset([for k,v in local.map : k]).
for_each
can't refer to any resource attributes that aren't known until after a
configuration is applied (such as a unique ID generated by the remote API when
an object is created).
he for_each argument
does not implicitly convert lists or tuples to sets.
Transform a multi-level nested structure into a flat list by
using nested for expressions with the flatten function.
Instances are
identified by a map key (or set member) from the value provided to for_each
Within nested provisioner or connection blocks, the special
self object refers to the current resource instance, not the resource block
as a whole.
Conversion from list to set discards the ordering of the items in the list and
removes any duplicate elements.