#302: adds unit test and doc tidying.

This commit is contained in:
Romain Dorgueil
2019-06-01 09:32:22 +02:00
parent 94c5f1a45a
commit dee719f070
2 changed files with 19 additions and 16 deletions

View File

@ -54,16 +54,10 @@ class CsvHandler(FileHandler):
@use_context @use_context
class CsvReader(FileReader, CsvHandler): class CsvReader(FileReader, CsvHandler):
""" """
Reads a CSV and yield the values as dicts. Reads a CSV and yield the values.
""" """
skip = Option( skip = Option(int, default=0, __doc__="If set and greater than zero, the reader will skip this amount of lines.")
int,
default=0,
__doc__="""
If set and greater than zero, the reader will skip this amount of lines.
""",
)
@Method( @Method(
positional=False, positional=False,
@ -96,14 +90,7 @@ class CsvReader(FileReader, CsvHandler):
@use_context @use_context
class CsvWriter(FileWriter, CsvHandler): class CsvWriter(FileWriter, CsvHandler):
skip_header = Option(bool, default=False, __doc__="If true, the writer will not produce a file header.")
skip_header = Option(
bool,
default=False,
__doc__="""
If true, the writer will not produce a file header
""",
)
@Method( @Method(
__doc__=""" __doc__="""

View File

@ -89,6 +89,22 @@ class CsvWriterTest(Csv, WriterTest, TestCase):
assert self.readlines() == ("foo,bar", "a,b", "c,d") assert self.readlines() == ("foo,bar", "a,b", "c,d")
@incontext(skip_header=False)
def test_fields_with_headers(self, context):
context.set_input_fields(["foo", "bar"])
context.write_sync(("a", "b"), ("c", "d"))
context.stop()
assert self.readlines() == ("foo,bar", "a,b", "c,d")
@incontext(skip_header=True)
def test_fields_without_headers(self, context):
context.set_input_fields(["foo", "bar"])
context.write_sync(("a", "b"), ("c", "d"))
context.stop()
assert self.readlines() == ("a,b", "c,d")
@incontext() @incontext()
def test_fields_from_type(self, context): def test_fields_from_type(self, context):
context.set_input_type(namedtuple("Point", "x y")) context.set_input_type(namedtuple("Point", "x y"))