Skip to content

Instantly share code, notes, and snippets.

@pypeach
Created May 1, 2018 08:05
Show Gist options
  • Save pypeach/53bbffc5d0036817d67f121f9a7a604d to your computer and use it in GitHub Desktop.
Save pypeach/53bbffc5d0036817d67f121f9a7a604d to your computer and use it in GitHub Desktop.
CSV読み込みテスト
# coding:utf-8
import unittest
from app.read_csv_file import ReadCsvFile
from sql import fruit
from test.unit_test_base import UnitTestBase
"""
CSVファイル読み込みを行うサンプルアプリケーションのテストです
"""
__author__ = "t.ebinuma"
__version__ = "1.0"
__date__ = "28 April 2018"
class ReadCsvFileTest(UnitTestBase):
def test_read_csv_file_001(self):
"""
SJISファイルの読み込み結果を検証するテストケースです
"""
# テーブルのレコードをクリアする
self.cleanup_table("fruit")
# ファイルが存在することをチェックする
self.assert_file_exists(ReadCsvFile().sjis_csv_file)
# 0バイトファイルでないことをチェックする
self.assert_file_not_empty(ReadCsvFile().sjis_csv_file)
# ファイルを読み込みテーブルに登録する
ReadCsvFile().read_shift_csv_file(ReadCsvFile().sjis_csv_file)
# テーブル登録結果を検証する
self.assertEqual(len(fruit.select([])), 2)
def test_read_csv_file_002(self):
"""
UTF-8ファイルの読み込み結果を検証するテストケースです
"""
# テーブルのレコードをクリアする
self.cleanup_table("fruit")
# ファイルが存在することをチェックする
self.assert_file_exists(ReadCsvFile().utf8_csv_file)
# 0バイトファイルでないことをチェックする
self.assert_file_not_empty(ReadCsvFile().utf8_csv_file)
# ファイルを読み込みテーブルに登録する
ReadCsvFile().read_csv_file(ReadCsvFile().utf8_csv_file)
# テーブル登録結果を検証する
self.assertEqual(len(fruit.select([])), 3)
def test_read_csv_file_003(self):
"""
UTF-8(BOM有)ファイルの読み込み結果を検証するテストケースです
"""
# テーブルのレコードをクリアする
self.cleanup_table("fruit")
# ファイルが存在することをチェックする
self.assert_file_exists(ReadCsvFile().utf8_bom_csv_file)
# 0バイトファイルでないことをチェックする
self.assert_file_not_empty(ReadCsvFile().utf8_bom_csv_file)
# ファイルを読み込みテーブルに登録する
ReadCsvFile().read_csv_file(ReadCsvFile().utf8_bom_csv_file)
# テーブル登録結果を検証する
self.assertEqual(len(fruit.select([])), 2)
def test_read_csv_file_004(self):
"""
ファイルの読み込み(異常系)を検証するテストケースです
存在しないファイルを指定した場合はメッセージを出力して終了する
"""
# ログファイルをクリアする
self.cleanup_log_file()
# テーブルのレコードをクリアする
self.cleanup_table("fruit")
# ファイルパスを作成する
csv_file_path = self.get_data_file_path('read_utf8_file2.csv')
# ファイルが存在しないことをチェックする
self.assert_file_not_exists(csv_file_path)
# ファイルを読み込みテーブルに登録する
ReadCsvFile().read_csv_file(csv_file_path)
# テーブル登録結果を検証する
self.assertEqual(len(fruit.select([])), 0)
def test_read_csv_file_005(self):
"""
ファイルの読み込み(異常系)を検証するテストケースです
0バイトファイルを指定した場合はメッセージを出力して終了する
"""
# ログファイルをクリアする
self.cleanup_log_file()
# テーブルのレコードをクリアする
self.cleanup_table("fruit")
# ファイルパスを作成する
csv_file_path = self.get_data_file_path('read_utf8_file_005.csv')
# ファイルが存在することをチェックする
self.assert_file_exists(csv_file_path)
# 0バイトファイルであることをチェックする
self.assert_file_empty(csv_file_path)
# ファイルを読み込みテーブルに登録する
ReadCsvFile().read_csv_file(csv_file_path)
# テーブル登録結果を検証する
self.assertEqual(len(fruit.select([])), 0)
if __name__ == '__main__':
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment