def test_select_example1_no_data(self): records = example1.select_example1( self.conn, start=datetime(2017, 12, 31, 0, 0, 0), end=datetime(2017, 12, 31, 23, 59, 58)) # 件数の確認 self.assertEqual(len(records), 0)
def test_select_example1_order_by_asc(self): records = example1.select_example1(self.conn, order=example1.Order.asc) # 件数の確認 self.assertEqual(len(records), 3) # データの確認 self.assertEqual(records[0]['id'], 11) self.assertEqual(records[1]['id'], 12) self.assertEqual(records[2]['id'], 13)
def test_select_example1_sort_by_id(self): records = example1.select_example1(self.conn, sort=example1.Sort.id) # 件数の確認 self.assertEqual(len(records), 3) # データの確認 self.assertEqual(records[0]['id'], 11) self.assertEqual(records[1]['id'], 12) self.assertEqual(records[2]['id'], 13)
def test_select_example1_start_equal_end(self): records = example1.select_example1(self.conn, start=datetime(2018, 1, 1, 0, 0, 0), end=datetime(2018, 1, 1, 0, 0, 0)) # 件数の確認 self.assertEqual(len(records), 1) # データの確認 self.assertEqual(records[0]['id'], 12)
def test_select_example1_all(self): records = example1.select_example1(self.conn) expected_ids = [11, 12, 13, 14, 15, 16, 17, 18] # 件数の確認 self.assertEqual(len(records), len(expected_ids)) # データの確認 for i, expected_id in enumerate(expected_ids): # subTestを使うとFAIL時に条件がわかる(unittestで実行していれば) with self.subTest(i=i): self.assertEqual(records[i]['id'], expected_id)
def test_select_example1_sort_by_datetime_col(self): records = example1.select_example1(self.conn, sort=example1.Sort.datetime_col) # 件数の確認 self.assertEqual(len(records), 4) # データの確認 self.assertEqual(records[0]['id'], 11) self.assertEqual(records[1]['id'], 13) self.assertEqual(records[2]['id'], 12) self.assertEqual(records[3]['id'], 14)
def test_select_example1_parameterized_start_end2(self, start, end, expected): records = example1.select_example1(self.conn, start=start, end=end) # 件数の確認 self.assertEqual( len(records), len(expected), 'failed with cond_start={},cond_end={}'.format(start, end)) # データの確認 actual = [record['id'] for record in records] self.assertListEqual(actual, expected)
def test_select_example1_order_by_desc(self): records = example1.select_example1(self.conn, sort=example1.Sort.datetime_col, order=example1.Order.desc) # 件数の確認 self.assertEqual(len(records), 4) # データの確認 self.assertEqual(records[0]['id'], 14) self.assertEqual(records[1]['id'], 12) self.assertEqual(records[2]['id'], 13) self.assertEqual(records[3]['id'], 11)
def test_select_example1_start_end(self): records = example1.select_example1(self.conn, start=datetime(2018, 1, 1, 0, 0, 0), end=datetime(2018, 1, 2, 0, 0, 0)) # 件数の確認 self.assertEqual(len(records), 5) # データの確認 self.assertEqual(records[0]['id'], 12) self.assertEqual(records[1]['id'], 13) self.assertEqual(records[2]['id'], 14) self.assertEqual(records[3]['id'], 15) self.assertEqual(records[4]['id'], 16)
def test_select_example1_sort_parameterized(self, _, cond_file, cond_sort, expected_ids): # データ初期化 csv_to_db.load(self.conn, example1=cond_file) self.conn.commit() records = example1.select_example1(self.conn, sort=cond_sort) # 件数の確認 self.assertEqual(len(records), len(expected_ids)) # データの確認 for i, expected_id in enumerate(expected_ids): self.assertEqual( records[i]['id'], expected_id, 'failed with cond_file={},cond_sort={},i={}'.format( cond_file, cond_sort, i))
def test_select_example1_sort_subtest(self): # test name # data: example1のデータ(csvファイル) # arg: sort # return: idのみのリスト Fixture2 = namedtuple('Fixture2', ('name', 'example1_file', 'sort', 'expected')) fixtures = [ # id(昇順) Fixture2( name="id", example1_file= 'tests/data/test_example1/example1_test_select_example1_sort_by_id.csv', sort=example1.Sort.id, expected=[11, 12, 13]), # datatime_col(昇順) Fixture2( name="datatime_col", example1_file= 'tests/data/test_example1/example1_test_select_example1_sort_by_datetime_col.csv', sort=example1.Sort.datetime_col, expected=[11, 13, 12, 14]), ] for fixture in fixtures: with self.subTest(fixture=fixture): # データ初期化 csv_to_db.load(self.conn, example1=fixture.example1_file) self.conn.commit() records = example1.select_example1(self.conn, sort=fixture.sort) # 件数の確認 self.assertEqual(len(records), len(fixture.expected)) # データの確認 actual = [record['id'] for record in records] self.assertListEqual(actual, fixture.expected)