Coverage for tests/testDB.py : 51%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import matplotlib
2matplotlib.use("Agg")
3import os
4import unittest
5import lsst.sims.maf.db as db
6import lsst.utils.tests
7from lsst.sims.utils.CodeUtilities import sims_clean_up
8from lsst.utils import getPackageDir
10class TestDb(unittest.TestCase):
12 @classmethod
13 def tearDownClass(cls):
14 sims_clean_up()
16 def setUp(self):
17 self.database = os.path.join(getPackageDir('sims_data'),
18 'OpSimData', 'astro-lsst-01_2014.db')
19 self.driver = 'sqlite'
21 def tearDown(self):
22 del self.driver
23 del self.database
25 def testBaseDatabase(self):
26 """Test base database class."""
27 # Test instantiation connects to expected tables.
28 basedb = db.Database(database=self.database, driver=self.driver)
29 expectedTables = ['Config', 'ScheduledDowntime', 'SlewMaxSpeeds',
30 'Field', 'Session', 'SummaryAllProps', 'ObsExposures',
31 'SlewActivities', 'TargetExposures', 'ObsHistory',
32 'SlewFinalState', 'TargetHistory', 'ObsProposalHistory',
33 'SlewHistory', 'TargetProposalHistory', 'Proposal',
34 'ProposalField',
35 'SlewInitialState', 'UnscheduledDowntime']
36 self.assertEqual(set(basedb.tableNames),
37 set(expectedTables))
38 # Test general query with a simple query.
39 query = 'select fieldId, ra, dec from Field where dec>0 limit 3'
40 data = basedb.query_arbitrary(query)
41 self.assertEqual(len(data), 3)
42 # Test query columns with a simple query.
43 data = basedb.query_columns('Field', colnames=['fieldId', 'ra', 'dec'], numLimit=3)
44 self.assertEqual(data.dtype.names, ('fieldId', 'ra', 'dec'))
45 self.assertEqual(len(data), 3)
47 def testSqliteFileNotExists(self):
48 """Test that db gives useful error message if db file doesn't exist."""
49 self.assertRaises(IOError, db.Database, 'thisdatabasedoesntexist_sqlite.db')
52class TestMemory(lsst.utils.tests.MemoryTestCase):
53 pass
56def setup_module(module):
57 lsst.utils.tests.init()
60if __name__ == "__main__": 60 ↛ 61line 60 didn't jump to line 61, because the condition on line 60 was never true
61 lsst.utils.tests.init()
62 unittest.main()