X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=charms%2Flayers%2Fsshproxy%2Ftests%2F10-deploy;fp=charms%2Flayers%2Fsshproxy%2Ftests%2F10-deploy;h=f5d2f5d64717c62d72ec309fd886446c15f62917;hb=a2a2d89587a21693f398ce77f8c049805150c368;hp=0000000000000000000000000000000000000000;hpb=d3bbe5cc32a34e4eb19df3337cd68efd3fd43866;p=osm%2FSO.git diff --git a/charms/layers/sshproxy/tests/10-deploy b/charms/layers/sshproxy/tests/10-deploy new file mode 100755 index 00000000..f5d2f5d6 --- /dev/null +++ b/charms/layers/sshproxy/tests/10-deploy @@ -0,0 +1,76 @@ +## +# Copyright 2016 Canonical Ltd. +# All rights reserved. +# +# 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. +## + +#!/usr/bin/python3 + +import amulet +import requests +import unittest +import string +import random + + +class TestCharm(unittest.TestCase): + user = None + passwd = None + + def id_generator(self, size=6, chars=string.ascii_uppercase + string.digits): + return ''.join(random.choice(chars) for _ in range(size)) + + def setUp(self): + + # Setup random user/password + self.user = self.id_generator() + self.passwd = self.id_generator() + + self.d = amulet.Deployment() + + self.d.add('sshproxy') + self.d.add('ubuntu') + + self.d.expose('sshproxy') + + self.d.setup(timeout=900) + self.d.sentry.wait() + + # Add + ubuntu_0 = d.sentry['ubuntu'][0] + ubuntu_0.ssh("sudo adduser {}".format(self.user)) + ubuntu_0.ssh("echo '{}' | sudo passwd {} --stdin".format(self.passwd, self.user)) + + self.unit = self.d.sentry['sshproxy'][0] + + def test_service(self): + + # Configure the unit + + # Run a command + + # Verify the output + + # test we can access over http + # page = requests.get('http://{}'.format(self.unit.info['public-address'])) + # self.assertEqual(page.status_code, 200) + # Now you can use self.d.sentry[SERVICE][UNIT] to address each of the units and perform + # more in-depth steps. Each self.d.sentry[SERVICE][UNIT] has the following methods: + # - .info - An array of the information of that unit from Juju + # - .file(PATH) - Get the details of a file on that unit + # - .file_contents(PATH) - Get plain text output of PATH file from that unit + # - .directory(PATH) - Get details of directory + # - .directory_contents(PATH) - List files and folders in PATH on that unit + # - .relation(relation, service:rel) - Get relation data from return service + pass