使用unittest django测试存储在内存中的csv文件

时间:2015-08-11 09:48:04

标签: python django unit-testing csv testing

我在尝试写入csv文件时遇到错误。这是我的两个脚本:

Tasks.py

def get_data():

          customer = Customer.objects.all()
          csvfile = StringIO.StringIO()
          csvwriter = csv.writer(csvfile)

          for i in customers:
              csvwriter.writerow([str(i.phone_number)])

          return csvfile

在tests.py中:

    with open(get_data().getvalue(), 'rb') as myfile:
        data = [row for row in csv.reader(myfile.read().splitlines())]
        print data

这是错误:

IOError: [Errno 2] No such file or directory: '999999999\r\n'

凡' 999999999'应该写在文件中。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您的get_data()函数不会返回文件,而是返回StringIO个对象。你不需要open()它,你可以这样读它:

myfile = get_data().getvalue()
data = [row for row in csv.reader(myfile.splitlines())]
print data