def test_serializable_report(self): test_dict = { "key_1": {"nested_key_1": {"nested_key_1_2": np.ndarray(1)}}, np.int64(1): 0, } with self.assertRaises(TypeError): json.dumps(test_dict) with self.assertRaises(TypeError): json.dumps(_prepare_report(test_dict)) with self.assertRaises(TypeError): json.dumps(_prepare_report(test_dict, output_format="not a real one")) try: x = _prepare_report(test_dict, output_format="serIaliZable") json.dumps(x) except: self.fail("serialize_report not json serializable")
def test_report_compact(self): report = self.trained_schema.report( report_options={"output_format": "pretty"}) omit_keys = [ "data_stats.*.statistics.times", "data_stats.*.statistics.avg_predictions", "data_stats.*.statistics.data_label_representation", "data_stats.*.statistics.null_types_index", "data_stats.*.statistics.histogram" ] report = _prepare_report(report, 'pretty', omit_keys) report_compact = self.trained_schema.report( report_options={"output_format": "compact"}) self.assertEqual(report, report_compact)
def test_omit_keys_in_report(self): report = { "test0": 0, "test1": 1, "test2": {"test3": 3}, "test4": {"test5": {"test3": 3}}, } output_format = "pretty" omit_keys = [] prepared_report = _prepare_report(report, output_format, omit_keys) self.assertDictEqual(prepared_report, report) omit_keys = ["test0"] report_test1 = { "test1": 1, "test2": {"test3": 3}, "test4": {"test5": {"test3": 3}}, } prepared_report = _prepare_report(report, output_format, omit_keys) self.assertDictEqual(prepared_report, report_test1) omit_keys = ["test0", "test4.test5.test3"] report_test2 = {"test1": 1, "test2": {"test3": 3}, "test4": {"test5": {}}} prepared_report = _prepare_report(report, output_format, omit_keys) self.assertDictEqual(prepared_report, report_test2) omit_keys = ["test0", "test4.test5"] report_test3 = {"test1": 1, "test2": {"test3": 3}, "test4": {}} prepared_report = _prepare_report(report, output_format, omit_keys) self.assertDictEqual(prepared_report, report_test3) omit_keys = ["test1", "test4"] report_test4 = {"test0": 0, "test2": {"test3": 3}} prepared_report = _prepare_report(report, output_format, omit_keys) self.assertDictEqual(prepared_report, report_test4) omit_keys = ["test0", "test2.test3"] report_test5 = {"test1": 1, "test2": {}, "test4": {"test5": {"test3": 3}}} prepared_report = _prepare_report(report, output_format, omit_keys) self.assertDictEqual(prepared_report, report_test5) # Keys that don't exist in the report omit_keys = ["test6", "test3"] prepared_report = _prepare_report(report, output_format, omit_keys) self.assertDictEqual(prepared_report, report) # Robustness check omit_keys = None prepared_report = _prepare_report(report, output_format, omit_keys) self.assertDictEqual(prepared_report, report) # Test wildcard removals wild_report1 = { "test0": 0, "test1": 1, "test2": {}, "test4": {"test5": {"test3": 3}}, } omit_keys = ["*.test3"] prepared_report = _prepare_report(report, output_format, omit_keys) self.assertDictEqual(prepared_report, wild_report1) # Ensure rigid counting wild_report2 = { "test0": 0, "test1": 1, "test2": {"test3": 3}, "test4": {"test5": {"test3": 3}}, } omit_keys = ["*.test3.test3"] prepared_report = _prepare_report(report, output_format, omit_keys) self.assertDictEqual(prepared_report, wild_report2) # Ensure multiple wildcards wild_report3 = { "test0": 0, "test1": 1, "test2": {"test3": 3}, "test4": {"test5": {}}, } omit_keys = ["*.*.test3"] prepared_report = _prepare_report(report, output_format, omit_keys) self.assertDictEqual(prepared_report, wild_report3)