def test_TotalTasks(self): instanceMeta = InstanceMetadata(id=1, aws_id=2, ncommands=10, nuploads=10, ndownloads=10, lastmessage="message", lastupdate="the date", ncommandsFinished=0, nuploadsFinished=0, ndownloadsFinished=0) self.assertEqual(instanceMeta.TotalTasks(), 30)
def test_GetTimeSinceLastUpdate(self): dummyTimeStr = "20171018-23:15:30 UTC" dummyTime = TimeHelper.ParseUTCString(dummyTimeStr) instanceMeta = InstanceMetadata(id=1, aws_id=2, ncommands=10, nuploads=10, ndownloads=10, lastmessage="message", lastupdate=dummyTimeStr, ncommandsFinished=0, nuploadsFinished=0, ndownloadsFinished=0) expectedInterval = TimeHelper.GetTimeElapsed(dummyTimeStr) interval = instanceMeta.GetTimeSinceLastUpdate() self.assertLess(abs(expectedInterval - interval), 0.1)
def FromJson(self, filepath): with open(filepath) as f: data = json.load(f) inst = InstanceMetadata(data["Id"], data["AWS_Instance_Id"], data["CommandCount"], data["UploadCount"], data["DownloadCount"], data["LastMessage"], data["LastUpdate"], data["NCommandsFinished"], data["NUploadsFinished"], data["NDownloadsFinished"]) return inst
def InitializeMetadata(self, id, aws_id): ncommands = len(self.manifest.GetJob(id)["Commands"]) nuploads = self._GetUploadCount(id) ndownloads = len(self.manifest.GetJob(id)["RequiredS3Data"]) - nuploads inst = InstanceMetadata(id=id, aws_id=aws_id, ncommands=ncommands, nuploads=nuploads, ndownloads=ndownloads, lastmessage="Initialize", lastupdate=TimeHelper.GetUTCNowString(), ncommandsFinished=0, nuploadsFinished=0, ndownloadsFinished=0) return inst
def test_IncrementUploadsFinished(self): instanceMeta = InstanceMetadata(id=1, aws_id=2, ncommands=10, nuploads=10, ndownloads=10, lastmessage="message", lastupdate="empty", ncommandsFinished=0, nuploadsFinished=0, ndownloadsFinished=0) self.assertEqual(instanceMeta.Get("NUploadsFinished"), 0) self.assertEqual(instanceMeta.Get("LastUpdate"), "empty") instanceMeta.IncrementUploadsFinished() self.assertEqual(instanceMeta.Get("NUploadsFinished"), 1) newTime = instanceMeta.Get("LastUpdate") self.assertTrue(TimeHelper.GetTimeElapsed(newTime) < 1.0)
def test_AllTasksFinished(self): instanceMeta = InstanceMetadata(id=1, aws_id=2, ncommands=10, nuploads=10, ndownloads=10, lastmessage="message", lastupdate=" ", ncommandsFinished=0, nuploadsFinished=0, ndownloadsFinished=0) for x in range(0, 10): self.assertFalse(instanceMeta.AllTasksFinished()) instanceMeta.IncrementUploadsFinished() instanceMeta.IncrementCommandFinished() instanceMeta.IncrementDownloadFinished() self.assertTrue(instanceMeta.AllTasksFinished())
def test_init(self): instanceMeta = InstanceMetadata(id=1, aws_id=2, ncommands=10, nuploads=10, ndownloads=10, lastmessage="message", lastupdate="2017", ncommandsFinished=0, nuploadsFinished=0, ndownloadsFinished=0) self.assertEquals(instanceMeta.Get("Id"), 1) self.assertEquals(instanceMeta.Get("AWS_Instance_Id"), 2) self.assertEquals(instanceMeta.Get("CommandCount"), 10) self.assertEquals(instanceMeta.Get("UploadCount"), 10) self.assertEquals(instanceMeta.Get("DownloadCount"), 10) self.assertEquals(instanceMeta.Get("LastMessage"), "message") self.assertEquals(instanceMeta.Get("LastUpdate"), "2017") self.assertEquals(instanceMeta.Get("NCommandsFinished"), 0) self.assertEquals(instanceMeta.Get("NUploadsFinished"), 0) self.assertEquals(instanceMeta.Get("NDownloadsFinished"), 0)
def test_Get_raises_error_on_bad_key(self): instanceMeta = InstanceMetadata(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) self.assertRaises(KeyError, lambda: instanceMeta.Get("missing"))