diff options
Diffstat (limited to 'snaps/config')
-rw-r--r-- | snaps/config/project.py | 3 | ||||
-rw-r--r-- | snaps/config/tests/project_tests.py | 32 |
2 files changed, 33 insertions, 2 deletions
diff --git a/snaps/config/project.py b/snaps/config/project.py index 6790609..79c316b 100644 --- a/snaps/config/project.py +++ b/snaps/config/project.py @@ -32,6 +32,7 @@ class ProjectConfig(object): :param users: list of users to associate project to (optional) :param enabled: denotes whether or not the project is enabled (default True) + :param quotas: quota values to override (optional) """ self.name = kwargs.get('name') @@ -46,6 +47,8 @@ class ProjectConfig(object): self.users = kwargs.get('users', list()) + self.quotas = kwargs.get('quotas') + if not self.name: raise ProjectConfigError( "The attribute name is required for ProjectConfig") diff --git a/snaps/config/tests/project_tests.py b/snaps/config/tests/project_tests.py index 0470d83..99de4a9 100644 --- a/snaps/config/tests/project_tests.py +++ b/snaps/config/tests/project_tests.py @@ -37,6 +37,7 @@ class ProjectConfigUnitTests(unittest.TestCase): self.assertIsNone(settings.description) self.assertTrue(settings.enabled) self.assertEqual(list(), settings.users) + self.assertIsNone(settings.quotas) def test_config_with_name_only(self): settings = ProjectConfig(**{'name': 'foo'}) @@ -45,25 +46,52 @@ class ProjectConfigUnitTests(unittest.TestCase): self.assertIsNone(settings.description) self.assertTrue(settings.enabled) self.assertEqual(list(), settings.users) + self.assertIsNone(settings.quotas) def test_all(self): users = ['test1', 'test2'] + quotas = { + 'cores': 4, 'instances': 5, 'injected_files': 6, + 'injected_file_content_bytes': 60000, 'ram': 70000, 'fixed_ips': 7, + 'key_pairs': 8} settings = ProjectConfig( name='foo', domain='bar', description='foobar', enabled=False, - users=users) + users=users, quotas=quotas) self.assertEqual('foo', settings.name) self.assertEqual('bar', settings.domain_name) self.assertEqual('foobar', settings.description) self.assertFalse(settings.enabled) self.assertEqual(users, settings.users) + self.assertIsNotNone(settings.quotas) + self.assertEquals(4, settings.quotas.get('cores')) + self.assertEquals(5, settings.quotas.get('instances')) + self.assertEquals(6, settings.quotas.get('injected_files')) + self.assertEquals( + 60000, settings.quotas.get('injected_file_content_bytes')) + self.assertEquals(70000, settings.quotas.get('ram')) + self.assertEquals(7, settings.quotas.get('fixed_ips')) + self.assertEquals(8, settings.quotas.get('key_pairs')) def test_config_all(self): users = ['test1', 'test2'] settings = ProjectConfig( **{'name': 'foo', 'domain': 'bar', 'description': 'foobar', - 'enabled': False, 'users': users}) + 'enabled': False, 'users': users, + 'quotas': { + 'cores': 4, 'instances': 5, 'injected_files': 6, + 'injected_file_content_bytes': 60000, 'ram': 70000, + 'fixed_ips': 7, 'key_pairs': 8}}) self.assertEqual('foo', settings.name) self.assertEqual('bar', settings.domain_name) self.assertEqual('foobar', settings.description) self.assertFalse(settings.enabled) self.assertEqual(users, settings.users) + self.assertIsNotNone(settings.quotas) + self.assertEquals(4, settings.quotas.get('cores')) + self.assertEquals(5, settings.quotas.get('instances')) + self.assertEquals(6, settings.quotas.get('injected_files')) + self.assertEquals( + 60000, settings.quotas.get('injected_file_content_bytes')) + self.assertEquals(70000, settings.quotas.get('ram')) + self.assertEquals(7, settings.quotas.get('fixed_ips')) + self.assertEquals(8, settings.quotas.get('key_pairs')) |