summaryrefslogtreecommitdiffstats
path: root/snaps/domain/test/project_tests.py
blob: d0aec3a02c146d9846cae5ec21a1574fa3627203 (plain)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs")
#                    and others.  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.

import unittest
from snaps.domain.project import Project, Domain, ComputeQuotas, NetworkQuotas


class ProjectDomainObjectTests(unittest.TestCase):
    """
    Tests the construction of the snaps.domain.project.Project class
    """

    def test_construction_positional_minimal(self):
        project = Project('foo', '123-456')
        self.assertEqual('foo', project.name)
        self.assertEqual('123-456', project.id)
        self.assertIsNone(project.domain_id)

    def test_construction_positional_all(self):
        project = Project('foo', '123-456', 'hello')
        self.assertEqual('foo', project.name)
        self.assertEqual('123-456', project.id)
        self.assertEqual('hello', project.domain_id)

    def test_construction_named_minimal(self):
        project = Project(project_id='123-456', name='foo')
        self.assertEqual('foo', project.name)
        self.assertEqual('123-456', project.id)
        self.assertIsNone(project.domain_id)

    def test_construction_named_all(self):
        project = Project(domain_id='hello', project_id='123-456', name='foo')
        self.assertEqual('foo', project.name)
        self.assertEqual('123-456', project.id)
        self.assertEqual('hello', project.domain_id)


class DomainDomainObjectTests(unittest.TestCase):
    """
    Tests the construction of the snaps.domain.project.Domain class
    """

    def test_construction_positional(self):
        domain = Domain('foo', '123-456')
        self.assertEqual('foo', domain.name)
        self.assertEqual('123-456', domain.id)

    def test_construction_named_minimal(self):
        domain = Domain(domain_id='123-456', name='foo')
        self.assertEqual('foo', domain.name)
        self.assertEqual('123-456', domain.id)


class ComputeQuotasDomainObjectTests(unittest.TestCase):
    """
    Tests the construction of the snaps.domain.project.ComputeQuotas class
    """

    def test_construction_positional(self):
        quotas = ComputeQuotas(
            metadata_items=64, cores=5, instances= 4, injected_files= 3,
            injected_file_content_bytes=5120,ram=25600, fixed_ips=100,
            key_pairs=50)
        self.assertEqual(64, quotas.metadata_items)
        self.assertEqual(5, quotas.cores)
        self.assertEqual(4, quotas.instances)
        self.assertEqual(3, quotas.injected_files)
        self.assertEqual(5120, quotas.injected_file_content_bytes)
        self.assertEqual(25600, quotas.ram)
        self.assertEqual(100, quotas.fixed_ips)
        self.assertEqual(50, quotas.key_pairs)

    def test_construction_named_minimal(self):
        quotas = ComputeQuotas(
            **{'metadata_items': 64, 'cores': 5, 'instances': 4,
               'injected_files': 3, 'injected_file_content_bytes': 5120,
               'ram': 25600, 'fixed_ips': 100, 'key_pairs': 50})
        self.assertEqual(64, quotas.metadata_items)
        self.assertEqual(5, quotas.cores)
        self.assertEqual(4, quotas.instances)
        self.assertEqual(3, quotas.injected_files)
        self.assertEqual(5120, quotas.injected_file_content_bytes)
        self.assertEqual(25600, quotas.ram)
        self.assertEqual(100, quotas.fixed_ips)
        self.assertEqual(50, quotas.key_pairs)


class NetworkQuotasDomainObjectTests(unittest.TestCase):
    """
    Tests the construction of the snaps.domain.project.NetworkQuotas class
    """

    def test_construction_positional(self):
        quotas = NetworkQuotas(
            security_group=5, security_group_rule=50,
            floatingip=25, network=5, port=25, router=6, subnet=7)
        self.assertEqual(5, quotas.security_group)
        self.assertEqual(50, quotas.security_group_rule)
        self.assertEqual(25, quotas.floatingip)
        self.assertEqual(5, quotas.network)
        self.assertEqual(25, quotas.port)
        self.assertEqual(6, quotas.router)
        self.assertEqual(7, quotas.subnet)

    def test_construction_named_minimal(self):
        quotas = NetworkQuotas(
            **{'security_group': 5, 'security_group_rule': 50,
               'floatingip': 25, 'network': 5, 'port': 25, 'router': 6,
               'subnet': 7})
        self.assertEqual(5, quotas.security_group)
        self.assertEqual(50, quotas.security_group_rule)
        self.assertEqual(25, quotas.floatingip)
        self.assertEqual(5, quotas.network)
        self.assertEqual(25, quotas.port)
        self.assertEqual(6, quotas.router)
        self.assertEqual(7, quotas.subnet)