def test_testAddRun(self): """Test adding a run to the tracking database.""" tempdir = tempfile.mkdtemp(prefix='trackDb') trackingDbFile = os.path.join(tempdir, 'tracking.db') trackingdb = db.TrackingDb(database=trackingDbFile) trackId = trackingdb.addRun(opsimGroup=self.opsimGroup, opsimRun=self.opsimRun, opsimComment=self.opsimComment, opsimVersion=self.opsimVersion, opsimDate=self.opsimDate, mafComment=self.mafComment, mafDir=self.mafDir, mafVersion=self.mafVersion, mafDate=self.mafDate, dbFile=self.dbFile) tdb = db.Database(database=trackingDbFile) res = tdb.query_arbitrary('select * from runs') self.assertEqual(res['mafRunId'][0], trackId) # Try adding this run again. Should return previous trackId. trackId2 = trackingdb.addRun(mafDir=self.mafDir) self.assertEqual(trackId, trackId2) # Test will add additional run, with new trackId. trackId3 = trackingdb.addRun(mafDir='test2') self.assertNotEqual(trackId, trackId3) trackingdb.close() tdb.close() shutil.rmtree(tempdir)
def testAddRun(self): """Test adding a run to the tracking database.""" trackingdb = db.TrackingDb(database=self.trackingDb) trackId = trackingdb.addRun(opsimRun=self.opsimRun, opsimComment=self.opsimComment, mafComment=self.mafComment, mafDir=self.mafDir, mafDate=self.mafDate, opsimDate=self.opsimDate) tdb = db.Database(database=self.trackingDb, dbTables={'runs': ['runs', 'mafRunId']}) res = tdb.queryDatabase('runs', 'select * from runs') self.assertEqual(res['mafRunId'][0], trackId) # Try adding this run again. Should just return previous trackId without adding. trackId2 = trackingdb.addRun(opsimRun=self.opsimRun, opsimComment=self.opsimComment, mafComment=self.mafComment, mafDir=self.mafDir, mafDate=self.mafDate, opsimDate=self.opsimDate) self.assertEqual(trackId, trackId2) # Test will add run, if we use 'override=True'. Also works to use None's. trackId3 = trackingdb.addRun(opsimRun=None, opsimComment=None, mafComment=None, mafDir=self.mafDir, override=True, mafDate=self.mafDate, opsimDate=self.opsimDate) self.assertNotEqual(trackId, trackId3) trackingdb.close()
def test_testTrackingDbCreation(self): """Test tracking database creation.""" tempdir = tempfile.mkdtemp(prefix='trackDb') trackingDbFile = os.path.join(tempdir, 'tracking.db') trackingdb = db.TrackingDb(database=trackingDbFile) self.assertTrue(os.path.isfile(trackingDbFile)) trackingdb.close() shutil.rmtree(tempdir)
def testDelRun(self): """Test removing a run from the tracking database.""" trackingdb = db.TrackingDb(database=self.trackingDb) tdb = db.Database(database=self.trackingDb, dbTables={'runs': ['runs', 'mafRunId']}) # Add a run. trackId = trackingdb.addRun(mafDir=self.mafDir) res = tdb.queryDatabase('runs', 'select * from runs') self.assertEqual(res['mafRunId'][0], trackId) # Test removal works. trackingdb.delRun(trackId) res = tdb.queryDatabase('runs', 'select * from runs') self.assertTrue(len(res) == 0) # Test cannot remove run which does not exist. self.assertRaises(Exception, trackingdb.delRun, trackId) trackingdb.close()
def test_testDelRun(self): """Test removing a run from the tracking database.""" tempdir = tempfile.mkdtemp(prefix='trackDb') trackingDbFile = os.path.join(tempdir, 'tracking.db') trackingdb = db.TrackingDb(database=trackingDbFile) tdb = db.Database(database=trackingDbFile) # Add two runs. trackId = trackingdb.addRun(mafDir=self.mafDir) trackId2 = trackingdb.addRun(mafDir=self.mafDir + 'test2') res = tdb.query_arbitrary('select * from runs') self.assertEqual(res['mafRunId'][0], trackId) # Test removal works. trackingdb.delRun(trackId) res = tdb.query_arbitrary('select * from runs') self.assertTrue(len(res) == 1) # Test cannot remove run which does not exist. self.assertRaises(Exception, trackingdb.delRun, trackId) trackingdb.close() tdb.close() shutil.rmtree(tempdir)
def testAddRun(self): """Test adding a run to the tracking database.""" trackingdb = db.TrackingDb(database=self.trackingDb) trackId = trackingdb.addRun(opsimGroup=self.opsimGroup, opsimRun=self.opsimRun, opsimComment=self.opsimComment, opsimVersion=self.opsimVersion, opsimDate=self.opsimDate, mafComment=self.mafComment, mafDir=self.mafDir, mafVersion=self.mafVersion, mafDate=self.mafDate, dbFile=self.dbFile) tdb = db.Database(database=self.trackingDb, dbTables={'runs': ['runs', 'mafRunId']}) res = tdb.queryDatabase('runs', 'select * from runs') self.assertEqual(res['mafRunId'][0], trackId) # Try adding this run again. Should return previous trackId. trackId2 = trackingdb.addRun(mafDir=self.mafDir) self.assertEqual(trackId, trackId2) # Test will add additional run, with new trackId. trackId3 = trackingdb.addRun(mafDir='test2') self.assertNotEqual(trackId, trackId3) trackingdb.close()
def testTrackingDbCreation(self): """Test tracking database creation.""" trackingdb = db.TrackingDb(database=self.trackingDb) self.assertTrue(os.path.isfile(self.trackingDb)) trackingdb.close()
#!/usr/bin/env python import argparse import lsst.sims.maf.db as db if __name__ == "__main__": parser = argparse.ArgumentParser( description="Remove a MAF run from the tracking database.") parser.add_argument("mafRunId", type=int, help="MAF Run ID from the tracking database.") defaultdb = 'trackingDb_sqlite.db' parser.add_argument("-t", "--trackingDb", type=str, default=defaultdb, help="Tracking database filename.") args = parser.parse_args() # If db is just a filename, assume sqlite and prepend address string trackingDb = db.TrackingDb(database=args.trackingDb) trackingDb.delRun(int(args.mafRunId))
# Check tracking DB is sqlite (and add as convenience if forgotten). trackingDb = args.trackingDb print 'Using tracking database at %s' % (trackingDb) global startRunId startRunId = -666 # If given a directory argument: if args.mafDir is not None: mafDir = os.path.realpath(args.mafDir) if not os.path.isdir(mafDir): print 'There is no directory containing MAF outputs at %s.' % ( mafDir) print 'Just opening using tracking db at %s.' % (trackingDb) # Open tracking database to add a run. trackDb = db.TrackingDb(database=trackingDb) # Set opsim comment and name from the config files from the run. opsimComment = '' opsimRun = '' opsimDate = '' mafDate = '' if os.path.isfile(os.path.join(mafDir, 'configSummary.txt')): file = open(os.path.join(mafDir, 'configSummary.txt')) for line in file: tmp = line.split() if tmp[0].startswith('RunName'): opsimRun = ' '.join(tmp[1:]) if tmp[0].startswith('RunComment'): opsimComment = ' '.join(tmp[1:]) if tmp[0].startswith('MAFVersion'): mafDate = tmp[-1]