ranger/orm/tests/unit/rds/services/test_image_yaml.py
Chi Lo 84c23a4781 Associate tenants as memeber list to shared image
Change-Id: I297c9a9ec77a64b07b3ad6a8c59121c7381bfd97
2020-09-24 17:05:04 +00:00

82 lines
2.6 KiB
Python
Executable File

from mock import patch
import unittest
import yaml
from orm.services.resource_distributor.rds.services import yaml_image_builder as ImageBuild
json_input = {
'status': 'complete', 'name': 'Ubuntu', 'internal_id': 1,
'url': 'https://mirrors.it.att.com/images/image-name',
'disk_format': 'raw', 'min_ram': 0, 'enabled': 1,
'visibility': 'shared', 'owner': 'unknown',
'tags': ["abcd-efgh-ijkl-4567", "mnop-qrst-uvwx-0987"],
'regions': [{
'action': 'delete', 'image_internal_id': 1,
'type': 'single', 'name': 'North'
}, {
'action': 'create', 'image_internal_id': 1,
'type': 'single', 'name': 'North'
}],
'properties': {
'key_name': 'Key1', 'key_value': 'Key1.value',
'image_internal_id': 1
},
'protected': 1,
'customers': [
{
'customer_id': 'abcd-efgh-ijkl-4567', 'image_id': 1
},
{
'customer_id': 'opqr-stuv-wxyz-8901', 'image_id': 1
}],
'container_format': 'bare', 'min_disk': 2,
'id': '12345678901234567890123456789012'
}
region = {'action': 'delete', 'image_internal_id': 1, 'type': 'single',
'name': 'North'}
yaml_output = {
'description': 'yaml file for region - North',
'resources': {
'glance_image': {
'properties': {
'container_format': 'bare', 'disk_format': 'raw',
'visibility': 'shared',
'location': 'https://mirrors.it.att.com/images/image-name',
'active': True,
'min_disk': 2, 'min_ram': 0, 'name': 'Ubuntu', 'owner': 'unknown',
'protected': True,
'id': '12345678-9012-3456-7890-123456789012',
'tags': ['abcd-efgh-ijkl-4567', 'mnop-qrst-uvwx-0987'],
'members': ['abcd-efgh-ijkl-4567', 'opqr-stuv-wxyz-8901'],
'extra_properties': {
'key_name': 'Key1', 'key_value': 'Key1.value',
'image_internal_id': 1
}
},
'type': 'OS::Glance::WebImage'
}
},
'heat_template_version': '2015-1-1',
'outputs': {
'glance_image_id': {
'value': {
'get_resource': 'glance_image'
}
}
}
}
class CreateImage(unittest.TestCase):
"""class method image test."""
@patch.object(ImageBuild, 'conf')
def test_create_image(self, mock_conf):
self.maxDiff = None
mock_conf.yaml_configs.image_yaml.yaml_version = '2015-1-1'
response = ImageBuild.yamlbuilder(json_input, region)
self.assertEqual(yaml.safe_load(response), yaml_output)