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)
Пример #4
0
 def GetTimeSinceLastUpdate(self):
     return TimeHelper.GetTimeElapsed(self._doc["LastUpdate"])