Added feature to update the quotas on a project/tenant.
[snaps.git] / snaps / domain / test / project_tests.py
index 3f4fca6..d0aec3a 100644 (file)
@@ -14,7 +14,7 @@
 # limitations under the License.
 
 import unittest
-from snaps.domain.project import Project, Domain
+from snaps.domain.project import Project, Domain, ComputeQuotas, NetworkQuotas
 
 
 class ProjectDomainObjectTests(unittest.TestCase):
@@ -61,3 +61,68 @@ class DomainDomainObjectTests(unittest.TestCase):
         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)