forked from cloud-custodian/cloud-custodian
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_lookup.py
91 lines (74 loc) · 2.74 KB
/
test_lookup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# Copyright 2019 Microsoft Corp
# Copyright The Cloud Custodian Authors.
# SPDX-License-Identifier: Apache-2.0
from .common import BaseTest
from c7n.lookup import Lookup
class LookupTest(BaseTest):
def test_lookup_type(self):
number_schema = {'type': 'number'}
lookup_default_number = Lookup.lookup_type(number_schema)
string_schema = {'type': 'string'}
lookup_default_string = Lookup.lookup_type(string_schema)
self.assertEqual(number_schema, lookup_default_number['oneOf'][1])
self.assertEqual(number_schema,
lookup_default_number['oneOf'][0]['oneOf'][0]
['properties']['default-value'])
self.assertEqual(string_schema, lookup_default_string['oneOf'][1])
self.assertEqual(string_schema,
lookup_default_string['oneOf'][0]['oneOf'][0]
['properties']['default-value'])
def test_extract_no_lookup(self):
source = 'mock_string_value'
value = Lookup.extract(source)
self.assertEqual(source, value)
def test_extract_lookup(self):
data = {
'field_level_1': {
'field_level_2': 'value_1'
}
}
source = {
'type': Lookup.RESOURCE_SOURCE,
'key': 'field_level_1.field_level_2',
'default-value': 'value_2'
}
value = Lookup.extract(source, data)
self.assertEqual(value, 'value_1')
def test_get_value_from_resource_value_exists(self):
resource = {
'field_level_1': {
'field_level_2': 'value_1'
}
}
source = {
'type': Lookup.RESOURCE_SOURCE,
'key': 'field_level_1.field_level_2',
'default-value': 'value_2'
}
value = Lookup.get_value_from_resource(source, resource)
self.assertEqual(value, 'value_1')
def test_get_value_from_resource_value_not_exists(self):
resource = {
'field_level_1': {
'field_level_2': None
}
}
source = {
'type': Lookup.RESOURCE_SOURCE,
'key': 'field_level_1.field_level_2',
'default-value': 'value_2'
}
value = Lookup.get_value_from_resource(source, resource)
self.assertEqual(value, 'value_2')
def test_get_value_from_resource_value_not_exists_exception(self):
resource = {
'field_level_1': {
'field_level_2': None
}
}
source = {
'type': Lookup.RESOURCE_SOURCE,
'key': 'field_level_1.field_level_2'
}
with self.assertRaises(Exception):
Lookup.get_value_from_resource(source, resource)