def METHOD_NAME(self):
    runner = ThreadRunner()
    log = []
    pipeline = modular_pipeline(
        [
            node(source, None, "first"),
            node(identity, "first", "second"),
            node(sink, "second", None),
        ]
    )
    catalog = DataCatalog(
        {
            "first": LoggingDataset(log, "first"),
            "second": LoggingDataset(log, "second"),
        }
    )
    runner.run(pipeline, catalog)
    # we want to see "release first" before "load second"
    assert list(log) == [
        ("load", "first"),
        ("release", "first"),
        ("load", "second"),
        ("release", "second"),
    ]