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_case_history_parsing(self): schema = CaseExportDataSchema._generate_schema_for_case_history({ 'candy': ['my_case_property', 'my_second_case_property'] }, self.app_id, 1) self.assertEqual(len(schema.group_schemas), 1) group_schema = schema.group_schemas[0] update_items = [item for item in group_schema.items if item.tag == PROPERTY_TAG_UPDATE] self.assertEqual(len(update_items), 2 + len(KNOWN_CASE_PROPERTIES))
def test_case_history_parsing(self): schema = CaseExportDataSchema._generate_schema_for_case_history({ 'candy': ['my_case_property', 'my_second_case_property'] }, self.app_id, 1) self.assertEqual(len(schema.group_schemas), 1) group_schema = schema.group_schemas[0] update_items = filter(lambda item: item.tag == PROPERTY_TAG_UPDATE, group_schema.items) self.assertEqual(len(update_items), 2 + len(KNOWN_CASE_PROPERTIES))
def test_case_history_parsing(self): schema = CaseExportDataSchema._generate_schema_for_case_history({ 'candy': ['my_case_property', 'my_second_case_property'] }, 1) self.assertEqual(len(schema.group_schemas), 1) group_schema = schema.group_schemas[0] for idx, prop in enumerate(CASE_HISTORY_PROPERTIES): self.assertEqual(group_schema.items[idx].path, [prop.name]) self.assertEqual(group_schema.items[idx].tag, prop.tag) update_items = filter(lambda item: item.tag == PROPERTY_TAG_UPDATE, group_schema.items) self.assertEqual(len(update_items), 2)
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), )