class AbstractStudyTestCase(object): def __init__(self): self.study = None self.analysis_type = None self.studyname = None self.output_directory = None self.subjectnames = None self.groupnames = None self.filenames = None def create_study(self): self.study = Study(analysis_type=self.analysis_type, study_name=self.studyname, output_directory=self.output_directory) return self.study def add_subjects(self): for subjectname, groupname, filename in zip(self.subjectnames, self.groupnames, self.filenames): subject = Subject(subjectname, groupname, filename) self.study.add_subject(subject) def delete_some_input_files(self): raise NotImplementedError("AbstractStudyTestCase is an abstract class") def create_some_output_files(self): raise NotImplementedError("AbstractStudyTestCase is an abstract class") def restore_input_files(self): raise NotImplementedError("AbstractStudyTestCase is an abstract class") def step_to_wait_testcase_1(self): raise NotImplementedError("AbstractStudyTestCase is an abstract class") def step_to_wait_testcase_2(self): raise NotImplementedError("AbstractStudyTestCase is an abstract class") def step_to_wait_testcase_3(self): raise NotImplementedError("AbstractStudyTestCase is an abstract class") def get_a_subject_id(self): first_subject_id = next(six.iterkeys(self.study.subjects)) return first_subject_id