TEST(TestScriptFetcher, HandleParentArgument) {
    TemporaryDir tmp_dir;
    TemporaryFile cmdFile(tmp_dir.createFile());
    cmdFile.writeString(
        "#!/bin/sh\n"
        "echo $1:foo\n"
    );
    PCHECK(chmod(cmdFile.getFilename().c_str(), 0700) == 0);

    Config config(dynamic::object
                  ("resources", dynamic::object)
                  ("nodes", dynamic::object
                   ("levels", {"level1", "level2"})
    ("node_sources", {
        dynamic::object
        ("source", "manual")
        ("prefs", dynamic::object
        ("node1", {})
        ("node2", {})
        )
        ,
        dynamic::object
        ("source", "script")
        ("prefs", dynamic::object
        ("parent_level", "level1")
        ("script", cmdFile.getFilename().native())
        )
    }
                   )
                  )
                 );
    Nodes nodes;
    NodesLoader::_fetchNodesImpl(config, &nodes);

    ASSERT_EQ(5, nodes.size());
    auto n1 = nodes.getNodeVerySlow("node1:foo");
    ASSERT_EQ(2, n1->level());
    ASSERT_EQ("node1", n1->parent()->name());
    auto n2 = nodes.getNodeVerySlow("node2:foo");
    ASSERT_EQ(2, n2->level());
    ASSERT_EQ("node2", n2->parent()->name());
}