Merge "Introduce tests for yaql structures"
This commit is contained in:
commit
47018f5bd9
@ -62,10 +62,9 @@ resources:
|
||||
# certificates for those. We skip the tenant network since
|
||||
# we don't need a certificate for that.
|
||||
yaql:
|
||||
expression: list($.data.map.items().map($1[1])).distinct().where($ != tenant)
|
||||
expression: list($.data.values().toSet().where($ != tenant))
|
||||
data:
|
||||
map:
|
||||
get_param: ServiceNetMap
|
||||
get_param: ServiceNetMap
|
||||
|
||||
outputs:
|
||||
role_data:
|
||||
|
@ -15,3 +15,4 @@ testscenarios>=0.4 # Apache-2.0/BSD
|
||||
testtools>=2.2.0 # MIT
|
||||
mock>=2.0.0 # BSD
|
||||
oslotest>=3.2.0 # Apache-2.0
|
||||
yaql>=1.1.3 # Apache 2.0 License
|
||||
|
45
tripleo_heat_templates/tests/test_yaql.py
Normal file
45
tripleo_heat_templates/tests/test_yaql.py
Normal file
@ -0,0 +1,45 @@
|
||||
# Copyright 2018 Red Hat Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import io
|
||||
import tempfile
|
||||
|
||||
import mock
|
||||
from oslotest import base
|
||||
import six
|
||||
import testscenarios
|
||||
import yaml
|
||||
import yaql
|
||||
|
||||
|
||||
class YAQLTestCase(base.BaseTestCase):
|
||||
|
||||
def get_snippet(self, template, path):
|
||||
with open(template) as f:
|
||||
template = f.read()
|
||||
data = yaml.safe_load(template)
|
||||
for i in path.split('.'):
|
||||
data = data[i]
|
||||
return data['yaql']['expression']
|
||||
|
||||
def test_apache_networks(self):
|
||||
snippet = self.get_snippet(
|
||||
'puppet/services/apache.yaml',
|
||||
'resources.ApacheNetworks.properties.value')
|
||||
self.assertEqual(
|
||||
['service'],
|
||||
yaql.eval(
|
||||
snippet,
|
||||
{'data': {'nova': 'tenant', 'cinder': 'service',
|
||||
'glance': 'service'}}))
|
Loading…
x
Reference in New Issue
Block a user