def test_Initialize(self): m = Mock(spec=Manifest) m.GetJob.side_effect = lambda id: { "Id": 1, "RequiredS3Data": ["document", "document1", "document3"], "Commands": [{ "Command": "run1.exe", "Args": [] }, { "Command": "run2.exe", "Args": ["a"] }] } m.GetS3Documents.side_effect = lambda: [ { "Name": "document", "Direction": "Static", "LocalPath": ".", "AWSInstancePath": "awsinstancepath" }, { "Name": "document1", "Direction": "LocalToAWS", "LocalPath": ".", "AWSInstancePath": "awsinstancepath" }, { "Name": "document3", "Direction": "AWSToLocal", "LocalPath": ".", "AWSInstancePath": "awsinstancepath" } ] fac = InstanceMetadataFactory(m) instanceMeta = fac.InitializeMetadata(1, 10) self.assertEquals(instanceMeta.Get("Id"), 1) self.assertEquals(instanceMeta.Get("AWS_Instance_Id"), 10) self.assertEquals(instanceMeta.Get("CommandCount"), 2) self.assertEquals(instanceMeta.Get("UploadCount"), 1) self.assertEquals(instanceMeta.Get("DownloadCount"), 2) self.assertEquals(instanceMeta.Get("LastMessage"), "Initialize") self.assertTrue( TimeHelper.GetTimeElapsed(instanceMeta.Get("LastUpdate")) < 1.0) self.assertEquals(instanceMeta.Get("NCommandsFinished"), 0) self.assertEquals(instanceMeta.Get("NUploadsFinished"), 0) self.assertEquals(instanceMeta.Get("NDownloadsFinished"), 0) m.GetJob.assert_called_with(1) m.GetS3Documents.assert_any_call()
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_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 GetTimeSinceLastUpdate(self): return TimeHelper.GetTimeElapsed(self._doc["LastUpdate"])