def test_key_check_nested_invalid(self, log_mock): """ParserBase - Key Check, Invalid Nested""" schema = {'key': 'string', 'nested': {'key_02': 'integer'}} record = {'key': 'value', 'nested': {'key_01': 'value'}} assert_equal(ParserBase._key_check(record, schema), False) log_mock.assert_any_call('Expected keys not found in record: %s', 'key_02')
def test_key_check_mismatch(self, log_mock): """ParserBase - Key Check, Mismatch""" schema = {'key': 'string'} record = {'not_key': 'test'} assert_equal(ParserBase._key_check(record, schema), False) log_mock.assert_called_with('Found keys not expected in record: %s', 'not_key')
def test_key_check_bad_envelope_subset(self, log_mock): """ParserBase - Key Check, Invalid Envelope Subset""" envelope_schema = {'env_key_01': 'string'} record = {'env_key_02': 'test'} assert_equal( ParserBase._key_check(record, envelope_schema, is_envelope=True), False) log_mock.assert_called_with('Missing keys in record envelope: %s', {'env_key_01'})
def test_key_check_debug(self, log_mock): """ParserBase - Key Check, Debug Failure""" schema = {'key': 'string', 'nested': {'key_02': 'integer'}} record = {'key': 'value', 'nested': {'key_01': 100}} with patch.object(parsers, 'LOGGER_DEBUG_ENABLED', True): assert_equal(ParserBase._key_check(record, schema), False) log_mock.assert_called_with( 'Nested key check failure. Schema:\n%s\nRecord:\n%s', json.dumps(schema, indent=2, sort_keys=True), json.dumps(record, indent=2, sort_keys=True))
def test_key_check_nested_loose(self): """ParserBase - Key Check, Loose Nested Schema""" schema = {'key': 'string', 'nested': {}} record = {'key': 'value', 'nested': {'key_01': 100}} assert_equal(ParserBase._key_check(record, schema), True)
def test_key_check_nested(self): """ParserBase - Key Check, Nested""" schema = {'key': 'string', 'nested': {'key_01': 'string'}} record = {'key': 'value', 'nested': {'key_01': 'value'}} assert_equal(ParserBase._key_check(record, schema), True)
def test_key_check_no_schema(self): """ParserBase - Key Check, No Schema""" assert_equal(ParserBase._key_check(None, {}), True)