Yet another Artifacts question - when is a download triggered?

My Artifacts.toml file contains

[TestData]
git-tree-sha1 = "9d575764bc1c1a7860c34c5b153251e5f2ee6704"
lazy = true

    [[TestData.download]]
    sha256 = "7fcd1e390c59530e9ea00939afd1798813e3727b"
    url = "https://ndownloader.figshare.com/files/21085968"

I can probably find this out by experimenting or, when all else fails, read the code, but does a call to

julia> test_data_hash = artifact_hash("TestData", test_artifacts_toml)

trigger the download of the artifact if it does not currently exist?

Also, how would I go about using the @artifact_str facility? I can’t get it to work because I can’t figure out how to tell it where the Artifacts.toml file is.

julia> artifact"TestData"
ERROR: LoadError: Cannot locate '(Julia)Artifacts.toml' file when attempting to use artifact 'TestData' in 'Main'
Stacktrace:
 [1] @artifact_str(::LineNumberNode, ::Module, ::Any) at /home/bates/src/julia-1.3.1/share/julia/stdlib/v1.3/Pkg/src/Artifacts.jl:1001
in expression starting at none:1

My goal is to have a test/Artifacts.toml to load the data that I use for testing the package. It is not needed for the package itself to function so I would like to isolate it in the test directory.

To answer a couple of my own questions, it appears that the artifact string macro is intended to be used in the code for the Project (package) and looks first in the top-level Project directory for Artifacts.toml. So I don’t think it will work to have the test data only loaded for the tests unless I do all the steps of determining the artifact hash, etc by hand.