Hide keyboard shortcuts

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 os 

2import unittest 

3import lsst.sims.maf.db as db 

4import lsst.utils.tests 

5import tempfile 

6import shutil 

7 

8 

9class TestTrackingDb(unittest.TestCase): 

10 

11 def setUp(self): 

12 self.opsimRun = 'testopsim' 

13 self.opsimGroup = 'test' 

14 self.opsimComment = 'opsimcomment' 

15 self.mafComment = 'mafcomment' 

16 self.mafDir = 'mafdir' 

17 self.mafVersion = '1.0' 

18 self.mafDate = '2017-01-01' 

19 self.opsimVersion = '4.0' 

20 self.opsimDate = '2017-02-01' 

21 self.dbFile = None 

22 

23 def test_testTrackingDbCreation(self): 

24 """Test tracking database creation.""" 

25 tempdir = tempfile.mkdtemp(prefix='trackDb') 

26 trackingDbFile = os.path.join(tempdir, 'tracking.db') 

27 trackingdb = db.TrackingDb(database=trackingDbFile) 

28 self.assertTrue(os.path.isfile(trackingDbFile)) 

29 trackingdb.close() 

30 shutil.rmtree(tempdir) 

31 

32 def test_testAddRun(self): 

33 """Test adding a run to the tracking database.""" 

34 tempdir = tempfile.mkdtemp(prefix='trackDb') 

35 trackingDbFile = os.path.join(tempdir, 'tracking.db') 

36 trackingdb = db.TrackingDb(database=trackingDbFile) 

37 trackId = trackingdb.addRun(opsimGroup=self.opsimGroup, opsimRun=self.opsimRun, 

38 opsimComment=self.opsimComment, 

39 opsimVersion=self.opsimVersion, opsimDate=self.opsimDate, 

40 mafComment=self.mafComment, mafDir=self.mafDir, 

41 mafVersion=self.mafVersion, mafDate=self.mafDate, 

42 dbFile=self.dbFile) 

43 tdb = db.Database(database=trackingDbFile) 

44 res = tdb.query_arbitrary('select * from runs') 

45 self.assertEqual(res['mafRunId'][0], trackId) 

46 # Try adding this run again. Should return previous trackId. 

47 trackId2 = trackingdb.addRun(mafDir=self.mafDir) 

48 self.assertEqual(trackId, trackId2) 

49 # Test will add additional run, with new trackId. 

50 trackId3 = trackingdb.addRun(mafDir='test2') 

51 self.assertNotEqual(trackId, trackId3) 

52 trackingdb.close() 

53 tdb.close() 

54 shutil.rmtree(tempdir) 

55 

56 def test_testDelRun(self): 

57 """Test removing a run from the tracking database.""" 

58 tempdir = tempfile.mkdtemp(prefix='trackDb') 

59 trackingDbFile = os.path.join(tempdir, 'tracking.db') 

60 trackingdb = db.TrackingDb(database=trackingDbFile) 

61 tdb = db.Database(database=trackingDbFile) 

62 trackId = trackingdb.addRun(mafDir=self.mafDir) 

63 trackId2 = trackingdb.addRun(mafDir=self.mafDir + 'test2') 

64 res = tdb.query_arbitrary('select * from runs') 

65 self.assertEqual(res['mafRunId'][0], trackId) 

66 # Test removal works. 

67 trackingdb.delRun(trackId) 

68 res = tdb.query_arbitrary('select * from runs') 

69 # The run returned here is trackId2 

70 self.assertEqual(len(res), 1) 

71 self.assertEqual(res[0][0], trackId2) 

72 # Test cannot remove run which does not exist. 

73 self.assertRaises(Exception, trackingdb.delRun, trackId) 

74 trackingdb.close() 

75 tdb.close() 

76 shutil.rmtree(tempdir) 

77 

78 

79class TestMemory(lsst.utils.tests.MemoryTestCase): 

80 pass 

81 

82 

83def setup_module(module): 

84 lsst.utils.tests.init() 

85 

86 

87if __name__ == "__main__": 87 ↛ 88line 87 didn't jump to line 88, because the condition on line 87 was never true

88 lsst.utils.tests.init() 

89 unittest.main()