def METHOD_NAME(self, classif):
    flow = self.extension.model_to_flow(classif)
    flow.name = "TEST%s%s" % (get_sentinel(), flow.name)
    flow.publish()
    TestBase._mark_entity_for_removal("flow", (flow.flow_id, flow.name))
    TestBase.logger.info("collected from {}: {}".format(__file__.split("/")[-1], flow.flow_id))
    # although the flow exists, we can be sure there are no
    # setups (yet) as it hasn't been ran
    setup_id = openml.setups.setup_exists(flow)
    self.assertFalse(setup_id)
    setup_id = openml.setups.setup_exists(flow)
    self.assertFalse(setup_id)
    # now run the flow on an easy task:
    task = openml.tasks.get_task(115)  # diabetes; crossvalidation
    run = openml.runs.run_flow_on_task(flow, task)
    # spoof flow id, otherwise the sentinel is ignored
    run.flow_id = flow.flow_id
    run.publish()
    TestBase._mark_entity_for_removal("run", run.run_id)
    TestBase.logger.info("collected from {}: {}".format(__file__.split("/")[-1], run.run_id))
    # download the run, as it contains the right setup id
    run = openml.runs.get_run(run.run_id)
    # execute the function we are interested in
    setup_id = openml.setups.setup_exists(flow)
    self.assertEqual(setup_id, run.setup_id)