从 unitest-1.4.9 中拿出来的 csv_reader.py 文件
import csv
class CSVReader:
"Read test data from csv file using an iterator"
def __init__(self, file):
try:
file = open(file)
except TypeError:
pass # "file" was already a pre-opened file-like object
self.file = file
self.reader = csv.reader(file)
def __next__(self):
try:
return next(self.reader)
except StopIteration:
# reuse file on EOF
self.file.seek(0, 0)
return next(self.reader)
class CSVDictReader:
"Read test data from csv file using an iterator"
def __init__(self, file):
try:
file = open(file)
except TypeError:
pass # "file" was already a pre-opened file-like object
self.file = file
self.reader = csv.DictReader(file)
def __next__(self):
try:
return next(self.reader)
except StopIteration:
# reuse file on EOF
self.file.seek(0, 0)
next(self.reader) # skip header line
return next(self.reader)
class LoadCSV:
def __init__(self, file):
try:
file = open(file)
except TypeError:
pass # "file" was already a pre-opened file-like object
self.file = file
self.reader = csv.DictReader(file)
def read_data(self):
data = []
for element in self.reader:
data.append(element)
return data