Module tests.CsvutilTest

CsvutilTest module.

Copyright ycookjp https://github.com/ycookjp/

Classes

class CsvutilTest (methodName='runTest')

csvutilモジュールのテストクラス。

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Ancestors

  • unittest.case.TestCase

Static methods

def setUpClass()

Hook method for setting up class fixture before running tests in the class.

def tearDownClass()

Hook method for deconstructing the class fixture after running all tests in the class.

Methods

def test__delete_line_break(self)

_delete_line_break関数をテストする。

def test_get_csv_rowdata(self)

get_csv_rowdata関数をテストする。

  1. 以下のCSVファイルを読み込む

    1,abc,def,あいう,かきく
    2,"abc","def","あいう","かきく"
    3,"abc,xyz","def
    uvw,","あいう,らりる","かきく""
    ""やゆよ,"
    4, "abc", ""def, "あいう", ""かきく
    5,"abc,xyz" ,"def
    uvw," "","あいう,らりゆ" ,"かきく""
    ""やゆよ," ""
    
    • カンマで区切らた文字がCSVの項目となること。
      1,abc,def,あいう,かきく\r\n
      => ['1', 'abc', 'def', 'あいう', 'かきく']
    • カンマで区切られた文字が「"」で始まり「"」で終わる場合は、 CSV項目の値は文字列の前後の「"」が削除されていること。
      2,"abc","def","あいう","かきく"\r\n
      => ['2', 'abc', 'def', 'あいう', 'かきく']
    • 「"」で囲まれた文字列の中に改行、「,」が含まれる場合は、それらを 含め「"」で囲まれた部分がCSV項目の値となること。
      …,"def\r\nuvw,",…
      => […, 'def\r\nuvw,', …]
    • カンマで区切られた文字列が「"」で始まり、「"」で終わる場合で、 その文字列の中に「""」が存在する場合は、「""」は「"」として CSV項目に取り込まれること。
      … ,"かきく""\r\n""やゆよ,"\r\n
      => […, 'かきく"\r\n"やゆよ,']
    • カンマの後ろが「"」以外の文字があり、その後に「"」で囲まれる文字列 があった場合は、「"」も含めてCSV項目に取り込まれること。
      …, "あいう", ""かきく\r\n
      => […, ' "あいう"', ' ""かきく']
    • カンマの後ろが「"」で囲まれているが、後ろの「"」の後に「"」以外の 文字列が存在する場合は、「"」を含めてCSV項目に取り込まれること。
      …,らりゆ" ,…
      => […, 'らりゆ" ', …]
    • カンマの後ろに以下の文字列が続く場合、

      • 「"」で囲まれており、その中に「""」、改行が存在する
      • その後ろが「"」、改行以外の文字である
      • さらにその後に「""」が続いて終わる

      文字列の前後の「"」が削除され、「""」が「"」に痴漢されたものが CSV項目の値となること。
      …,"かきく""\r\n""やゆよ," ""\r\n
      => […, 'かきく"\r\n"やゆよ," "']