File: test_agent.py

package info (click to toggle)
python-openstackclient 2.3.0-2~bpo8%2B1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-backports
  • size: 3,376 kB
  • sloc: python: 39,869; makefile: 158; sh: 40
file content (76 lines) | stat: -rw-r--r-- 2,680 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#    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.

import hashlib

from functional.common import test


class ComputeAgentTests(test.TestCase):
    """Functional tests for compute agent. """

    ID = None
    MD5HASH = hashlib.md5().hexdigest()
    URL = "http://localhost"
    VER = "v1"
    OS = "TEST_OS"
    ARCH = "x86_64"
    HYPER = "kvm"

    HEADERS = ['agent_id', 'md5hash']
    FIELDS = ['agent_id', 'md5hash']

    @classmethod
    def setUpClass(cls):
        opts = cls.get_show_opts(cls.HEADERS)
        raw_output = cls.openstack('compute agent create '
                                   + cls.OS + ' ' + cls.ARCH + ' '
                                   + cls.VER + ' ' + cls.URL + ' '
                                   + cls.MD5HASH + ' ' + cls.HYPER + ' '
                                   + opts)

        # Get agent id because agent can only be deleted by ID
        output_list = raw_output.split('\n', 1)
        cls.ID = output_list[0]

        cls.assertOutput(cls.MD5HASH + '\n', output_list[1])

    @classmethod
    def tearDownClass(cls):
        raw_output = cls.openstack('compute agent delete ' + cls.ID)
        cls.assertOutput('', raw_output)

    def test_agent_list(self):
        raw_output = self.openstack('compute agent list')
        self.assertIn(self.ID, raw_output)
        self.assertIn(self.OS, raw_output)
        self.assertIn(self.ARCH, raw_output)
        self.assertIn(self.VER, raw_output)
        self.assertIn(self.URL, raw_output)
        self.assertIn(self.MD5HASH, raw_output)
        self.assertIn(self.HYPER, raw_output)

    def test_agent_set(self):
        ver = 'v2'
        url = "http://openstack"
        md5hash = hashlib.md5().hexdigest()

        raw_output = self.openstack('compute agent set '
                                    + self.ID + ' ' + ver + ' '
                                    + url + ' ' + md5hash)
        self.assertEqual('', raw_output)

        raw_output = self.openstack('compute agent list')
        self.assertIn(self.ID, raw_output)
        self.assertIn(ver, raw_output)
        self.assertIn(url, raw_output)
        self.assertIn(md5hash, raw_output)