def test_build_with_inferred_schema(self): app = self.current_app schema = CaseExportDataSchema.generate_schema_from_builds( app.domain, app._id, self.case_type, ) # Main table group_schema = schema.group_schemas[0] self.assertEqual(len(group_schema.items), 2) add_inferred_export_properties( 'TestSend', app.domain, self.case_type, ['question2', 'new-property'], ) schema = CaseExportDataSchema.generate_schema_from_builds( app.domain, app._id, self.case_type, ) # Main table group_schema = schema.group_schemas[0] # Only the new property should be added. The repeated one should be merged self.assertEqual(len(group_schema.items), 3)
def test_build_with_inferred_schema(self): app = self.current_app schema = CaseExportDataSchema.generate_schema_from_builds( app.domain, app._id, self.case_type, ) # Main table group_schema = schema.group_schemas[0] self.assertEqual(len(group_schema.items), 2) add_inferred_export_properties( 'TestSend', app.domain, self.case_type, ['question2', 'new-property'], ) schema = CaseExportDataSchema.generate_schema_from_builds( app.domain, app._id, self.case_type, ) # Main table group_schema = schema.group_schemas[0] # Only the new property should be added. The repeated one should be merged self.assertEqual(len(group_schema.items), 3)
def test_add_inferred_export_properties_saved_schema(self): props = set(['one', 'two']) props_two = set(['one', 'three']) add_inferred_export_properties( 'TestSend', self.domain, self.case_type, props, ) add_inferred_export_properties( 'TestSend', self.domain, self.case_type, props_two, ) schema = get_inferred_schema(self.domain, self.case_type) group_schema = schema.group_schemas[0] self.assertEqual( set(map(lambda item: item.path[0].name, group_schema.items)), set(['one', 'two', 'three'])) self.assertTrue( all( map(lambda item: isinstance(item, ScalarItem), group_schema.items)), )
def _add_props(self, props, num_queries=3): with self.assertNumQueries(num_queries): add_inferred_export_properties( 'TestSend', self.domain, self.case_type, props, )
def _add_props(self, props, num_queries=3): with self.assertNumQueries(num_queries): add_inferred_export_properties( 'TestSend', self.domain, self.case_type, props, )
def test_add_inferred_export_properties(self): props = set(['one', 'two']) add_inferred_export_properties( 'TestSend', self.domain, self.case_type, props, ) schema = get_inferred_schema(self.domain, self.case_type) group_schema = schema.group_schemas[0] self.assertEqual( set(map(lambda item: item.path[0].name, group_schema.items)), props)
def test_add_inferred_export_properties_system(self): """ Ensures that when we add a system property, it uses the system's item type """ props = set(['closed']) add_inferred_export_properties( 'TestSend', self.domain, self.case_type, props, ) schema = get_inferred_schema(self.domain, self.case_type) group_schema = schema.group_schemas[0] self.assertEqual(len(group_schema.items), 1) self.assertEqual(group_schema.items[0].__class__, ExportItem)