mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 08:58:59 +00:00
204 lines
7.2 KiB
Python
204 lines
7.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
'''
|
|
:codeauthor: :email:`Rupesh Tare <rupesht@saltstack.com>`
|
|
'''
|
|
# Import Python libs
|
|
from __future__ import absolute_import
|
|
|
|
# Import Salt Testing Libs
|
|
from salttesting import TestCase, skipIf
|
|
from salttesting.mock import (
|
|
MagicMock,
|
|
patch,
|
|
NO_MOCK,
|
|
NO_MOCK_REASON
|
|
)
|
|
|
|
# Import Salt Libs
|
|
from salt.modules import glance
|
|
|
|
|
|
@skipIf(NO_MOCK, NO_MOCK_REASON)
|
|
class GlanceTestCase(TestCase):
|
|
'''
|
|
Test cases for salt.modules.glance
|
|
'''
|
|
def test_image_create(self):
|
|
'''
|
|
Test for Create an image (glance image-create)
|
|
'''
|
|
with patch.object(glance, '_auth', retur_value=True):
|
|
with patch.object(glance, 'image_list', return_value={'name': 'A'}):
|
|
self.assertEqual(glance.image_create(), {'A': {'name': 'A'}})
|
|
|
|
def test_image_delete(self):
|
|
'''
|
|
Test for Delete an image (glance image-delete)
|
|
'''
|
|
class MockObjects(object):
|
|
def __init__(self):
|
|
self.name = 'A'
|
|
self.id = 1
|
|
self.checksum = 'B'
|
|
self.container_format = 'C'
|
|
self.created_at = 'D'
|
|
self.deleted = 'E'
|
|
self.disk_format = 'F'
|
|
self.is_public = 'G'
|
|
self.min_disk = 'H'
|
|
self.min_ram = 'I'
|
|
self.owner = 'J'
|
|
self.protected = 'K'
|
|
self.size = 'L'
|
|
self.status = 'M'
|
|
self.updated_at = 'N'
|
|
|
|
class MockImages(object):
|
|
def list(self):
|
|
return [MockObjects()]
|
|
|
|
def delete(self, key):
|
|
return
|
|
|
|
class MockClient(object):
|
|
def __init__(self):
|
|
self.images = MockImages()
|
|
|
|
mock_lst = MagicMock(return_value=MockClient())
|
|
with patch.object(glance, '_auth', mock_lst):
|
|
self.assertEqual(glance.image_delete(id=1, name='A', profile='B'),
|
|
'Deleted image with ID 1 (A)')
|
|
|
|
with patch.object(glance, '_auth', return_value=True):
|
|
self.assertEqual(glance.image_delete(),
|
|
{'Error': 'Unable to resolve image id'})
|
|
|
|
def test_image_show(self):
|
|
'''
|
|
Test to return details about a specific image (glance image-show)
|
|
'''
|
|
with patch.object(glance, '_auth', return_value=True):
|
|
self.assertEqual(glance.image_show(),
|
|
{'Error': 'Unable to resolve image id'})
|
|
|
|
class MockObjects(object):
|
|
def __init__(self):
|
|
self.name = 'A'
|
|
self.id = 1
|
|
self.checksum = 'B'
|
|
self.container_format = 'C'
|
|
self.created_at = 'D'
|
|
self.deleted = 'E'
|
|
self.disk_format = 'F'
|
|
self.is_public = 'G'
|
|
self.min_disk = 'H'
|
|
self.min_ram = 'I'
|
|
self.owner = 'J'
|
|
self.protected = 'K'
|
|
self.size = 'L'
|
|
self.status = 'M'
|
|
self.updated_at = 'N'
|
|
|
|
class MockImages(object):
|
|
def list(self):
|
|
return [MockObjects()]
|
|
|
|
def get(self, key):
|
|
return MockObjects()
|
|
|
|
class MockClient(object):
|
|
def __init__(self):
|
|
self.images = MockImages()
|
|
|
|
mock_lst = MagicMock(return_value=MockClient())
|
|
with patch.object(glance, '_auth', mock_lst):
|
|
self.assertDictEqual(glance.image_show(name='A', profile='B'),
|
|
{'A': {'status': 'M',
|
|
'deleted': 'E',
|
|
'container_format': 'C',
|
|
'min_ram': 'I',
|
|
'updated_at': 'N',
|
|
'owner': 'J',
|
|
'min_disk': 'H',
|
|
'is_public': 'G',
|
|
'id': 1,
|
|
'size': 'L',
|
|
'name': 'A',
|
|
'checksum': 'B',
|
|
'created_at': 'D',
|
|
'disk_format': 'F',
|
|
'protected': 'K'}})
|
|
|
|
def test_image_list(self):
|
|
'''
|
|
Test to return a list of available images (glance image-list)
|
|
'''
|
|
class MockObjects(object):
|
|
def __init__(self):
|
|
self.name = 'A'
|
|
self.id = 1
|
|
self.checksum = 'B'
|
|
self.container_format = 'C'
|
|
self.created_at = 'D'
|
|
self.deleted = 'E'
|
|
self.disk_format = 'F'
|
|
self.is_public = 'G'
|
|
self.min_disk = 'H'
|
|
self.min_ram = 'I'
|
|
self.owner = 'J'
|
|
self.protected = 'K'
|
|
self.size = 'L'
|
|
self.status = 'M'
|
|
self.updated_at = 'N'
|
|
|
|
class MockImages(object):
|
|
def list(self):
|
|
return [MockObjects()]
|
|
|
|
def get(self, key):
|
|
return MockObjects()
|
|
|
|
class MockClient(object):
|
|
def __init__(self):
|
|
self.images = MockImages()
|
|
|
|
mock_lst = MagicMock(return_value=MockClient())
|
|
with patch.object(glance, '_auth', mock_lst):
|
|
self.assertDictEqual(glance.image_list(id=1, profile='B'),
|
|
{'checksum': 'B',
|
|
'container_format': 'C',
|
|
'created_at': 'D',
|
|
'deleted': 'E',
|
|
'disk_format': 'F',
|
|
'id': 1,
|
|
'is_public': 'G',
|
|
'min_disk': 'H',
|
|
'min_ram': 'I',
|
|
'name': 'A',
|
|
'owner': 'J',
|
|
'protected': 'K',
|
|
'size': 'L',
|
|
'status': 'M',
|
|
'updated_at': 'N'})
|
|
self.assertDictEqual(glance.image_list(),
|
|
{'A':
|
|
{'checksum': 'B',
|
|
'container_format': 'C',
|
|
'created_at': 'D',
|
|
'deleted': 'E',
|
|
'disk_format': 'F',
|
|
'id': 1,
|
|
'is_public': 'G',
|
|
'min_disk': 'H',
|
|
'min_ram': 'I',
|
|
'name': 'A',
|
|
'owner': 'J',
|
|
'protected': 'K',
|
|
'size': 'L',
|
|
'status': 'M',
|
|
'updated_at': 'N'}})
|
|
|
|
if __name__ == '__main__':
|
|
from integration import run_tests
|
|
run_tests(GlanceTestCase, needs_daemon=False)
|