-
Notifications
You must be signed in to change notification settings - Fork 5
/
test_dict_parser.py
37 lines (33 loc) · 1.63 KB
/
test_dict_parser.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import json
from mtd.tests import SAMPLE_DATA_DF, SAMPLE_DATA_OBJ, SAMPLE_DATA_DF_REDUCED, SAMPLE_DATA_OBJ_REDUCED, SAMPLE_DATA_DF_REDUCED_EMPTY, SAMPLE_DATA_OBJ_REDUCED_EMPTY
import os
from mtd.tests.test_data import json as json_path
from unittest import TestCase
from mtd.parsers import parse
class DictParserTest(TestCase):
def setUp(self):
self.path = os.path.dirname(json_path.__file__)
self.data = [(SAMPLE_DATA_OBJ, SAMPLE_DATA_DF, SAMPLE_DATA_OBJ), (SAMPLE_DATA_OBJ_REDUCED_EMPTY, SAMPLE_DATA_DF_REDUCED_EMPTY, SAMPLE_DATA_OBJ_REDUCED_EMPTY)]
self.manifest = os.path.join(self.path, 'dict_manifest.json')
self.maxDiff = None
# def test_dict_manifest(self):
# '''Check manifest loaded as dict NOT WORKING
# '''
# with open(self.manifest, 'r') as f:
# json_manifest = json.load(f)
# for data in self.data:
# parsed_data = parse(json_manifest, data[0])
# self.assertTrue(parsed_data['data'].equals(data[1]))
def test_data_df_matches_sample(self):
'''Check test Dict or List data is parsed and looks like ground truth data.
'''
for data in self.data:
parsed_data = parse(self.manifest, data[0])
self.assertTrue(parsed_data['data'].equals(data[1]))
def test_data_obj_matches_sample(self):
'''Check test Dict or List data is parsed and looks like ground truth data.
'''
for data in self.data:
parsed_data = parse(self.manifest, data[0])
parsed_data_obj = parsed_data['data'].to_dict(orient='records')
self.assertEqual(data[2], parsed_data_obj)