"""Kafka Serializer tests.""" import json import pytest from utils.kafka_serializer import JSONOrNoneSerializer @pytest.mark.parametrize('source, expected', [ ( { 'release_id': 55555, 'sale_start_date': '2018-05-14', }, json.dumps({ 'release_id': 55555, 'sale_start_date': '2018-05-14', }).encode('utf-8') ), # string value with unicode ( { 'release_id': 5555, 'release_name': 'Hello\u0014', 'vendor_catalog_number': 'Hello\u0019 Pizza\u001a', 'track_list': ['Hello\u0019 Pizza\u001a'] }, json.dumps({ 'release_id': 5555, 'release_name': 'Hello\u0014', 'vendor_catalog_number': 'Hello\u0019 Pizza\u001a', 'track_list': ['Hello\u0019 Pizza\u001a'] }).encode('utf-8') ), # None values in dict ( { 'release_id': 5555, 'not_for_distribution': None }, json.dumps({ 'release_id': 5555, 'not_for_distribution': None }).encode('utf-8') ), # None value ( None, None ), ]) def test_json_or_none_serializer(source, expected): """Test JSONOrNoneSerializer.""" obj = JSONOrNoneSerializer() result = obj(source, None) assert expected == result