def test_JSONColumn_sanitize_json_values_handles_list_of_str(monkeypatch): jc = columns.JSONColumn('test', False) def mock_sanitize_string(some_string): return some_string + ' sanitized' monkeypatch.setattr(jc, '_Column__sanitize_string', mock_sanitize_string) given_list = ['item1', 'item2'] actual_list = jc._sanitize_json_values(given_list) expect_list = ['item1 sanitized', 'item2 sanitized'] assert expect_list == actual_list
def test_JSONColumn_sanitize_json_values_handles_flat_dict(monkeypatch): jc = columns.JSONColumn('test', False) def mock_sanitize_string(some_string): return some_string + ' sanitized' monkeypatch.setattr(jc, '_Column__sanitize_string', mock_sanitize_string) given_dict = {'key1': 'val1', 'key2': 'val2'} actual_dict = jc._sanitize_json_values(given_dict) expect_dict = {'key1': 'val1 sanitized', 'key2': 'val2 sanitized'} assert expect_dict == actual_dict
def test_JSONColumn_sanitize_json_values_does_not_over_recurse(monkeypatch): jc = columns.JSONColumn('test', False) def mock_sanitize_string(some_string): return str(some_string) monkeypatch.setattr(jc, '_Column__sanitize_string', mock_sanitize_string) L = [] L.extend([L]) actual_list = jc._sanitize_json_values(L, recursion_limit=3) expect_list = [[['[[...]]']]] assert actual_list == expect_list
def test_JSONColumn_sanitize_json_values_handles_list_of_dict(monkeypatch): jc = columns.JSONColumn('test', False) def mock_sanitize_string(some_string): return some_string + ' sanitized' monkeypatch.setattr(jc, '_Column__sanitize_string', mock_sanitize_string) given_list = [ {'name': 'valuea', 'provider': 'valueb'}, {'name': 'aname', 'provider': 'aprovider'} ] actual_list = jc._sanitize_json_values(given_list) expect_list = [ {'name': 'valuea sanitized', 'provider': 'valueb sanitized'}, {'name': 'aname sanitized', 'provider': 'aprovider sanitized'} ] assert expect_list == actual_list
size=50, truncate=False), columns.StringColumn(name='license_version', required=True, size=25, truncate=False), columns.StringColumn(name='creator', required=False, size=2000, truncate=True), columns.URLColumn(name='creator_url', required=False, size=2000), columns.StringColumn(name='title', required=False, size=5000, truncate=True), columns.JSONColumn(name='meta_data', required=False), columns.JSONColumn(name='tags', required=False), columns.BooleanColumn(name='watermarked', required=False), columns.StringColumn(name='provider', required=False, size=80, truncate=False), columns.StringColumn(name='source', required=False, size=80, truncate=False) ] Image = namedtuple('Image', [c.NAME for c in _IMAGE_TSV_COLUMNS]) # Filter out tags that exactly match these terms. All terms should be
def test_JSONColumn_prepare_string_returns_json_string(monkeypatch): jc = columns.JSONColumn('test', False) D = {'test': 'dict'} actual_json = jc.prepare_string(D) expect_json = '{"test": "dict"}' assert actual_json == expect_json
def test_JSONColumn_prepare_string_nones_empty_dict(monkeypatch): jc = columns.JSONColumn('test', False) D = {} actual_json = jc.prepare_string(D) expect_json = None assert actual_json == expect_json