bpo-27497: Add return value to csv.DictWriter.writeheader (GH-12306)
csv.DictWriter.writeheader() now returns the return value of the
underlying csv.Writer.writerow() method.
Patch contributed by Ashish Nitin Patil.
diff --git a/Lib/csv.py b/Lib/csv.py
index eeeedab..dc85077 100644
--- a/Lib/csv.py
+++ b/Lib/csv.py
@@ -140,7 +140,7 @@
def writeheader(self):
header = dict(zip(self.fieldnames, self.fieldnames))
- self.writerow(header)
+ return self.writerow(header)
def _dict_to_list(self, rowdict):
if self.extrasaction == "raise":
diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py
index 7a33313..a16d140 100644
--- a/Lib/test/test_csv.py
+++ b/Lib/test/test_csv.py
@@ -608,6 +608,12 @@
class TestDictFields(unittest.TestCase):
### "long" means the row is longer than the number of fieldnames
### "short" means there are fewer elements in the row than fieldnames
+ def test_writeheader_return_value(self):
+ with TemporaryFile("w+", newline='') as fileobj:
+ writer = csv.DictWriter(fileobj, fieldnames = ["f1", "f2", "f3"])
+ writeheader_return_value = writer.writeheader()
+ self.assertEqual(writeheader_return_value, 10)
+
def test_write_simple_dict(self):
with TemporaryFile("w+", newline='') as fileobj:
writer = csv.DictWriter(fileobj, fieldnames = ["f1", "f2", "f3"])