Bagaimana cara menguji apakah file csv yang disimpan sudah benar

Saya memiliki fungsi kecil yang tidak mengembalikan apa pun selain membuat file csv. Saya ingin mengujinya kembali jika file csv keluaran yang diberikan berisi data yang tepat. Bagaimana saya bisa mencapainya?

fungsi

def create_csv(input, output)
    df = pd.read_csv(input, names=['number1', 'number2'])
    df.number1 *= 2
    df.number2 *= 5
    df.to_csv(output, index=False, header=False)

person maslak    schedule 02.02.2019    source sumber
comment
Cetak sebelum disimpan   -  person anky    schedule 02.02.2019
comment
Saya tidak ingin mencetaknya   -  person maslak    schedule 02.02.2019
comment
Apa yang Anda teruskan ke parameter input dan output?   -  person wwii    schedule 02.02.2019
comment
jalur file input dan output   -  person maslak    schedule 02.02.2019


Jawaban (2)


.to_csv dan .read_csv mengambil buffer serta jalur string. Dokumen untuk metode tersebut menyarankan penggunaan io.StringIO sebagai alternatif dari file terbuka atau jalur file.

Dalam pengujian unit, gunakan objek io.StringIO untuk lulus ke fungsi selama pengujian. Sesuatu seperti ini untuk pengujian fungsi sederhana

import unittest, io
class TestOne(unittest.TestCase):
    def setUp(self):
        s = '''3,4\n2,1\n5,6'''
        self.fakecsv = io.StringIO(s)
        self.fakefile = io.StringIO()
        self.result = '''6,20\n4,5\n10,30\n'''

    def test_create(self):
        create_csv(self.fakecsv, self.fakefile)
        self.fakefile.seek(0)
        self.assertEqual(self.fakefile.read(), self.result)
person wwii    schedule 02.02.2019

Uji bingkai data sebelum Anda menyimpannya ke file CSV. Skrip pengujian NumPy dan Fungsi pengujian Panda dapat membantu. Jika Anda merasa perlu menguji file CSV itu sendiri, Anda sebenarnya tidak mempercayai fungsi to_csv() pandas. Tindakan terbaiknya adalah meninjau pengujian unit panda, dan jika dirasa kurang lakukan pull request untuk mengubahnya dengan tes yang dirasa kurang.

person André C. Andersen    schedule 02.02.2019