Merge "Introduce tests for yaql structures"

This commit is contained in:
Zuul 2018-01-31 09:24:25 +00:00 committed by Gerrit Code Review
commit 47018f5bd9
3 changed files with 48 additions and 3 deletions

View File

@ -62,9 +62,8 @@ 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
outputs:

View File

@ -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

View 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'}}))