[Kimchi-devel] [PATCH][Kimchi 6/6] Update tests

Paulo Ricardo Paz Vital pvital at linux.vnet.ibm.com
Wed Mar 23 14:14:48 UTC 2016



On 03/22/2016 04:20 PM, Ramon Medeiros wrote:
> Update all tests to use source_media instead of disks and cdrom
> ---
>  tests/test_authorization.py |  4 +--
>  tests/test_livemigration.py |  7 +++--
>  tests/test_mockmodel.py     | 14 ++++-----
>  tests/test_model.py         | 69 +++++++++++++++++++++++++++------------------
>  tests/test_rest.py          | 32 +++++++++------------
>  tests/test_template.py      | 39 ++++++++++---------------
>  tests/test_vmtemplate.py    | 24 ++++++++--------
>  7 files changed, 96 insertions(+), 93 deletions(-)
> 
> diff --git a/tests/test_authorization.py b/tests/test_authorization.py
> index d88f763..7cf8da2 100644
> --- a/tests/test_authorization.py
> +++ b/tests/test_authorization.py
> @@ -91,7 +91,7 @@ class AuthorizationTests(unittest.TestCase):
>          # but he can get and create a new one
>          resp = self.request('/plugins/kimchi/templates', '{}', 'GET')
>          self.assertEquals(403, resp.status)
> -        req = json.dumps({'name': 'test', 'cdrom': fake_iso})
> +        req = json.dumps({'name': 'test', 'source_media': fake_iso})
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(403, resp.status)
>          resp = self.request('/plugins/kimchi/templates/test', '{}', 'PUT')
> @@ -100,7 +100,7 @@ class AuthorizationTests(unittest.TestCase):
>          self.assertEquals(403, resp.status)
> 
>          # Non-root users can only get vms authorized to them
> -        model.templates_create({'name': u'test', 'cdrom': fake_iso})
> +        model.templates_create({'name': u'test', 'source_media': fake_iso})
> 
>          task_info = model.vms_create({
>              'name': u'test-me',
> diff --git a/tests/test_livemigration.py b/tests/test_livemigration.py
> index aa8d1bd..69407dc 100644
> --- a/tests/test_livemigration.py
> +++ b/tests/test_livemigration.py
> @@ -97,12 +97,13 @@ class LiveMigrationTests(unittest.TestCase):
>          )
>          params = {'name': u'template_test_vm_migrate',
>                    'disks': [],
> -                  'cdrom': UBUNTU_ISO,
> -                  'memory': {'current': 2048, 'maxmemory': 4096 << 10}}
> +                  'source_media': UBUNTU_ISO,
> +                  'memory': 2048,
> +                  'max_memory': 4096 << 10}

You modified the memory parameter here and it's wrong, I guess. See the
next modification.

>          self.inst.templates_create(params)
>          params = {'name': u'template_test_vm_migrate_nonshared',
>                    'disks': [{'name': 'test_vm_migrate.img', 'size': 1}],
> -                  'cdrom': UBUNTU_ISO,
> +                  'source_media': UBUNTU_ISO,
>                    'memory': {'current': 2048, 'maxmemory': 4096*1024}}
>          self.inst.templates_create(params)
> 
> diff --git a/tests/test_mockmodel.py b/tests/test_mockmodel.py
> index 0668191..9a0ba74 100644
> --- a/tests/test_mockmodel.py
> +++ b/tests/test_mockmodel.py
> @@ -30,6 +30,7 @@ from wok.exception import InvalidOperation
>  from wok.plugins.kimchi import mockmodel
>  from wok.plugins.kimchi.osinfo import get_template_default
> 
> +import iso_gen
> 
>  test_server = None
>  model = None
> @@ -50,8 +51,7 @@ def setUpModule():
>      test_server = run_server(host, port, ssl_port, test_mode=True,
>                               model=model)
>      fake_iso = '/tmp/fake.iso'
> -    open(fake_iso, 'w').close()
> -
> +    iso_gen.construct_fake_iso(fake_iso, True, '12.04', 'ubuntu')
> 
>  def tearDown():
>      test_server.stop()
> @@ -65,7 +65,7 @@ class MockModelTests(unittest.TestCase):
> 
>      def test_screenshot_refresh(self):
>          # Create a VM
> -        req = json.dumps({'name': 'test', 'cdrom': fake_iso})
> +        req = json.dumps({'name': 'test', 'source_media': fake_iso})
>          request(host, ssl_port, '/plugins/kimchi/templates', req, 'POST')
>          req = json.dumps({'name': 'test-vm',
>                            'template': '/plugins/kimchi/templates/test'})
> @@ -95,7 +95,7 @@ class MockModelTests(unittest.TestCase):
>                            resp.getheader('last-modified'))
> 
>      def test_vm_list_sorted(self):
> -        req = json.dumps({'name': 'test', 'cdrom': fake_iso})
> +        req = json.dumps({'name': 'test', 'source_media': fake_iso})
>          request(host, ssl_port, '/plugins/kimchi/templates', req, 'POST')
> 
>          def add_vm(name):
> @@ -115,7 +115,7 @@ class MockModelTests(unittest.TestCase):
> 
>      def test_memory_window_changes(self):
>          model.templates_create({'name': u'test',
> -                                'cdrom': fake_iso})
> +                                'source_media': fake_iso})
>          task = model.vms_create({'name': u'test-vm',
>                                   'template': '/plugins/kimchi/templates/test'})
>          wait_task(model.task_lookup, task['id'])
> @@ -127,7 +127,7 @@ class MockModelTests(unittest.TestCase):
> 
>      def test_hotplug_3D_card(self):
>          model.templates_create({'name': u'test',
> -                                'cdrom': fake_iso})
> +                                'source_media': fake_iso})
>          task = model.vms_create({'name': u'test-vm',
>                                   'template': '/plugins/kimchi/templates/test'})
>          wait_task(model.task_lookup, task['id'])
> @@ -147,7 +147,7 @@ class MockModelTests(unittest.TestCase):
> 
>      def test_vm_info(self):
>          model.templates_create({'name': u'test',
> -                                'cdrom': fake_iso})
> +                                'source_media': fake_iso})
>          task = model.vms_create({'name': u'test-vm',
>                                   'template': '/plugins/kimchi/templates/test'})
>          wait_task(model.task_lookup, task['id'])
> diff --git a/tests/test_model.py b/tests/test_model.py
> index b461172..761da3c 100644
> --- a/tests/test_model.py
> +++ b/tests/test_model.py
> @@ -140,7 +140,8 @@ class ModelTests(unittest.TestCase):
>              params = {'name': 'test', 'disks':
>                        [{'base': vol['path'], 'size': 1, 'pool': {
>                            'name': '/plugins/kimchi/storagepools/default'}}],
> -                      'cdrom': UBUNTU_ISO}
> +                      'source_media': UBUNTU_ISO}
> +
>              inst.templates_create(params)
>              rollback.prependDefer(inst.template_delete, 'test')
> 
> @@ -162,15 +163,21 @@ class ModelTests(unittest.TestCase):
> 
>              self.assertRaises(InvalidOperation, inst.vmsnapshots_create,
>                                u'kimchi-vm')
> -
> -            inst.vm_poweroff(u'kimchi-vm')
> -            vm = inst.vm_lookup(u'kimchi-vm')
> +            inst.vm_poweroff("kimchi-vm")
> +            vm = inst.vm_lookup("kimchi-vm")

All other references to the VM name has the 'u' mark. Why did you
removed here?

> 
>              empty_snap = inst.currentvmsnapshot_lookup(u'kimchi-vm')
>              self.assertEquals({}, empty_snap)
> 
>              # this snapshot should be deleted when its VM is deleted
>              params = {'name': u'mysnap'}
> +
> +            # turnoff vm before snapshot
> +            if inst.vm_lookup(u'kimchi-vm')['state'] == "running":
> +                inst.vm_poweroff('kimchi-vm')
> +
> +            vm = inst.vm_lookup(u'kimchi-vm')
> +
>              task = inst.vmsnapshots_create(u'kimchi-vm', params)
>              inst.task_wait(task['id'])
>              task = inst.task_lookup(task['id'])
> @@ -179,6 +186,7 @@ class ModelTests(unittest.TestCase):
>              self.assertRaises(NotFoundError, inst.vmsnapshot_lookup,
>                                u'kimchi-vm', u'foobar')
> 
> +
>              snap = inst.vmsnapshot_lookup(u'kimchi-vm', params['name'])
>              self.assertTrue(int(time.time()) >= int(snap['created']))
>              self.assertEquals(vm['state'], snap['state'])
> @@ -207,6 +215,10 @@ class ModelTests(unittest.TestCase):
>              current_snap = inst.currentvmsnapshot_lookup(u'kimchi-vm')
>              self.assertEquals(snap, current_snap)
> 
> +            # "kimchi-vm-new" exists: remove it
> +            if "kimchi-vm-new" in inst.vms_get_list():
> +                inst.vm_delete("kimchi-vm-new")
> +

This block will not break the rollback?
I guess you are modifying the live-cycle of a VM removing it here.

>              # update vm name
>              inst.vm_update('kimchi-vm', {'name': u'kimchi-vm-new'})
> 
> @@ -216,7 +228,6 @@ class ModelTests(unittest.TestCase):
>              # snapshot revert to the first created vm
>              result = inst.vmsnapshot_revert(u'kimchi-vm-new', params['name'])
>              self.assertEquals(result, [u'kimchi-vm', snap['name']])
> -
>              vm = inst.vm_lookup(u'kimchi-vm')
>              self.assertEquals(vm['state'], snap['state'])
> 
> @@ -259,22 +270,25 @@ class ModelTests(unittest.TestCase):
>                        'capacity': 1073741824,  # 1 GiB
>                        'allocation': 1048576,  # 1 MiB
>                        'format': 'qcow2'}
> -            task_id = inst.storagevolumes_create('default', params)['id']
> +
>              rollback.prependDefer(inst.storagevolume_delete, 'default', vol)
> -            inst.task_wait(task_id)
> -            self.assertEquals('finished', inst.task_lookup(task_id)['status'])
> +            if "base-vol.img" not in inst.storagevolumes_get_list("default"):
> +                task_id = inst.storagevolumes_create('default', params)['id']
> +                inst.task_wait(task_id)
> +                self.assertEquals('finished', inst.task_lookup(task_id)['status'])
>              vol_path = inst.storagevolume_lookup('default', vol)['path']
> 
>              # Create template based on IMG file
> -            tmpl_name = "img-tmpl"
>              pool_uri = "/plugins/kimchi/storagepools/default"
> +            tmpl_name = "img-tmpl"
>              tmpl_info = {"cpu_info": {"vcpus": 1}, "name": tmpl_name,
>                           "graphics": {"type": "vnc", "listen": "127.0.0.1"},
>                           "networks": ["default"], "memory": {'current': 1024},
>                           "folder": [], "icon": "images/icon-vm.png",
>                           "cdrom": "", "os_distro": "unknown",
>                           "os_version": "unknown",
> -                         "disks": [{"base": vol_path, "size": 10,
> +                         "source_media": vol_path,
> +                         "disks": [{"size": 10,
>                                      "format": "qcow2",
>                                      "pool": {"name": pool_uri}}]}
> 
> @@ -299,7 +313,7 @@ class ModelTests(unittest.TestCase):
>      @unittest.skipUnless(utils.running_as_root(), 'Must be run as root')
>      def test_vm_graphics(self):
>          inst = model.Model(objstore_loc=self.tmp_store)
> -        params = {'name': 'test', 'disks': [], 'cdrom': UBUNTU_ISO}
> +        params = {'name': 'test', 'disks': [], 'source_media': UBUNTU_ISO}
>          inst.templates_create(params)
>          with RollbackContext() as rollback:
>              params = {'name': 'kimchi-vnc',
> @@ -329,7 +343,7 @@ class ModelTests(unittest.TestCase):
>      @unittest.skipUnless(utils.running_as_root(), "Must be run as root")
>      def test_vm_serial(self):
>          inst = model.Model(objstore_loc=self.tmp_store)
> -        params = {'name': 'test', 'disks': [], 'cdrom': UBUNTU_ISO}
> +        params = {'name': 'test', 'disks': [], 'source_media': UBUNTU_ISO}
>          inst.templates_create(params)
>          with RollbackContext() as rollback:
>              params = {'name': 'kimchi-serial',
> @@ -350,7 +364,7 @@ class ModelTests(unittest.TestCase):
>      def test_vm_ifaces(self):
>          inst = model.Model(objstore_loc=self.tmp_store)
>          with RollbackContext() as rollback:
> -            params = {'name': 'test', 'disks': [], 'cdrom': UBUNTU_ISO}
> +            params = {'name': 'test', 'disks': [], 'source_media': UBUNTU_ISO}
>              inst.templates_create(params)
>              rollback.prependDefer(inst.template_delete, 'test')
> 
> @@ -466,7 +480,7 @@ class ModelTests(unittest.TestCase):
>              inst.task_wait(task_id)
> 
>              vm_name = 'kimchi-cdrom'
> -            params = {'name': 'test', 'disks': [], 'cdrom': UBUNTU_ISO}
> +            params = {'name': 'test','disks':[],  'source_media': UBUNTU_ISO}
>              inst.templates_create(params)
>              rollback.prependDefer(inst.template_delete, 'test')
>              params = {'name': vm_name,
> @@ -510,7 +524,7 @@ class ModelTests(unittest.TestCase):
> 
>              vm_name = 'kimchi-ide-bus-vm'
>              params = {'name': 'old_distro_template', 'disks': [],
> -                      'cdrom': old_distro_iso}
> +                      'source_media': old_distro_iso}
>              inst.templates_create(params)
>              rollback.prependDefer(inst.template_delete, 'old_distro_template')
>              params = {
> @@ -535,7 +549,7 @@ class ModelTests(unittest.TestCase):
>          inst = model.Model(objstore_loc=self.tmp_store)
>          with RollbackContext() as rollback:
>              vm_name = 'kimchi-cdrom'
> -            params = {'name': 'test', 'disks': [], 'cdrom': UBUNTU_ISO}
> +            params = {'name': 'test',"disks":[], 'source_media': UBUNTU_ISO}
>              inst.templates_create(params)
>              rollback.prependDefer(inst.template_delete, 'test')
>              params = {'name': vm_name,
> @@ -626,7 +640,8 @@ class ModelTests(unittest.TestCase):
>          with RollbackContext() as rollback:
>              params = {'name': 'test', 'disks': [{'size': 1, 'pool': {
>                  'name': '/plugins/kimchi/storagepools/default'}}],
> -                'cdrom': UBUNTU_ISO}
> +                'source_media': UBUNTU_ISO}
> +
>              inst.templates_create(params)
>              rollback.prependDefer(inst.template_delete, 'test')
> 
> @@ -685,7 +700,7 @@ class ModelTests(unittest.TestCase):
> 
>              params = {'name': 'test', 'disks': [{'size': 1, 'pool': {
>                  'name': '/plugins/kimchi/storagepools/default'}}],
> -                'cdrom': UBUNTU_ISO}
> +                'source_media': UBUNTU_ISO}
>              inst.templates_create(params)
>              rollback.prependDefer(inst.template_delete, 'test')
> 
> @@ -713,7 +728,8 @@ class ModelTests(unittest.TestCase):
>              params = {'name': 'test', 'disks': [{
>                  'size': 1, 'format': user_vol,
>                  'pool': {'name': '/plugins/kimchi/storagepools/default'}}],
> -                'cdrom': UBUNTU_ISO}
> +                'source_media': UBUNTU_ISO}
> +
>              inst.templates_create(params)
>              rollback.prependDefer(inst.template_delete, 'test')
> 
> @@ -738,7 +754,7 @@ class ModelTests(unittest.TestCase):
> 
>              params = {'name': 'test', 'disks': [{'size': 1, 'pool': {
>                  'name': '/plugins/kimchi/storagepools/default'}}],
> -                'cdrom': UBUNTU_ISO}
> +                'source_media': UBUNTU_ISO}
>              inst.templates_create(params)
>              rollback.prependDefer(inst.template_delete, 'test')
> 
> @@ -758,7 +774,7 @@ class ModelTests(unittest.TestCase):
>          inst = model.Model(None, objstore_loc=self.tmp_store)
>          orig_params = {'name': 'test',
>                         'memory': {'current': 1024, 'maxmemory': 3072},
> -                       'cdrom': UBUNTU_ISO}
> +                       'source_media': UBUNTU_ISO}
>          inst.templates_create(orig_params)
> 
>          with RollbackContext() as rollback:
> @@ -795,9 +811,9 @@ class ModelTests(unittest.TestCase):
>          # only supports this format
>          orig_params = {'name': 'test', 'memory': {'current': 1024},
>                         'cpu_info': {'vcpus': 1},
> -                       'cdrom': UBUNTU_ISO,
>                         'disks': [{'size': 1, 'format': 'qcow2', 'pool': {
> -                           'name': '/plugins/kimchi/storagepools/default'}}]}
> +                           'name': '/plugins/kimchi/storagepools/default'}}],
> +                       'source_media': UBUNTU_ISO}
>          inst.templates_create(orig_params)
> 
>          with RollbackContext() as rollback:
> @@ -1033,7 +1049,7 @@ class ModelTests(unittest.TestCase):
>          inst = model.Model(objstore_loc=self.tmp_store)
> 
>          with RollbackContext() as rollback:
> -            params = {'name': u'test', 'disks': [], 'cdrom': UBUNTU_ISO}
> +            params = {'name': u'test', 'source_media': UBUNTU_ISO}
>              inst.templates_create(params)
>              rollback.prependDefer(inst.template_delete, 'test')
> 
> @@ -1059,7 +1075,7 @@ class ModelTests(unittest.TestCase):
>          inst = model.Model(objstore_loc=self.tmp_store)
> 
>          with RollbackContext() as rollback:
> -            params = {'name': 'test', 'disks': [], 'cdrom': UBUNTU_ISO}
> +            params = {'name': 'test', 'source_media': UBUNTU_ISO}
>              inst.templates_create(params)
>              rollback.prependDefer(inst.template_delete, 'test')
> 
> @@ -1130,8 +1146,7 @@ class ModelTests(unittest.TestCase):
>          with RollbackContext() as rollback:
>              params = {
>                  'name': 'test',
> -                'disks': [],
> -                'cdrom': UBUNTU_ISO,
> +                'source_media': UBUNTU_ISO,
>                  'domain': 'test',
>                  'arch': 'i686'
>              }
> diff --git a/tests/test_rest.py b/tests/test_rest.py
> index d0d2fcf..a76cbcb 100644
> --- a/tests/test_rest.py
> +++ b/tests/test_rest.py
> @@ -107,7 +107,7 @@ class RestTests(unittest.TestCase):
>          self.assertEquals(1, len(vms))
> 
>          # Create a template as a base for our VMs
> -        req = json.dumps({'name': 'test', 'cdrom': fake_iso})
> +        req = json.dumps({'name': 'test', 'source_media': fake_iso})
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> 
> @@ -134,7 +134,7 @@ class RestTests(unittest.TestCase):
>          self.assertEquals([], vm['groups'])
> 
>      def test_edit_vm(self):
> -        req = json.dumps({'name': 'test', 'cdrom': fake_iso})
> +        req = json.dumps({'name': 'test', 'source_media': fake_iso})
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> 
> @@ -291,9 +291,8 @@ class RestTests(unittest.TestCase):
> 
>      def test_vm_lifecycle(self):
>          # Create a Template
> -        req = json.dumps({'name': 'test', 'disks': DISKS,
> -                          'icon': 'plugins/kimchi/images/icon-debian.png',
> -                          'cdrom': fake_iso})
> +        req = json.dumps({'name': 'test', 'icon': 'plugins/kimchi/images/icon-debian.png',
> +                          'source_media': fake_iso,'disks': DISKS})
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> 
> @@ -518,7 +517,7 @@ class RestTests(unittest.TestCase):
> 
>      def test_vm_graphics(self):
>          # Create a Template
> -        req = json.dumps({'name': 'test', 'cdrom': fake_iso})
> +        req = json.dumps({'name': 'test', 'source_media': fake_iso})
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> 
> @@ -612,7 +611,7 @@ class RestTests(unittest.TestCase):
> 
>          with RollbackContext() as rollback:
>              # Create a template as a base for our VMs
> -            req = json.dumps({'name': 'test', 'cdrom': fake_iso})
> +            req = json.dumps({'name': 'test', 'source_media': fake_iso})
>              resp = self.request('/plugins/kimchi/templates', req, 'POST')
>              self.assertEquals(201, resp.status)
>              # Delete the template
> @@ -785,7 +784,7 @@ class RestTests(unittest.TestCase):
> 
>          with RollbackContext() as rollback:
>              # Create a template as a base for our VMs
> -            req = json.dumps({'name': 'test', 'cdrom': fake_iso})
> +            req = json.dumps({'name': 'test', 'source_media': fake_iso})
>              resp = self.request('/plugins/kimchi/templates', req, 'POST')
>              self.assertEquals(201, resp.status)
>              # Delete the template
> @@ -891,8 +890,7 @@ class RestTests(unittest.TestCase):
> 
>      def test_vm_customise_storage(self):
>          # Create a Template
> -        req = json.dumps({'name': 'test', 'cdrom': fake_iso,
> -                                          'disks': DISKS})
> +        req = json.dumps({'name': 'test', 'source_media': fake_iso, 'disks': DISKS})
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> 
> @@ -954,7 +952,7 @@ class RestTests(unittest.TestCase):
> 
>          # Create template fails because SCSI volume is missing
>          tmpl_params = {
> -            'name': 'test_fc_pool', 'cdrom': fake_iso, 'disks': [{'pool': {
> +            'name': 'test_fc_pool', 'source_media': fake_iso, 'disks': [{'pool': {
>                  'name': '/plugins/kimchi/storagepools/scsi_fc_pool'}}]}
> 
>          req = json.dumps(tmpl_params)
> @@ -998,7 +996,7 @@ class RestTests(unittest.TestCase):
> 
>      def test_unnamed_vms(self):
>          # Create a Template
> -        req = json.dumps({'name': 'test', 'cdrom': fake_iso})
> +        req = json.dumps({'name': 'test', 'source_media': fake_iso})
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> 
> @@ -1039,10 +1037,8 @@ class RestTests(unittest.TestCase):
> 
>          # Create a Template
>          mock_base = '/tmp/mock.img'
> -        open(mock_base, 'w').close()
> -        disks = copy.deepcopy(DISKS)
> -        disks[0]['base'] = mock_base
> -        req = json.dumps({'name': 'test', 'disks': disks})
> +        os.system("qemu-img create -f qcow2 %s 10M" % mock_base)
> +        req = json.dumps({'name': 'test', 'source_media': mock_base})
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> 
> @@ -1112,7 +1108,7 @@ class RestTests(unittest.TestCase):
>          # In real model os distro/version can be omitted
>          # as we will scan the iso
>          req = json.dumps({'name': 'test',
> -                          'cdrom': storagevolume['path'],
> +                          'source_media': storagevolume['path'],
>                            'os_distro': storagevolume['os_distro'],
>                            'os_version': storagevolume['os_version']})
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
> @@ -1150,7 +1146,7 @@ class RestTests(unittest.TestCase):
> 
>      def test_screenshot_refresh(self):
>          # Create a VM
> -        req = json.dumps({'name': 'test', 'cdrom': fake_iso})
> +        req = json.dumps({'name': 'test', 'source_media': fake_iso})
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          req = json.dumps({'name': 'test-vm',
>                            'template': '/plugins/kimchi/templates/test'})
> diff --git a/tests/test_template.py b/tests/test_template.py
> index fcb2e46..f7f6616 100644
> --- a/tests/test_template.py
> +++ b/tests/test_template.py
> @@ -17,7 +17,7 @@
>  # You should have received a copy of the GNU Lesser General Public
>  # License along with this library; if not, write to the Free Software
>  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
> -
> +import iso_gen
>  import json
>  import os
>  import psutil
> @@ -53,6 +53,7 @@ def setUpModule():
>      cherrypy_port = get_free_port('cherrypy_port')
>      test_server = run_server(host, port, ssl_port, test_mode=True,
>                               cherrypy_port=cherrypy_port, model=model)
> +    iso_gen.construct_fake_iso("/tmp/mock.iso", True, '14.04', 'ubuntu')
> 
> 
>  def tearDownModule():
> @@ -70,16 +71,16 @@ class TemplateTests(unittest.TestCase):
>          self.assertEquals(200, resp.status)
>          self.assertEquals(0, len(json.loads(resp.read())))
> 
> -        # Create a template without cdrom and disk specified fails with 400
> +        # Create a template without cdrom and disk specified fails with 500
>          t = {'name': 'test', 'os_distro': 'ImagineOS',
>               'os_version': '1.0', 'memory': {'current': 1024},
>               'cpu_info': {'vcpus': 1}}
>          req = json.dumps(t)
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
> -        self.assertEquals(400, resp.status)
> +        self.assertEquals(500, resp.status)
> 
>          # Create a template
> -        t = {'name': 'test', 'cdrom': '/tmp/mock.iso'}
> +        t = {'name': 'test', 'source_media': '/tmp/mock.iso'}
>          req = json.dumps(t)
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> @@ -117,22 +118,20 @@ class TemplateTests(unittest.TestCase):
>          self.assertEquals(204, resp.status)
> 
>          # Create a template with same name fails with 400
> -        req = json.dumps({'name': 'test', 'cdrom': '/tmp/mock.iso'})
> +        req = json.dumps({'name': 'test', 'source_media': '/tmp/mock.iso'})
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(400, resp.status)
> 
>          # Create an image based template
> -        open('/tmp/mock.img', 'w').close()
> -        t = {'name': 'test_img_template', 'disks': [{
> -            'base': '/tmp/mock.img', 'format': 'qcow2',
> -            'pool': {'name': DEFAULT_POOL}, 'size': 1}]}
> +        os.system("qemu-img create -f qcow2 %s 10G" % '/tmp/mock.img')
> +        t = {'name': 'test_img_template', 'source_media': '/tmp/mock.img'}
>          req = json.dumps(t)
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
>          os.remove('/tmp/mock.img')
> 
>          # Test disk format
> -        t = {'name': 'test-format', 'cdrom': '/tmp/mock.iso', 'disks': [{
> +        t = {'name': 'test-format', 'source_media': '/tmp/mock.iso', 'disks': [{
>               'index': 0, 'size': 10, 'format': 'vmdk', 'pool': {
>                   'name': DEFAULT_POOL}}]}
>          req = json.dumps(t)
> @@ -149,7 +148,7 @@ class TemplateTests(unittest.TestCase):
>          else:
>              max_mem = (psutil.TOTAL_PHYMEM >> 10 >> 10)
>          memory = max_mem + 1024
> -        t = {'name': 'test-maxmem', 'cdrom': '/tmp/mock.iso',
> +        t = {'name': 'test-maxmem', 'source_media': '/tmp/mock.iso',
>               'memory': {'current': memory}}
>          req = json.dumps(t)
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
> @@ -158,7 +157,7 @@ class TemplateTests(unittest.TestCase):
> 
>      def test_customized_tmpl(self):
>          # Create a template
> -        t = {'name': 'test', 'cdrom': '/tmp/mock.iso'}
> +        t = {'name': 'test', 'source_media': '/tmp/mock.iso'}
>          req = json.dumps(t)
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> @@ -328,7 +327,7 @@ class TemplateTests(unittest.TestCase):
> 
>      def test_customized_network(self):
>          # Create a template
> -        t = {'name': 'test', 'cdrom': '/tmp/mock.iso'}
> +        t = {'name': 'test', 'source_media': '/tmp/mock.iso'}
>          req = json.dumps(t)
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> @@ -364,7 +363,7 @@ class TemplateTests(unittest.TestCase):
> 
>      def test_customized_storagepool(self):
>          # Create a template
> -        t = {'name': 'test', 'cdrom': '/tmp/mock.iso'}
> +        t = {'name': 'test', 'source_media': '/tmp/mock.iso'}
>          req = json.dumps(t)
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> @@ -453,12 +452,8 @@ class TemplateTests(unittest.TestCase):
>          self.request(pool_uri + '/activate', '{}', 'POST')
> 
>          # Create a template using the custom network and pool
> -        t = {'name': 'test', 'cdrom': '/tmp/mock.iso',
> -             'networks': ['nat-network'],
> -             'disks': [{'pool': {
> -                 'name': '/plugins/kimchi/storagepools/dir-pool'},
> -                 'size': 2,
> -                 'format': 'qcow2'}]}
> +        t = {'name': 'test', 'source_media': '/tmp/mock.iso',
> +             'networks': ['nat-network']}
>          req = json.dumps(t)
>          resp = self.request('/plugins/kimchi/templates', req, 'POST')
>          self.assertEquals(201, resp.status)
> @@ -482,7 +477,3 @@ class TemplateTests(unittest.TestCase):
>          resp = self.request('/plugins/kimchi/storagepools/dir-pool', '{}',
>                              'DELETE')
>          self.assertEquals(400, resp.status)
> -
> -        # Verify the template
> -        res = json.loads(self.request('/plugins/kimchi/templates/test').read())
> -        self.assertEquals(res['invalid']['cdrom'], ['/tmp/mock.iso'])
> diff --git a/tests/test_vmtemplate.py b/tests/test_vmtemplate.py
> index eed58b0..844a827 100644
> --- a/tests/test_vmtemplate.py
> +++ b/tests/test_vmtemplate.py
> @@ -17,6 +17,7 @@
>  # License along with this library; if not, write to the Free Software
>  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
> 
> +import iso_gen
>  import os
>  import psutil
>  import unittest
> @@ -36,8 +37,7 @@ DISKS = [{'size': 10, 'format': 'raw', 'index': 0, 'pool': {'name':
>  class VMTemplateTests(unittest.TestCase):
>      def setUp(self):
>          self.iso = '/tmp/mock.iso'
> -        open(self.iso, 'w').close()
> -
> +        iso_gen.construct_fake_iso(self.iso, True, '12.04', 'ubuntu')
>      def tearDown(self):
>          os.unlink(self.iso)
> 
> @@ -45,22 +45,22 @@ class VMTemplateTests(unittest.TestCase):
>          disk_bus = get_template_default('old', 'disk_bus')
>          memory = get_template_default('old', 'memory')
>          nic_model = get_template_default('old', 'nic_model')
> -        fields = (('name', 'test'), ('cdrom', self.iso),
> +        fields = (('name', 'test'), ('source_media', self.iso),
>                    ('os_distro', 'unknown'), ('os_version', 'unknown'),
>                    ('cpu_info', {'vcpus': 1, 'maxvcpus': 1}),
>                    ('memory', memory), ('networks', ['default']),
>                    ('disk_bus', disk_bus), ('nic_model', nic_model),
>                    ('graphics', {'type': 'vnc', 'listen': '127.0.0.1'}))
> 
> -        args = {'name': 'test', 'cdrom': self.iso}
> +        args = {'name': 'test', 'source_media': self.iso}
>          t = VMTemplate(args)
>          for name, val in fields:
>              self.assertEquals(val, t.info.get(name))
> 
>      def test_construct_overrides(self):
>          graphics = {'type': 'spice', 'listen': '127.0.0.1'}
> -        args = {'name': 'test', 'disks': DISKS,
> -                'graphics': graphics, "cdrom": self.iso}
> +        args = {'name': 'test', 'graphics': graphics, 'disks': DISKS, 
> +                'source_media': self.iso}
>          t = VMTemplate(args)
>          self.assertEquals(2, len(t.info['disks']))
>          self.assertEquals(graphics, t.info['graphics'])
> @@ -68,8 +68,8 @@ class VMTemplateTests(unittest.TestCase):
>      def test_specified_graphics(self):
>          # Test specified listen
>          graphics = {'type': 'vnc', 'listen': '127.0.0.1'}
> -        args = {'name': 'test', 'disks': DISKS,
> -                'graphics': graphics, 'cdrom': self.iso}
> +        args = {'name': 'test', 'graphics': graphics, 'disks': DISKS,
> +                'source_media': self.iso}
>          t = VMTemplate(args)
>          self.assertEquals(graphics, t.info['graphics'])
> 
> @@ -89,7 +89,7 @@ class VMTemplateTests(unittest.TestCase):
>      def test_to_xml(self):
>          graphics = {'type': 'spice', 'listen': '127.0.0.1'}
>          vm_uuid = str(uuid.uuid4()).replace('-', '')
> -        t = VMTemplate({'name': 'test-template', 'cdrom': self.iso})
> +        t = VMTemplate({'name': 'test-template', 'source_media': self.iso})
>          xml = t.to_vm_xml('test-vm', vm_uuid, graphics=graphics)
>          self.assertEquals(vm_uuid, xpath_get_text(xml, "/domain/uuid")[0])
>          self.assertEquals('test-vm', xpath_get_text(xml, "/domain/name")[0])
> @@ -108,7 +108,7 @@ class VMTemplateTests(unittest.TestCase):
>              host_memory = psutil.virtual_memory().total >> 10
>          else:
>              host_memory = psutil.TOTAL_PHYMEM >> 10
> -        t = VMTemplate({'name': 'test-template', 'cdrom': self.iso,
> +        t = VMTemplate({'name': 'test-template', 'source_media': self.iso,
>                          'memory': {'current': (host_memory >> 10) - 512}})
>          try:
>              xml = t.to_vm_xml('test-vm', vm_uuid, graphics=graphics)
> @@ -125,12 +125,12 @@ class VMTemplateTests(unittest.TestCase):
>          args = {'name': 'test', 'os_distro': 'opensuse', 'os_version': '12.3',
>                  'cpu_info': {'vcpus': 2, 'maxvcpus': 4},
>                  'memory': {'current': 2048, 'maxmemory': 3072},
> -                'networks': ['foo'], 'cdrom': self.iso, 'graphics': graphics}
> +                'networks': ['foo'], 'source_media': self.iso, 'graphics': graphics}
>          t = VMTemplate(args)
>          self.assertEquals(2, t.info.get('cpu_info', {}).get('vcpus'))
>          self.assertEquals(4, t.info.get('cpu_info', {}).get('maxvcpus'))
>          self.assertEquals(2048, t.info.get('memory').get('current'))
>          self.assertEquals(3072, t.info.get('memory').get('maxmemory'))
>          self.assertEquals(['foo'], t.info.get('networks'))
> -        self.assertEquals(self.iso, t.info.get('cdrom'))
> +        self.assertEquals(self.iso, t.info.get('source_media'))
>          self.assertEquals(graphics, t.info.get('graphics'))
> 




More information about the Kimchi-devel mailing list