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_mismatch_non_str_key(self, log_mock): """ParserBase - Key Check, Mismatch; Non-String Key""" schema = { 'key': 'string' } record = { 100: 'test', 200: 'test' } assert_equal(ParserBase._key_check(record, schema), False) log_mock.assert_called_with('Found keys not expected in record: %s', '100, 200')
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_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_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_no_schema(self): """ParserBase - Key Check, No Schema""" assert_equal(ParserBase._key_check(None, {}), True)