def test_create_challenge_dir(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() cyear = os.path.join(temp_dir, '2016') cweek = os.path.join(cyear, 'dataset.week.5') os.mkdir(cyear) os.mkdir(cweek) task = ChallengeDataTask(cweek, params) task.create_dir() cdir = os.path.join(task.get_dir(), task.get_celpp_challenge_data_dir_name()) task._create_challenge_dir() self.assertEqual(os.path.isdir(cdir), True) task._create_challenge_dir() self.assertEqual(os.path.isdir(cdir), True) finally: shutil.rmtree(temp_dir)
def test_copy_over_tsv_files(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() dimport = DataImportTask(temp_dir, params) dimport.create_dir() ctsv = dimport.get_crystalph_tsv() f = open(ctsv, 'w') f.write('crystal') f.flush() f.close() nonpoly = dimport.get_nonpolymer_tsv() f = open(nonpoly, 'w') f.write('nonpoly') f.flush() f.close() seq = dimport.get_sequence_tsv() f = open(seq, 'w') f.write('seq') f.flush() f.close() task = ChallengeDataTask(temp_dir, params) task.create_dir() challenge_dir = task._create_challenge_dir() self.assertEqual(os.path.isdir(challenge_dir), True) task._copy_over_tsv_files(challenge_dir) cop_ctsv = os.path.join(challenge_dir, DataImportTask.CRYSTALPH_TSV) self.assertEqual(os.path.isfile(cop_ctsv), True) f = open(cop_ctsv) self.assertEqual(f.readline(), 'crystal') f.close() cop_nonpoly = os.path.join(challenge_dir, DataImportTask.NONPOLYMER_TSV) self.assertEqual(os.path.isfile(cop_nonpoly), True) f = open(cop_nonpoly) self.assertEqual(f.readline(), 'nonpoly') f.close() cop_seq = os.path.join(challenge_dir, DataImportTask.SEQUENCE_TSV) self.assertEqual(os.path.isfile(cop_seq), True) f = open(cop_seq) self.assertEqual(f.readline(), 'seq') f.close() finally: shutil.rmtree(temp_dir)
def test_copy_over_tsv_files_no_dataimport(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() task = ChallengeDataTask(temp_dir, params) task.create_dir() challenge_dir = task._create_challenge_dir() self.assertEqual(os.path.isdir(challenge_dir), True) task._copy_over_tsv_files(challenge_dir) finally: shutil.rmtree(temp_dir)
def test_create_challenge_dir_unable_to_make_dir(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() cyear = os.path.join(temp_dir, '2016') cweek = os.path.join(cyear, 'dataset.week.5') os.mkdir(cyear) os.mkdir(cweek) task = ChallengeDataTask(cweek, params) task.create_dir() cdir = os.path.join(task.get_dir(), task.get_celpp_challenge_data_dir_name()) open(cdir, 'a').close() try: task._create_challenge_dir() self.fail('Expected OSError') except OSError: pass finally: shutil.rmtree(temp_dir)
def test_tar_challenge_dir(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() dimport = DataImportTask(temp_dir, params) dimport.create_dir() open(dimport.get_sequence_tsv(), 'a').close() open(dimport.get_nonpolymer_tsv(), 'a').close() open(dimport.get_crystalph_tsv(), 'a').close() task = ChallengeDataTask(temp_dir, params) task.create_dir() chall_dir = task._create_challenge_dir() final_log = os.path.join(chall_dir, 'final.log') open(final_log, 'a').close() task._create_readme(chall_dir) task._copy_over_tsv_files(chall_dir) # make a fake candidate file_list = self.make_fake_candidate_dir(chall_dir, '5hib', '2eb2', 'CSX') self.assertEqual(os.path.isdir(chall_dir), True) name = task.get_celpp_challenge_data_dir_name() tfile = task._tar_challenge_dir(name) self.assertEqual(os.path.isfile(tfile), True) foodir = os.path.join(temp_dir, 'foo') tar = tarfile.open(tfile, 'r:*') tar.extractall(path=foodir) tar.close() cdir = os.path.join(foodir, name) readme = os.path.join(cdir, ChallengeDataTask.README_TXT_FILE) self.assertEqual(os.path.isfile(readme), True) final_log = os.path.join(foodir, 'final.log') self.assertEqual(os.path.isfile(final_log), False) for fname in file_list: chk = os.path.join(cdir, fname) self.assertEqual(os.path.isfile(chk), True, chk) finally: shutil.rmtree(temp_dir)
def test_tar_challenge_dir_nothing_but_readme(self): temp_dir = tempfile.mkdtemp() try: params = D3RParameters() task = ChallengeDataTask(temp_dir, params) task.create_dir() chall_dir = task._create_challenge_dir() task._create_readme(chall_dir) self.assertEqual(os.path.isdir(chall_dir), True) name = task.get_celpp_challenge_data_dir_name() tfile = task._tar_challenge_dir(name) self.assertEqual(os.path.isfile(tfile), True) foodir = os.path.join(temp_dir, 'foo') tar = tarfile.open(tfile, 'r:*') tar.extractall(path=foodir) tar.close() cdir = os.path.join(foodir, name) readme = os.path.join(cdir, ChallengeDataTask.README_TXT_FILE) self.assertEqual(os.path.isfile(readme), True) finally: shutil.rmtree(temp_dir)