Merge "Introduce tests for yaql structures"
This commit is contained in:
commit
47018f5bd9
|
@ -62,9 +62,8 @@ resources:
|
||||||
# certificates for those. We skip the tenant network since
|
# certificates for those. We skip the tenant network since
|
||||||
# we don't need a certificate for that.
|
# we don't need a certificate for that.
|
||||||
yaql:
|
yaql:
|
||||||
expression: list($.data.map.items().map($1[1])).distinct().where($ != tenant)
|
expression: list($.data.values().toSet().where($ != tenant))
|
||||||
data:
|
data:
|
||||||
map:
|
|
||||||
get_param: ServiceNetMap
|
get_param: ServiceNetMap
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
|
|
|
@ -15,3 +15,4 @@ testscenarios>=0.4 # Apache-2.0/BSD
|
||||||
testtools>=2.2.0 # MIT
|
testtools>=2.2.0 # MIT
|
||||||
mock>=2.0.0 # BSD
|
mock>=2.0.0 # BSD
|
||||||
oslotest>=3.2.0 # Apache-2.0
|
oslotest>=3.2.0 # Apache-2.0
|
||||||
|
yaql>=1.1.3 # Apache 2.0 License
|
||||||
|
|
|
@ -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…
Reference in New Issue