diff options
author | Ben Howard <ben.howard@ubuntu.com> | 2015-12-07 16:48:51 -0700 |
---|---|---|
committer | usd-importer <ubuntu-server@lists.ubuntu.com> | 2015-12-08 16:10:11 +0000 |
commit | 83432149e212155469b1e9f06eb0095121377356 (patch) | |
tree | 9029a2e7836dce3025d5c5a6527d74bbf8d799e5 /tests/test_v2.py | |
parent | 04946cba49f19c0b6b876bccdbb36d47334af002 (diff) | |
download | vyos-walinuxagent-83432149e212155469b1e9f06eb0095121377356.tar.gz vyos-walinuxagent-83432149e212155469b1e9f06eb0095121377356.zip |
Import patches-unapplied version 2.1.2-0ubuntu1 to ubuntu/xenial-proposed
Imported using git-ubuntu import.
Changelog parent: 04946cba49f19c0b6b876bccdbb36d47334af002
New changelog entries:
* New upstream release (LP: #1523715):
- Bug fixes for Ubuntu 15.10 on Azure
- Enablement for Azure Stack
- Dropped patch for systemd job as upstream now includes it.
Diffstat (limited to 'tests/test_v2.py')
-rw-r--r-- | tests/test_v2.py | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/tests/test_v2.py b/tests/test_v2.py new file mode 100644 index 0000000..c4a0b4d --- /dev/null +++ b/tests/test_v2.py @@ -0,0 +1,120 @@ +# 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 +from tests.tools import * +import unittest +import json +import azurelinuxagent.protocol.v2 as v2 + +SAMPLE_IDENTITY=u"""{ + "vmName":"foo", + "subscriptionId":"bar" +}""" + +SAMPLE_CERTS=u"""{ + "certificates":[{ + "name":"foo", + "thumbprint":"bar", + "certificateDataUri":"baz" + }] +}""" + +SAMPLE_EXT_HANDLER=u"""[{ + "name":"foo", + "properties":{ + "version":"bar", + "upgradePolicy": "manual", + "state": "enabled", + "extensions":[{ + "name":"baz", + "sequenceNumber":0, + "publicSettings":{ + "commandToExecute": "echo 123", + "uris":[] + } + }] + }, + "versionUris":[{ + "uri":"versionUri.foo" + }] +}]""" + +SAMPLE_EXT_HANDLER_PKGS=u"""{ + "versions": [{ + "version":"foo", + "uris":[{ + "uri":"bar" + },{ + "uri":"baz" + }] + }] +}""" + +def mock_get_data(self, url, headers=None): + data = u"{}" + if url.count(u"identity") > 0: + data = SAMPLE_IDENTITY + elif url.count(u"certificates") > 0: + data = SAMPLE_CERTS + elif url.count(u"extensionHandlers") > 0: + data = SAMPLE_EXT_HANDLER + elif url.count(u"versionUri") > 0: + data = SAMPLE_EXT_HANDLER_PKGS + return json.loads(data) + +class TestMetadataProtocol(unittest.TestCase): + @mock(v2.MetadataProtocol, '_get_data', mock_get_data) + def test_getters(self): + protocol = v2.MetadataProtocol() + vminfo = protocol.get_vminfo() + self.assertNotEquals(None, vminfo) + self.assertNotEquals(None, vminfo.vmName) + self.assertNotEquals(None, vminfo.subscriptionId) + + protocol.get_certs() + + ext_handers = protocol.get_ext_handlers() + self.assertNotEquals(None, ext_handers) + self.assertNotEquals(None, ext_handers.extHandlers) + self.assertNotEquals(0, len(ext_handers.extHandlers)) + + ext_hander = ext_handers.extHandlers[0] + self.assertNotEquals(None, ext_hander) + self.assertNotEquals(0, len(ext_hander.properties.extensions)) + + ext = ext_hander.properties.extensions[0] + self.assertNotEquals(None, ext) + self.assertNotEquals(None, ext.publicSettings) + self.assertEquals("echo 123", ext.publicSettings.get('commandToExecute')) + + packages = protocol.get_ext_handler_pkgs(ext_handers.extHandlers[0]) + self.assertNotEquals(None, packages) + + @mock(v2.MetadataProtocol, '_put_data', MockFunc()) + def test_reporters(self): + protocol = v2.MetadataProtocol() + protocol.report_provision_status(v2.ProvisionStatus()) + protocol.report_vm_status(v2.VMStatus()) + protocol.report_ext_status("foo", "baz", v2.ExtensionStatus()) + protocol.report_event(v2.TelemetryEventList()) + +if __name__ == '__main__': + unittest.main() |