def test_basic_case_prop_merge(self): case_property_mapping = { 'candy': ['my_case_property', 'my_second_case_property'] } schema1 = CaseExportDataSchema._generate_schema_from_case_property_mapping( case_property_mapping, 1, ) case_property_mapping = { 'candy': ['my_case_property', 'my_third_case_property'] } schema2 = CaseExportDataSchema._generate_schema_from_case_property_mapping( case_property_mapping, 2, ) schema3 = CaseExportDataSchema._generate_schema_for_case_history(case_property_mapping, 2) merged = CaseExportDataSchema._merge_schemas(schema1, schema2, schema3) self.assertEqual(len(merged.group_schemas), 2) group_schema1 = merged.group_schemas[0] group_schema2 = merged.group_schemas[1] self.assertEqual(group_schema1.last_occurrence, 2) self.assertEqual(len(group_schema1.items), 3) items = filter(lambda i: i.last_occurrence == 1, group_schema1.items) self.assertEqual(len(items), 1) self.assertEqual(group_schema2.last_occurrence, 2) self.assertEqual( len(group_schema2.items), len(CASE_HISTORY_PROPERTIES) + len(case_property_mapping['candy']) )
def test_basic_case_prop_merge(self): app_id = '1234' case_property_mapping = { 'candy': ['my_case_property', 'my_second_case_property'] } schema1 = CaseExportDataSchema._generate_schema_from_case_property_mapping( case_property_mapping, [], app_id, 1, ) case_property_mapping = { 'candy': ['my_case_property', 'my_third_case_property'] } schema2 = CaseExportDataSchema._generate_schema_from_case_property_mapping( case_property_mapping, [], app_id, 2, ) schema3 = CaseExportDataSchema._generate_schema_for_case_history( case_property_mapping, app_id, 2, ) merged = CaseExportDataSchema._merge_schemas(schema1, schema2, schema3) self.assertEqual(len(merged.group_schemas), 2) group_schema1 = merged.group_schemas[0] group_schema2 = merged.group_schemas[1] self.assertEqual(group_schema1.last_occurrences[app_id], 2) self.assertEqual(len(group_schema1.items), 3) items = [ i for i in group_schema1.items if i.last_occurrences[app_id] == 1 ] self.assertEqual(len(items), 1) self.assertEqual(group_schema2.last_occurrences[app_id], 2) self.assertEqual( len(group_schema2.items), len(case_property_mapping['candy']) + len(KNOWN_CASE_PROPERTIES), )
def test_basic_case_prop_merge(self): app_id = '1234' case_property_mapping = { 'candy': ['my_case_property', 'my_second_case_property'] } schema1 = CaseExportDataSchema._generate_schema_from_case_property_mapping( case_property_mapping, [], app_id, 1, ) case_property_mapping = { 'candy': ['my_case_property', 'my_third_case_property'] } schema2 = CaseExportDataSchema._generate_schema_from_case_property_mapping( case_property_mapping, [], app_id, 2, ) schema3 = CaseExportDataSchema._generate_schema_for_case_history( case_property_mapping, app_id, 2, ) merged = CaseExportDataSchema._merge_schemas(schema1, schema2, schema3) self.assertEqual(len(merged.group_schemas), 2) group_schema1 = merged.group_schemas[0] group_schema2 = merged.group_schemas[1] self.assertEqual(group_schema1.last_occurrences[app_id], 2) self.assertEqual(len(group_schema1.items), 3) items = [i for i in group_schema1.items if i.last_occurrences[app_id] == 1] self.assertEqual(len(items), 1) self.assertEqual(group_schema2.last_occurrences[app_id], 2) self.assertEqual( len(group_schema2.items), len(case_property_mapping['candy']) + len(KNOWN_CASE_PROPERTIES), )
def test_case_type_metadata_parsing(self): case_property_mapping = { 'candy': ['my_case_property', 'my_second_case_property'] } schema = CaseExportDataSchema._generate_schema_from_case_property_mapping( case_property_mapping, 1, ) self.assertEqual(len(schema.group_schemas), 1) group_schema = schema.group_schemas[0] self.assertEqual(group_schema.items[0].path, ['my_case_property']) self.assertEqual(group_schema.items[0].last_occurrence, 1) self.assertEqual(group_schema.items[1].path, ['my_second_case_property']) self.assertEqual(group_schema.items[1].last_occurrence, 1)
def test_case_type_metadata_parsing(self): case_property_mapping = { 'candy': ['my_case_property', 'my_second_case_property'] } schema = CaseExportDataSchema._generate_schema_from_case_property_mapping( case_property_mapping, [], self.app_id, 1, ) self.assertEqual(len(schema.group_schemas), 1) group_schema = schema.group_schemas[0] my_case_property_item = group_schema.items[0] my_second_case_property_item = group_schema.items[1] self.assertEqual(my_case_property_item.path, [PathNode(name='my_case_property')]) self.assertEqual(my_case_property_item.last_occurrences[self.app_id], 1) self.assertEqual(my_second_case_property_item.path, [PathNode(name='my_second_case_property')]) self.assertEqual(my_second_case_property_item.last_occurrences[self.app_id], 1)
def test_case_type_metadata_parsing(self): case_property_mapping = { 'candy': ['my_case_property', 'my_second_case_property'] } schema = CaseExportDataSchema._generate_schema_from_case_property_mapping( case_property_mapping, [], self.app_id, 1, ) self.assertEqual(len(schema.group_schemas), 1) group_schema = schema.group_schemas[0] my_case_property_item = group_schema.items[0] my_second_case_property_item = group_schema.items[1] self.assertEqual(my_case_property_item.path, [PathNode(name='my_case_property')]) self.assertEqual(my_case_property_item.last_occurrences[self.app_id], 1) self.assertEqual(my_second_case_property_item.path, [PathNode(name='my_second_case_property')]) self.assertEqual(my_second_case_property_item.last_occurrences[self.app_id], 1)