def test_match_array_attribute(monkeypatch): monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.get_documents', mock_get_multiple_documents) monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.exists_file', mock_exists_file) monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.exists_dir', mock_exists_dir) monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.json_from_file', mock_multiple_json_from_file) from processor.comparison.interpreter import RuleInterpreter otherdata = { 'dbname': 'validator', 'snapshots': {}, 'container': 'mycontainer1' } children = ["{1}[1].location", "=", "'eastus'"] r_i = RuleInterpreter(children, **otherdata) val = r_i.get_value(r_i.lhs_operand) # assert type(val) is str # TODO Check again assert type(val) is type(None) # assert val == 'eastus' assert val is None children = [ "{1}['name' = 'mno-nonprod-shared-cet-eastus2-tab-as04'].location", "=", "'eastus'" ] r_i = RuleInterpreter(children, **otherdata) val = r_i.get_value(r_i.lhs_operand) assert type(val) is type(None) # assert val == 'eastus' children = [ "exist", "(", "{1}['name' = 'mno-nonprod-shared-cet-eastus2-tab-as04'].location", ")" ] r_i = RuleInterpreter(children, **otherdata) val = r_i.get_value(r_i.lhs_operand) assert type(val) is bool assert val == False
def test_get_value(monkeypatch): monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.get_documents', mock_get_documents) monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.exists_file', mock_exists_file) monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.exists_dir', mock_exists_dir) monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.json_from_file', mock_json_from_file) from processor.comparison.interpreter import RuleInterpreter otherdata = { 'dbname': 'validator', 'snapshots': {}, 'container': 'mycontainer1' } children = ["{1}.location", "+", "{1}.location", "=", "'eastus'"] r_i = RuleInterpreter(children, **otherdata) val = r_i.get_value(r_i.lhs_operand) assert type(val) is str assert val == 'eastus2eastus2'
def test_match_number(monkeypatch): monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.get_documents', mock_get_documents) monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.exists_file', mock_exists_file) monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.exists_dir', mock_exists_dir) monkeypatch.setattr( 'processor.comparison.comparisonantlr.rule_interpreter.json_from_file', mock_json_from_file) from processor.comparison.interpreter import RuleInterpreter children = ["count", "(", "{1}.firewall.rules[]", ")", "=", "22"] otherdata = { 'dbname': 'validator', 'snapshots': {}, 'container': 'mycontainer1' } r_i = RuleInterpreter(children, **otherdata) inval = ''.join(r_i.rhs_operand) m = re.match(r'(\d+)(\.\d+)?', inval, re.I) val = r_i.match_number(inval, m) assert type(val) is int children = ["count", "(", "{1}.firewall.rules[]", ")", "=", "22.45"] r_i = RuleInterpreter(children, **otherdata) inval = ''.join(r_i.rhs_operand) m = re.match(r'(\d+)(\.\d+)?', inval, re.I) val = r_i.match_number(inval, m) assert type(val) is float children = ["count", "(", "{1}.firewall.rules[]", ")", "=", "False"] r_i = RuleInterpreter(children, **otherdata) inval = ''.join(r_i.rhs_operand) m = re.match(r'true|false', inval, re.I) val = r_i.match_boolean(inval, m) assert type(val) is bool children = ["count", "(", "{1}.firewall.rules[]", ")", "=", "'eastus2'"] r_i = RuleInterpreter(children, **otherdata) inval = ''.join(r_i.rhs_operand) m = re.match(r'\'.*\'', inval, re.I) val = r_i.match_string(inval, m) assert type(val) is str children = [ "count", "(", "{1}.firewall.rules[]", ")", "=", "['eastus2', 'abc']" ] r_i = RuleInterpreter(children, **otherdata) inval = ''.join(r_i.rhs_operand) m = re.match(r'\[.*\]', inval, re.I) val = r_i.match_array_string(inval, m) assert type(val) is list children = [ "count", "(", "{1}.firewall.rules[]", ")", "=", "{'eastus2': 'abc'}" ] r_i = RuleInterpreter(children, **otherdata) inval = ''.join(r_i.rhs_operand) m = re.match(r'\{.*\}', inval, re.I) val = r_i.match_dictionary_string(inval, m) assert type(val) is dict # children = ["exist", "(", "{1}.location", ")", "=", "'eastus2'"] children = ["{1}.location", "=", "'eastus2'"] r_i = RuleInterpreter(children, **otherdata) inval = ''.join(r_i.lhs_operand) val = r_i.get_value(r_i.lhs_operand) assert type(val) is str assert val == 'eastus2'