[Kimchi-devel] [PATCH 5/5] Host's repositories management: Update test-cases.
Aline Manera
alinefm at linux.vnet.ibm.com
Mon Feb 10 18:40:09 UTC 2014
On 02/10/2014 11:46 AM, Paulo Vital wrote:
> Added unit tests into test_model.py and test_rest.py
>
> Signed-off-by: Paulo Vital <pvital at linux.vnet.ibm.com>
> ---
> tests/test_model.py | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++
> tests/test_rest.py | 32 +++++++++++++++++
> 2 files changed, 131 insertions(+)
>
> diff --git a/tests/test_model.py b/tests/test_model.py
> index 4a6d2fe..40c53c0 100644
> --- a/tests/test_model.py
> +++ b/tests/test_model.py
> @@ -794,6 +794,105 @@ class ModelTests(unittest.TestCase):
> volumes = inst.storagevolumes_get_list(args['name'])
> self.assertEquals(len(volumes), 2)
>
> + def test_repository_create(self):
> + inst = model.Model('test:///default',
> + objstore_loc=self.tmp_store)
> +
> + system_host_repos = len(inst.repositories_get_list())
> +
> + test_repos = [{'repo_id': 'fedora-fake',
> + 'baseurl': 'http://www.fedora.org'},
> + {'repo_id': 'fedora-updates-fake',
> + 'mirrors': 'http://www.fedora.org/updates',
> + 'gpgkey' : 'file:///tmp/KEY-fedora-updates-fake-19'}]
> +
> + for repo in test_repos:
> + inst.repositories_create(repo)
> + host_repos = inst.repositories_get_list()
> + self.assertEquals(system_host_repos+len(test_repos), len(host_repos))
> +
> + for repo in test_repos:
> + repo_info = inst.repository_lookup(repo.get('repo_id'))
> + self.assertEquals(repo.get('repo_id'), repo_info.get('repo_id'))
> + self.assertEquals(repo.get('baseurl', []),
> + repo_info.get('baseurl'))
> + self.assertEquals(repo.get('mirrors', None),
> + repo_info.get('mirrors'))
> + self.assertEquals(True, repo_info.get('enabled'))
> +
> + if 'gpgkey' in repo.keys():
> + gpgcheck = True
> + else:
> + gpgcheck = False
> +
> + self.assertEquals(gpgcheck, repo_info.get('gpgcheck'))
> +
> + self.assertRaises(NotFoundError, inst.repository_lookup, 'google')
> +
> + # remove files created
> + for repo in test_repos:
> + inst.repository_delete(repo['repo_id'])
> + self.assertRaises(NotFoundError,
> + inst.repository_lookup, repo['repo_id'])
> +
> + def test_repository_update(self):
> + inst = model.Model('test:///default',
> + objstore_loc=self.tmp_store)
> +
> + system_host_repos = len(inst.repositories_get_list())
> +
> + repo = {'repo_id': 'fedora-fake',
> + 'repo_name': 'Fedora 19 FAKE',
> + 'baseurl': 'http://www.fedora.org'}
> + inst.repositories_create(repo)
> +
> + host_repos = inst.repositories_get_list()
> + self.assertEquals(system_host_repos+1, len(host_repos))
> +
> + new_repo = {'repo_id': 'fedora-fake',
> + 'repo_name': 'Fedora 19 Update FAKE',
> + 'baseurl': 'http://www.fedora.org/update'}
> +
> + inst.repository_update(repo['repo_id'], new_repo)
> + repo_info = inst.repository_lookup(new_repo.get('repo_id'))
> + self.assertEquals(new_repo.get('repo_id'), repo_info.get('repo_id'))
> + self.assertEquals(new_repo.get('repo_name'),
> + repo_info.get('repo_name'))
> + self.assertEquals(new_repo.get('baseurl', None),
> + repo_info.get('baseurl'))
> + self.assertEquals(True, repo_info.get('enabled'))
> +
> + # remove files creates
> + inst.repository_delete(repo['repo_id'])
> +
> + def test_repository_disable_enable(self):
> + inst = model.Model('test:///default',
> + objstore_loc=self.tmp_store)
> +
> + system_host_repos = len(inst.repositories_get_list())
> +
> + repo = {'repo_id': 'fedora-fake',
> + 'repo_name': 'Fedora 19 FAKE',
> + 'baseurl': 'http://www.fedora.org'}
> + inst.repositories_create(repo)
> +
> + host_repos = inst.repositories_get_list()
> + self.assertEquals(system_host_repos+1, len(host_repos))
> +
> + repo_info = inst.repository_lookup(repo.get('repo_id'))
> + self.assertEquals(True, repo_info.get('enabled'))
> +
> + inst.repository_disable(repo.get('repo_id'))
> + repo_info = inst.repository_lookup(repo.get('repo_id'))
> + self.assertEquals(False, repo_info.get('enabled'))
> +
> + inst.repository_enable(repo.get('repo_id'))
> + repo_info = inst.repository_lookup(repo.get('repo_id'))
> + self.assertEquals(True, repo_info.get('enabled'))
> +
> + # remove files creates
> + inst.repository_delete(repo['repo_id'])
> +
>
> class BaseModelTests(unittest.TestCase):
> class FoosModel(object):
> diff --git a/tests/test_rest.py b/tests/test_rest.py
> index 0ed293b..cae9e4f 100644
> --- a/tests/test_rest.py
> +++ b/tests/test_rest.py
> @@ -1321,6 +1321,38 @@ class RestTests(unittest.TestCase):
> self.assertEquals(1, len(res))
> self.assertEquals('test-vm1', res[0]['name'])
>
> + def test_repositories(self):
> + def verify_repo(t, res):
> + for field in ('repo_id', 'repo_name', 'baseurl', 'mirrors',
> + 'url_args', 'enabled', 'gpgcheck', 'gpgkey'):
> + self.assertEquals(t[field], res[field])
> +
> + resp = self.request('/repositories')
It should be /host/repositories, right?
> + self.assertEquals(200, resp.status)
> + self.assertEquals(0, len(json.loads(resp.read())))
> +
> + # Create a repository
> + repo = {'repo_id': 'fedora-fake',
> + 'repo_name': 'Fedora 19 FAKE',
> + 'baseurl': 'http://www.fedora.org'}
> + req = json.dumps(repo)
> + resp = self.request('/repositories', req, 'POST')
> + self.assertEquals(201, resp.status)
> +
> + # Verify the repositorie
> + res = json.loads(self.request('/repositories/fedora-fake').read())
> + verify_template(repo, res)
> +
> + # Update the repository
> + repo['baseurl'] = 'http://www.fedora.org/update'
> + req = json.dumps(repo)
> + resp = self.request('/repositories/%s' % repo['repo_id'], req, 'PUT')
> + self.assertEquals(200, resp.status)
> +
> + # Verify the template
> + res = json.loads(self.request('/repositories/fedora-fake').read())
> + verify_template(repo, res)
> +
>
> class HttpsRestTests(RestTests):
> """
More information about the Kimchi-devel
mailing list