From f78b9650d0e7b008d430673a075aad95dda863be Mon Sep 17 00:00:00 2001 From: Ben Howard Date: Fri, 14 Aug 2015 16:40:41 -0600 Subject: Import patches-unapplied version 2.1.1-0ubuntu1 to ubuntu/wily-proposed Imported using git-ubuntu import. Changelog parent: 0afc048f2a6ff3638ecfa33e7ded5dc8dddf041a New changelog entries: * New upstream release for Ubuntu. - Switch to Python3 - Applies Ubuntu specific patches --- tests/test_protocol.py | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 tests/test_protocol.py (limited to 'tests/test_protocol.py') diff --git a/tests/test_protocol.py b/tests/test_protocol.py new file mode 100644 index 0000000..3eff197 --- /dev/null +++ b/tests/test_protocol.py @@ -0,0 +1,88 @@ +# Copyright 2014 Microsoft Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Requires Python 2.4+ and Openssl 1.0+ +# +# Implements parts of RFC 2131, 1541, 1497 and +# http://msdn.microsoft.com/en-us/library/cc227282%28PROT.10%29.aspx +# http://msdn.microsoft.com/en-us/library/cc227259%28PROT.13%29.aspx + +import tests.env +import tests.tools as tools +from .tools import * +import uuid +import unittest +import os +import time +import json +from azurelinuxagent.protocol.common import * + +extensionDataStr = """ +{ + "vmAgent": { + "agentVersion": "2.4.1198.689", + "status": "Ready", + "message": "GuestAgent is running and accepting new configurations." + }, + "extensionHandlers": [{ + "handlerName": "Microsoft.Compute.CustomScript", + "handlerVersion": "1.0.0.0", + "status": "Ready", + "message": "Plugin enabled (name: Microsoft.Compute.CustomScript, version: 1.0.0.0).", + "extensionStatusList": [{ + "name": "MyDomainJoinScript", + "configurationAppliedTime": "2014-08-12T19:20:18Z", + "operation": "CommandExecutionFinished", + "status": "Success", + "sequenceNumber": "0", + "substatusList": [{ + "name": "StdOut", + "status": "Info", + "code": "0", + "message": "Joiningdomainfoo" + }] + }] + } + + ] +} +""" + +class TestProtocolContract(unittest.TestCase): + def test_get_properties(self): + data = get_properties(VMInfo()) + data = get_properties(Cert()) + data = get_properties(ExtensionPackageList()) + data = get_properties(InstanceMetadata()) + data = get_properties(VMStatus()) + data = get_properties(TelemetryEventList()) + data = get_properties(Extension(name="hehe")) + self.assertTrue("name" in data) + self.assertTrue("properties" in data) + self.assertEquals(dict, type(data["properties"])) + self.assertTrue("versionUris" not in data) + + def test_set_properties(self): + data = json.loads(extensionDataStr) + obj = VMStatus() + set_properties(obj, data) + self.assertNotEquals(None, obj.vmAgent) + self.assertEquals(VMAgentStatus, type(obj.vmAgent)) + self.assertNotEquals(None, obj.vmAgent.status) + self.assertNotEquals(None, obj.extensionHandlers) + self.assertEquals(DataContractList, type(obj.extensionHandlers)) + +if __name__ == '__main__': + unittest.main() + -- cgit v1.2.3