# coding: utf-8 from decouple import Csv def test_csv(): csv = Csv() assert ['127.0.0.1', '.localhost', '.herokuapp.com'] == \ csv('127.0.0.1, .localhost, .herokuapp.com') csv = Csv(int) assert [1, 2, 3, 4, 5] == csv('1,2,3,4,5') csv = Csv(post_process=tuple) assert ('HTTP_X_FORWARDED_PROTO', 'https') == \ csv('HTTP_X_FORWARDED_PROTO, https') csv = Csv(cast=lambda s: s.upper(), delimiter='\t', strip=' %*') assert ['VIRTUAL_ENV', 'IMPORTANT STUFF', 'TRAILING SPACES'] == \ csv('%virtual_env%\t *important stuff*\t trailing spaces ') def test_csv_quoted_parse(): csv = Csv() assert ['foo', 'bar, baz', 'qux'] == csv(""" foo ,'bar, baz', 'qux'""") assert ['foo', 'bar, baz', 'qux'] == csv(''' foo ,"bar, baz", "qux"''') assert ['foo', "'bar, baz'", "'qux"] == csv(''' foo ,"'bar, baz'", "'qux"''') assert ['foo', '"bar, baz"', '"qux'] == csv(""" foo ,'"bar, baz"', '"qux'""")