def test_tocsv_appendcsv(): # exercise function table = (('foo', 'bar'), ('a', 1), ('b', 2), ('c', 2)) f = NamedTemporaryFile(delete=False) f.close() tocsv(table, f.name, encoding='ascii', lineterminator='\n') # check what it did with open(f.name, 'rb') as o: data = [b'foo,bar', b'a,1', b'b,2', b'c,2'] # don't forget final terminator expect = b'\n'.join(data) + b'\n' actual = o.read() eq_(expect, actual) # check appending table2 = (('foo', 'bar'), ('d', 7), ('e', 9), ('f', 1)) appendcsv(table2, f.name, encoding='ascii', lineterminator='\n') # check what it did with open(f.name, 'rb') as o: data = [b'foo,bar', b'a,1', b'b,2', b'c,2', b'd,7', b'e,9', b'f,1'] # don't forget final terminator expect = b'\n'.join(data) + b'\n' actual = o.read() eq_(expect, actual)
def test_appendcsv(): data = (u"name,id\n" u"Արամ Խաչատրյան,1\n" u"Johann Strauß,2\n" u"Вагиф Сәмәдоғлу,3\n" u"章子怡,4\n") fn = NamedTemporaryFile().name uf = io.open(fn, encoding='utf-8', mode='wt') uf.write(data) uf.close() tbl = ((u'name', u'id'), (u'ኃይሌ ገብረሥላሴ', 5), (u'ედუარდ შევარდნაძე', 6)) appendcsv(tbl, fn, encoding='utf-8', lineterminator='\n') expect = (u"name,id\n" u"Արամ Խաչատրյան,1\n" u"Johann Strauß,2\n" u"Вагиф Сәмәдоғлу,3\n" u"章子怡,4\n" u"ኃይሌ ገብረሥላሴ,5\n" u"ედუარდ შევარდნაძე,6\n") uf = io.open(fn, encoding='utf-8', mode='rt') actual = uf.read() eq_(expect, actual)
def test_tocsv_appendcsv_gz(): # exercise function table = (('foo', 'bar'), ('a', 1), ('b', 2), ('c', 2)) f = NamedTemporaryFile(delete=False) fn = f.name + '.gz' f.close() tocsv(table, fn, delimiter='\t') # check what it did o = gzip.open(fn, 'rb') try: actual = csv.reader(o, delimiter='\t') expect = [['foo', 'bar'], ['a', '1'], ['b', '2'], ['c', '2']] ieq(expect, actual) finally: o.close() # check appending table2 = (('foo', 'bar'), ('d', 7), ('e', 9), ('f', 1)) appendcsv(table2, fn, delimiter='\t') # check what it did o = gzip.open(fn, 'rb') try: actual = csv.reader(o, delimiter='\t') expect = [['foo', 'bar'], ['a', '1'], ['b', '2'], ['c', '2'], ['d', '7'], ['e', '9'], ['f', '1']] ieq(expect, actual) finally: o.close()
def test_tocsv_appendcsv(): # exercise function table = (('foo', 'bar'), ('a', 1), ('b', 2), ('c', 2)) f = NamedTemporaryFile(delete=False) tocsv(table, f.name, delimiter='\t') # check what it did with open(f.name, 'rb') as o: actual = csv.reader(o, delimiter='\t') expect = [['foo', 'bar'], ['a', '1'], ['b', '2'], ['c', '2']] ieq(expect, actual) # check appending table2 = (('foo', 'bar'), ('d', 7), ('e', 9), ('f', 1)) appendcsv(table2, f.name, delimiter='\t') # check what it did with open(f.name, 'rb') as o: actual = csv.reader(o, delimiter='\t') expect = [['foo', 'bar'], ['a', '1'], ['b', '2'], ['c', '2'], ['d', '7'], ['e', '9'], ['f', '1']] ieq(expect, actual) # check explicit no header table = (('foo', 'bar'), ('a', 1), ('b', 2), ('c', 2)) f = NamedTemporaryFile(delete=False) tocsv(table, f.name, delimiter='\t', write_header=False) # check what it did with open(f.name, 'rb') as o: actual = csv.reader(o, delimiter='\t') expect = [['a', '1'], ['b', '2'], ['c', '2']] ieq(expect, actual)
def test_appendcsv(): data = ( u"name,id\n" u"Արամ Խաչատրյան,1\n" u"Johann Strauß,2\n" u"Вагиф Сәмәдоғлу,3\n" u"章子怡,4\n" ) fn = NamedTemporaryFile().name uf = io.open(fn, encoding='utf-8', mode='wt') uf.write(data) uf.close() tbl = ((u'name', u'id'), (u'ኃይሌ ገብረሥላሴ', 5), (u'ედუარდ შევარდნაძე', 6)) appendcsv(tbl, fn, encoding='utf-8', lineterminator='\n') expect = ( u"name,id\n" u"Արամ Խաչատրյան,1\n" u"Johann Strauß,2\n" u"Вагиф Сәмәдоғлу,3\n" u"章子怡,4\n" u"ኃይሌ ገብረሥላሴ,5\n" u"ედუარდ შევარდნაძე,6\n" ) uf = io.open(fn, encoding='utf-8', mode='rt') actual = uf.read() eq_(expect, actual)
def test_tocsv_appendcsv_gz(): # exercise function table = (('foo', 'bar'), ('a', 1), ('b', 2), ('c', 2)) f = NamedTemporaryFile(delete=False) fn = f.name + '.gz' f.close() tocsv(table, fn, encoding='ascii', lineterminator='\n') # check what it did o = gzip.open(fn, 'rb') try: data = [b'foo,bar', b'a,1', b'b,2', b'c,2'] # don't forget final terminator expect = b'\n'.join(data) + b'\n' actual = o.read() eq_(expect, actual) finally: o.close() # check appending table2 = (('foo', 'bar'), ('d', 7), ('e', 9), ('f', 1)) appendcsv(table2, fn, encoding='ascii', lineterminator='\n') # check what it did o = gzip.open(fn, 'rb') try: data = [b'foo,bar', b'a,1', b'b,2', b'c,2', b'd,7', b'e,9', b'f,1'] # don't forget final terminator expect = b'\n'.join(data) + b'\n' actual = o.read() eq_(expect, actual) finally: o.close()
def test_stringsource(): table1 = (('foo', 'bar'), ('a', '1'), ('b', '2'), ('c', '2')) # test writing to a string buffer ss = StringSource() tocsv(table1, ss) expect = "foo,bar\r\na,1\r\nb,2\r\nc,2\r\n" actual = ss.getvalue() eq_(expect, actual) # test reading from a string buffer table2 = fromcsv(StringSource(actual)) ieq(table1, table2) ieq(table1, table2) # test appending appendcsv(table1, ss) actual = ss.getvalue() expect = "foo,bar\r\na,1\r\nb,2\r\nc,2\r\na,1\r\nb,2\r\nc,2\r\n" eq_(expect, actual)
def test_stringsource(): table1 = (("foo", "bar"), ("a", "1"), ("b", "2"), ("c", "2")) # test writing to a string buffer ss = StringSource() tocsv(table1, ss) expect = "foo,bar\r\na,1\r\nb,2\r\nc,2\r\n" actual = ss.getvalue() eq_(expect, actual) # test reading from a string buffer table2 = fromcsv(StringSource(actual)) ieq(table1, table2) ieq(table1, table2) # test appending appendcsv(table1, ss) actual = ss.getvalue() expect = "foo,bar\r\na,1\r\nb,2\r\nc,2\r\na,1\r\nb,2\r\nc,2\r\n" eq_(expect, actual)