def METHOD_NAME(self, pattern):
    self.init_thread_pool()
    prefix = os.path.join(data_dir, pattern)
    filename = f'{prefix}.xml'
    with open(filename) as fp:
        xml = etree.parse(fp).getroot()
    # This "serializer" is a parser; it doesn't deserialize.
    # Because we use it to load all the workflows, consider it tested here.
    serializer = PrettyXmlSerializer()
    self.spec = WorkflowSpec.deserialize(serializer, xml, filename=filename)
    path_file = f'{prefix}.path'
    if os.path.exists(path_file):
        with open(path_file) as fp:
            self.expected_path = fp.read()
    else:
        self.expected_path = None
    data_file = f'{prefix}.data'
    if os.path.exists(data_file):
        with open(data_file) as fp:
            self.expected_data = fp.read()
    else:
        self.expected_data = None
    self.taken_path = track_workflow(self.spec)
    self.workflow = Workflow(self.spec)