def post(self): numentries = int(self.get_argument("numrecords")) if numentries < 0: numentries = 100 logentries = LogEntry.newest_records(numentries) self.render("error_log.html", logentries=logentries, user=self.current_user)
def post(self): self.check_access() numentries = int(self.get_argument("numrecords")) if numentries <= 0: numentries = 100 logentries = LogEntry.newest_records(numentries) self.render("error_log.html", logentries=logentries)
def post(self): numentries = int(self.get_argument("numrecords")) if numentries < 0: numentries = 100 logentries = LogEntry.newest_records(numentries) self.render("error_log.html", logentries=logentries, user=self.current_user)
def test_artifact_status_put_req_private(self): obs = artifact_status_put_req(1, '*****@*****.**', 'private') exp = { 'status': 'success', 'message': 'Artifact visibility changed to private' } self.assertEqual(obs, exp) # testing that the log message is generated self.assertEqual( LogEntry.newest_records(1)[0].msg, '[email protected] changed artifact 1 (study 1) to private')
def test_complete_job(self): # Complete success pt = npt.assert_warns(QiitaDBWarning, PrepTemplate.create, pd.DataFrame({'new_col': { '1.SKD6.640190': 1 }}), Study(1), '16S') c_job = ProcessingJob.create( User('*****@*****.**'), Parameters.load(Command.get_validator('BIOM'), values_dict={ 'template': pt.id, 'files': dumps({'BIOM': ['file']}), 'artifact_type': 'BIOM' }), True) c_job._set_status('running') fd, fp = mkstemp(suffix='_table.biom') close(fd) with open(fp, 'w') as f: f.write('\n') self._clean_up_files.append(fp) exp_artifact_count = get_count('qiita.artifact') + 1 payload = dumps({ 'success': True, 'error': '', 'artifacts': { 'OTU table': { 'filepaths': [(fp, 'biom')], 'artifact_type': 'BIOM' } } }) job = self._create_job('complete_job', { 'job_id': c_job.id, 'payload': payload }) private_task(job.id) self.assertEqual(job.status, 'success') self.assertEqual(c_job.status, 'success') self.assertEqual(get_count('qiita.artifact'), exp_artifact_count) # Complete job error payload = dumps({'success': False, 'error': 'Job failure'}) job = self._create_job('complete_job', { 'job_id': 'bcc7ebcd-39c1-43e4-af2d-822e3589f14d', 'payload': payload }) private_task(job.id) self.assertEqual(job.status, 'success') c_job = ProcessingJob('bcc7ebcd-39c1-43e4-af2d-822e3589f14d') self.assertEqual(c_job.status, 'error') self.assertEqual(c_job.log, LogEntry.newest_records(numrecords=1)[0]) self.assertEqual(c_job.log.msg, 'Job failure') # Complete internal error pt = npt.assert_warns(QiitaDBWarning, PrepTemplate.create, pd.DataFrame({'new_col': { '1.SKD6.640190': 1 }}), Study(1), '16S') c_job = ProcessingJob.create( User('*****@*****.**'), Parameters.load(Command.get_validator('BIOM'), values_dict={ 'template': pt.id, 'files': dumps({'BIOM': ['file']}), 'artifact_type': 'BIOM' }), True) c_job._set_status('running') fp = '/surprised/if/this/path/exists.biom' payload = dumps({ 'success': True, 'error': '', 'artifacts': { 'OTU table': { 'filepaths': [(fp, 'biom')], 'artifact_type': 'BIOM' } } }) job = self._create_job('complete_job', { 'job_id': c_job.id, 'payload': payload }) private_task(job.id) self.assertEqual(job.status, 'success') self.assertEqual(c_job.status, 'error') self.assertIn('No such file or directory', c_job.log.msg)
def get(self): self.check_access() logentries = LogEntry.newest_records() self.render("error_log.html", logentries=logentries)
def test_complete_job(self): # Complete success pt = npt.assert_warns( QiitaDBWarning, PrepTemplate.create, pd.DataFrame({'new_col': {'1.SKD6.640190': 1}}), Study(1), '16S') c_job = ProcessingJob.create( User('*****@*****.**'), Parameters.load( Command.get_validator('BIOM'), values_dict={'template': pt.id, 'files': dumps({'BIOM': ['file']}), 'artifact_type': 'BIOM'}), True) c_job._set_status('running') fd, fp = mkstemp(suffix='_table.biom') close(fd) with open(fp, 'w') as f: f.write('\n') self._clean_up_files.append(fp) exp_artifact_count = get_count('qiita.artifact') + 1 payload = dumps( {'success': True, 'error': '', 'artifacts': {'OTU table': {'filepaths': [(fp, 'biom')], 'artifact_type': 'BIOM'}}}) job = self._create_job('complete_job', {'job_id': c_job.id, 'payload': payload}) private_task(job.id) self.assertEqual(job.status, 'success') self.assertEqual(c_job.status, 'success') self.assertEqual(get_count('qiita.artifact'), exp_artifact_count) # Complete job error payload = dumps({'success': False, 'error': 'Job failure'}) job = self._create_job( 'complete_job', {'job_id': 'bcc7ebcd-39c1-43e4-af2d-822e3589f14d', 'payload': payload}) private_task(job.id) self.assertEqual(job.status, 'success') c_job = ProcessingJob('bcc7ebcd-39c1-43e4-af2d-822e3589f14d') self.assertEqual(c_job.status, 'error') self.assertEqual(c_job.log, LogEntry.newest_records(numrecords=1)[0]) self.assertEqual(c_job.log.msg, 'Job failure') # Complete internal error pt = npt.assert_warns( QiitaDBWarning, PrepTemplate.create, pd.DataFrame({'new_col': {'1.SKD6.640190': 1}}), Study(1), '16S') c_job = ProcessingJob.create( User('*****@*****.**'), Parameters.load( Command.get_validator('BIOM'), values_dict={'template': pt.id, 'files': dumps({'BIOM': ['file']}), 'artifact_type': 'BIOM'}), True) c_job._set_status('running') fp = '/surprised/if/this/path/exists.biom' payload = dumps( {'success': True, 'error': '', 'artifacts': {'OTU table': {'filepaths': [(fp, 'biom')], 'artifact_type': 'BIOM'}}}) job = self._create_job('complete_job', {'job_id': c_job.id, 'payload': payload}) private_task(job.id) self.assertEqual(job.status, 'success') self.assertEqual(c_job.status, 'error') self.assertIn('No such file or directory', c_job.log.msg)
def get(self): logentries = LogEntry.newest_records() self.render("error_log.html", logentries=logentries, user=self.current_user)
def test_artifact_patch_request(self): a = Artifact(1) test_user = User('*****@*****.**') self.assertEqual(a.name, 'Raw data 1') artifact_patch_request(test_user, 1, 'replace', '/name/', req_value='NEW_NAME') self.assertEqual(a.name, 'NEW_NAME') # Reset the name a.name = 'Raw data 1' # No access with self.assertRaises(QiitaHTTPError): artifact_patch_request(User('*****@*****.**'), 1, 'replace', '/name/', req_value='NEW_NAME') # Incorrect path parameter with self.assertRaises(QiitaHTTPError): artifact_patch_request(test_user, 1, 'replace', '/name/wrong/', req_value='NEW_NAME') # Missing value with self.assertRaises(QiitaHTTPError): artifact_patch_request(test_user, 1, 'replace', '/name/') # Wrong attribute with self.assertRaises(QiitaHTTPError): artifact_patch_request(test_user, 1, 'replace', '/wrong/', req_value='NEW_NAME') # Wrong operation with self.assertRaises(QiitaHTTPError): artifact_patch_request(test_user, 1, 'add', '/name/', req_value='NEW_NAME') # Changing visibility self.assertEqual(a.visibility, 'private') artifact_patch_request(test_user, 1, 'replace', '/visibility/', req_value='sandbox') self.assertEqual(a.visibility, 'sandbox') # checking that we have a new entry in the database for this self.assertEqual( LogEntry.newest_records(1)[0].msg, '[email protected] changed artifact 1 (study 1) to sandbox') # Admin can change to private artifact_patch_request(User('*****@*****.**'), 1, 'replace', '/visibility/', req_value='private') self.assertEqual(a.visibility, 'private') # Test user can't change to private with self.assertRaises(QiitaHTTPError): artifact_patch_request(test_user, 1, 'replace', '/visibility/', req_value='private') # Unkown req value with self.assertRaises(QiitaHTTPError): artifact_patch_request(test_user, 1, 'replace', '/visibility/', req_value='wrong')
def get(self): logentries = LogEntry.newest_records() self.render("error_log.html", logentries=logentries, user=self.current_user)