def test_view_entity_references(self): u = entity_url(coll_id="testcoll", type_id="testsrc_type", entity_id="testsrc1") r = self.client.get(u) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") # Test context self.assertEqual(len(r.context['fields']), 3) f0 = context_view_field(r.context, 0, 0) self.assertEqual(f0.field_id, "Entity_id") self.assertEqual(f0.field_value, "testsrc1") self.assertEqual(f0.field_value_link, None) self.assertEqual(f0.options, self.no_options) f1 = context_view_field(r.context, 0, 1) self.assertEqual(f1.field_id, "testtgtref_field") self.assertEqual(f1.field_value, "testtgt_type/testtgt1") self.assertEqual(f1.field_value_link, "/testsite/c/testcoll/d/testtgt_type/testtgt1/") self.assertEqual(f1.options, self.tgt_options) f2 = context_view_field(r.context, 1, 0) self.assertEqual(f2.field_id, "Entity_label") self.assertEqual(f2.field_value, "testsrc_entity testsrc1 label") self.assertEqual(f2.field_value_link, None) self.assertEqual(f2.options, self.no_options) f3 = context_view_field(r.context, 2, 0) self.assertEqual(f3.field_id, "Entity_comment") self.assertEqual(f3.field_value, "testsrc_entity testsrc1 comment") self.assertEqual(f3.field_value_link, None) self.assertEqual(f3.options, self.no_options) return
def test_Group_field_sel(self): fd = field_description_from_view_field( self.testcoll, {ANNAL.CURIE.field_id: "Group_field_sel"}, {}) expect_placement = Placement(field='small-6 columns', label='small-12 medium-4 columns', value='small-12 medium-8 columns') expect_choice_ids = ([ 'Entity_comment', 'Entity_id', 'Entity_label', 'Entity_type' ]) expect_choice_labels = OrderedDict([(id, id) for id in expect_choice_ids]) expect_choice_links = OrderedDict([(id, entity_url("testcoll", "_field", id)) for id in expect_choice_ids]) expect_field_desc = ({ 'field_id': 'Group_field_sel', 'field_name': 'Field_id', 'field_value_type': ANNAL.CURIE.Slug, 'field_label': 'Field id', 'field_property_uri': ANNAL.CURIE.field_id, 'field_placeholder': '(field sel)', 'field_default_value': '', 'field_placement': expect_placement, 'field_options_typeref': '_field', 'field_choice_labels': expect_choice_labels, 'field_choice_links': expect_choice_links, 'field_restrict_values': '[annal:field_entity_type] in entity[annal:record_type]', 'field_group_ref': None, 'field_render_type': 'Field' }) # print repr(fd) self.assertDictionaryMatch(fd, expect_field_desc) return
def test_view_field_alias(self): # View BibEntry field in Default_view u = entitydata_edit_url( "edit", "testcoll", "BibEntry_type", entity_id="bibentity1", view_id="Default_view" ) r = self.client.get(u) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") # Test context url = entity_url(coll_id="testcoll", type_id="BibEntry_type", entity_id="bibentity1") self.assertEqual(r.context['coll_id'], "testcoll") self.assertEqual(r.context['type_id'], "BibEntry_type") self.assertEqual(r.context['entity_id'], "bibentity1") self.assertEqual(r.context['orig_id'], "bibentity1") self.assertEqual(r.context['action'], "edit") # Fields self.assertEqual(len(r.context['fields']), 3) # Check aliased label field f2 = context_view_field(r.context, 1, 0) self.assertEqual(f2['field_id'], 'Entity_label') self.assertEqual(f2['field_property_uri'], RDFS.CURIE.label) self.assertEqual(f2['field_value'], self.bibentity1_data['bib:title']) return
def test_view_entity_references(self): # List linked records - check values in listing u = entity_url(coll_id="testcoll", type_id="testsrc_type", entity_id="testsrc1") r = self.client.get(u) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") # Test context self.assertEqual(len(r.context['fields']), 4) i = 0 self.assertEqual(r.context['fields'][i].field_id, "Entity_id") self.assertEqual(r.context['fields'][i].field_value, "testsrc1") self.assertEqual(r.context['fields'][i].field_value_link, None) self.assertEqual(r.context['fields'][i].options, ["(no options)"]) i = 1 self.assertEqual(r.context['fields'][i].field_id, "testtgtref_field") self.assertEqual(r.context['fields'][i].field_value, "testtgt1") self.assertEqual(r.context['fields'][i].field_value_link, "/testsite/c/testcoll/d/testtgt_type/testtgt1/") self.assertEqual(r.context['fields'][i].options, ["testtgt1", "testtgt2"]) i = 2 self.assertEqual(r.context['fields'][i].field_id, "Entity_label") self.assertEqual(r.context['fields'][i].field_value, "testsrc_entity testsrc1 label") self.assertEqual(r.context['fields'][i].field_value_link, None) self.assertEqual(r.context['fields'][i].options, ["(no options)"]) i = 3 self.assertEqual(r.context['fields'][i].field_id, "Entity_comment") self.assertEqual(r.context['fields'][i].field_value, "testsrc_entity testsrc1 comment") self.assertEqual(r.context['fields'][i].field_value_link, None) self.assertEqual(r.context['fields'][i].options, ["(no options)"]) return
def test_view_field_alias(self): # View BibEntry field in Default_view u = entitydata_edit_url( "edit", "testcoll", "BibEntry_type", entity_id="bibentity1", view_id="Default_view" ) r = self.client.get(u) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertContains(r, "<title>Collection testcoll</title>") # Test context url = entity_url(coll_id="testcoll", type_id="BibEntry_type", entity_id="bibentity1") self.assertEqual(r.context['coll_id'], "testcoll") self.assertEqual(r.context['type_id'], "BibEntry_type") self.assertEqual(r.context['entity_id'], "bibentity1") self.assertEqual(r.context['orig_id'], "bibentity1") self.assertEqual(r.context['entity_url'], url) self.assertEqual(r.context['action'], "edit") # Fields self.assertEqual(len(r.context['fields']), 4) # Check aliased label field self.assertEqual(r.context['fields'][2]['field_id'], 'Entity_label') self.assertEqual(r.context['fields'][2]['field_property_uri'], RDFS.CURIE.label) self.assertEqual(r.context['fields'][2]['field_value'], self.bibentity1_data['bib:title']) return
def _check_entity_data_values(self, entity_id, type_id="testtype", type_uri=None, update="Entity", parent=None, update_dict=None): "Helper function checks content of form-updated record type entry with supplied entity_id" recorddata = RecordTypeData.load(self.testcoll, type_id) self.assertTrue(EntityData.exists(recorddata, entity_id)) e = EntityData.load(recorddata, entity_id) self.assertEqual(e.get_id(), entity_id) self.assertEqual( e.get_url(""), TestHostUri + entity_url("testcoll", type_id, entity_id)) v = entitydata_values(entity_id, type_id=type_id, type_uri=type_uri, update=update) if update_dict: v.update(update_dict) for k in update_dict: if update_dict[k] is None: v.pop(k, None) self.assertDictionaryMatch(e.get_values(), v) return e
def setUp(self): init_annalist_test_site() init_annalist_test_coll() self.testsite = Site(TestBaseUri, TestBaseDir) self.testcoll = Collection(self.testsite, "testcoll") # Populate collection with linked record types, views and lists self.testsrc_type = RecordType.create(self.testcoll, "testsrc_type", testsrc_type_create_values) self.testtgt_type = RecordType.create(self.testcoll, "testtgt_type", testtgt_type_create_values) self.testsrc_view = RecordView.create(self.testcoll, "testsrc_view", testsrc_view_create_values) self.testtgt_view = RecordView.create(self.testcoll, "testtgt_view", testtgt_view_create_values) self.testsrc_list = RecordList.create(self.testcoll, "testsrc_list", testsrc_list_create_values) self.testtgt_list = RecordList.create(self.testcoll, "testtgt_list", testtgt_list_create_values) self.testtgtref_field = RecordField.create(self.testcoll, "testtgtref_field", testtgtref_field_create_values) self.no_options = [ FieldChoice('', label="(no options)") ] self.tgt_options = ( [ FieldChoice("testtgt_type/"+v, label="testtgt_entity %s label"%v, link=entity_url("testcoll", "testtgt_type", v)) for v in ["testtgt1", "testtgt2"] ]) # Create data records for testing: self.testtgt_type_info = EntityTypeInfo(self.testcoll, "testtgt_type", create_typedata=True) self.testsrc_type_info = EntityTypeInfo(self.testcoll, "testsrc_type", create_typedata=True) for tgt_id in ("testtgt1", "testtgt2"): self.testtgt_type_info.create_entity(tgt_id, testtgt_entity_create_values(tgt_id)) for src_id, tgt_ref in (("testsrc1", "testtgt1"), ("testsrc2", "testtgt2")): self.testsrc_type_info.create_entity(src_id, testsrc_entity_create_values(src_id, tgt_ref)) # Login and permissions create_test_user(self.testcoll, "testuser", "testpassword") self.client = Client(HTTP_HOST=TestHost) loggedin = self.client.login(username="******", password="******") self.assertTrue(loggedin) return
def test_get_default_form_no_login(self): self.client.logout() u = entity_url("testcoll", "testtype", "entity1") r = self.client.get(u) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") return
def test_view_subproperty_list(self): self.create_subproperty_field_view_entity() self.create_subproperty_list_field_view_entity() # Post edit form response u = entitydata_edit_url("view", "testcoll", "testtype", entity_id="testlistentity", view_id="testlistview") r = self.client.get(u) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") # Test context url = entity_url(coll_id="testcoll", type_id="testtype", entity_id="testlistentity") self.assertEqual(r.context['coll_id'], "testcoll") self.assertEqual(r.context['type_id'], "testtype") self.assertEqual(r.context['entity_id'], "testlistentity") self.assertEqual(r.context['orig_id'], "testlistentity") self.assertEqual(r.context['action'], "view") # Fields self.assertEqual(len(r.context['fields']), 2) # Check id field for sanity f1 = context_view_field(r.context, 0, 0) self.assertEqual(f1.field_id, "Entity_id") self.assertEqual(f1.description['field_property_uri'], ANNAL.CURIE.id) self.assertEqual(f1['field_value'], self.testlistentity_data[ANNAL.CURIE.id]) # Check superproperty field value f2 = context_view_field(r.context, 1, 0) self.assertEqual(f2.field_id, "Test_sup_list") self.assertEqual(f2.description['field_property_uri'], "test:superprop_list_uri") f2rfs = context_view_repeat_fields(r.context, f2) self.assertEqual(f2rfs[0][0].field_value, "Test field 1 value") self.assertEqual(f2rfs[1][0].field_value, "Test field 2 value") # Check rendered list item1data = (""" <div class="row view-value-col"> <div class="view-value small-12 columns"> <span>Test field 1 value</span> </div> </div> """) self.assertContains(r, item1data, html=True) item2data = (""" <div class="row view-value-col"> <div class="view-value small-12 columns"> <span>Test field 1 value</span> </div> </div> """) self.assertContains(r, item2data, html=True) return
def test_post_default_form_use_view_no_login(self): self.client.logout() f = entitydata_default_view_form_data( entity_id="entityuseview", action="view", use_view="_view/Type_view", ) u = entity_url("testcoll", "testtype", "entity1") r = self.client.post(u, f) self.assertEqual(r.status_code, 302) self.assertEqual(r.reason_phrase, "FOUND") return
def test_entitydata_init(self): e = EntityData(self.testdata, "testentity") id_dict = {'type_id': "testtype", 'id': "testentity"} self.assertEqual(e._entitytype, ANNAL.CURIE.EntityData) self.assertEqual(e._entityfile, layout.ENTITY_DATA_FILE) self.assertEqual(e._entityref, layout.COLL_BASE_ENTITY_REF%id_dict) self.assertEqual(e._entityid, "testentity") self.assertEqual(e._entityurl, TestHostUri + entity_url("testcoll", "testtype", "testentity")) self.assertEqual(e._entitydir, entitydata_dir("testcoll", "testtype", "testentity")) self.assertEqual(e._values, None) return
def test_RenderRepeatGroup_view_no_values(self): # Create view with repeat-field and repeat-group testview = self._create_testview() testrepeatfield = self._create_testrepeatfield( label_add="Add group", label_delete="Remove group") testrepeatgroup = self._create_testrepeatgroup() testentity = self._create_testentity() # Render view u = entitydata_edit_url("view", "testcoll", "testtype", entity_id="testentity", view_id="testview") v = entity_url("testcoll", "testtype", entity_id="testentity") r = self.client.get(u) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") # Test rendered result cont_uri_param = "?continuation_url=" + u field_vals = default_fields( coll_id="testcoll", type_id="testtype", entity_id="00000001", view_url=v, cont_uri_param=cont_uri_param, tooltip1="", tooltip2="", ) formrow1 = """ <div class="small-12 medium-6 columns" %(tooltip1)s> <div class="row view-value-row"> <div class="%(label_classes)s"> <span>Id</span> </div> <div class="%(input_classes)s"> <a href="%(view_url)s%(cont_uri_param)s">testentity</a> </div> </div> </div> """ % field_vals(width=6) formrow2 = """ <div class="row"> <div class="%(group_label_classes)s"> <span>Test repeat field label</span> </div> <div class="group-placeholder %(group_row_body_classes)s"> <span>(None)</span> </div> </div> """ % field_vals(width=12) # log.info(r.content) #@@ self.assertContains(r, formrow1, html=True) self.assertContains(r, formrow2, html=True) return
def test_RenderRepeatGroup_view_no_values(self): # Create view with repeat-field and repeat-group testview = self._create_testview() testrepeatfield = self._create_testrepeatfield( label_add="Add group", label_delete="Remove group") testrepeatgroup = self._create_testrepeatgroup() testentity = self._create_testentity() # Render view u = entitydata_edit_url( "view", "testcoll", "testtype", entity_id="testentity", view_id="testview" ) v = entity_url("testcoll", "testtype", entity_id="testentity") r = self.client.get(u) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") # Test rendered result cont_uri_param = "?continuation_url="+u field_vals = default_fields( coll_id="testcoll", type_id="testtype", entity_id="00000001", view_url=v, cont_uri_param=cont_uri_param, tooltip1="", tooltip2="", ) formrow1 = """ <div class="small-12 medium-6 columns" %(tooltip1)s> <div class="row view-value-row"> <div class="%(label_classes)s"> <span>Id</span> </div> <div class="%(input_classes)s"> <a href="%(view_url)s%(cont_uri_param)s">testentity</a> </div> </div> </div> """%field_vals(width=6) formrow2 = """ <div class="row"> <div class="%(group_label_classes)s"> <span>Test repeat field label</span> </div> <div class="group-placeholder %(group_row_body_classes)s"> <span>(None)</span> </div> </div> """%field_vals(width=12) # log.info(r.content) #@@ self.assertContains(r, formrow1, html=True) self.assertContains(r, formrow2, html=True) return
def setUp(self): init_annalist_test_site() init_annalist_test_coll() self.testsite = Site(TestBaseUri, TestBaseDir) self.testcoll = Collection(self.testsite, "testcoll") # Populate collection with linked record types, views and lists self.testsrc_type = RecordType.create(self.testcoll, "testsrc_type", testsrc_type_create_values) self.testtgt_type = RecordType.create(self.testcoll, "testtgt_type", testtgt_type_create_values) self.testsrc_view = RecordView.create(self.testcoll, "testsrc_view", testsrc_view_create_values) self.testtgt_view = RecordView.create(self.testcoll, "testtgt_view", testtgt_view_create_values) self.testsrc_list = RecordList.create(self.testcoll, "testsrc_list", testsrc_list_create_values) self.testtgt_list = RecordList.create(self.testcoll, "testtgt_list", testtgt_list_create_values) self.testtgtref_field = RecordField.create( self.testcoll, "testtgtref_field", testtgtref_field_create_values) self.no_options = [FieldChoice('', label="(no options)")] self.tgt_options = ([ FieldChoice("testtgt_type/" + v, label="testtgt_entity %s label" % v, link=entity_url("testcoll", "testtgt_type", v)) for v in ["testtgt1", "testtgt2"] ]) # Create data records for testing: self.testtgt_type_info = EntityTypeInfo(self.testcoll, "testtgt_type", create_typedata=True) self.testsrc_type_info = EntityTypeInfo(self.testcoll, "testsrc_type", create_typedata=True) for tgt_id in ("testtgt1", "testtgt2"): self.testtgt_type_info.create_entity( tgt_id, testtgt_entity_create_values(tgt_id)) for src_id, tgt_ref in (("testsrc1", "testtgt1"), ("testsrc2", "testtgt2")): self.testsrc_type_info.create_entity( src_id, testsrc_entity_create_values(src_id, tgt_ref)) # Login and permissions create_test_user(self.testcoll, "testuser", "testpassword") self.client = Client(HTTP_HOST=TestHost) loggedin = self.client.login(username="******", password="******") self.assertTrue(loggedin) return
def _check_entity_data_values(self, entity_id, type_id="testtype", update="Entity", update_dict=None): "Helper function checks content of form-updated record type entry with supplied entity_id" # log.info("_check_entity_data_values: type_id %s, entity_id %s"%(type_id, entity_id)) typeinfo = EntityTypeInfo(self.testcoll, type_id) self.assertTrue(typeinfo.entityclass.exists(typeinfo.entityparent, entity_id)) e = typeinfo.entityclass.load(typeinfo.entityparent, entity_id) self.assertEqual(e.get_id(), entity_id) self.assertEqual(e.get_view_url(""), TestHostUri + entity_url("testcoll", type_id, entity_id)) v = entitydata_values(entity_id, type_id=type_id, update=update) if update_dict: v.update(update_dict) for k in update_dict: if update_dict[k] is None: v.pop(k, None) # log.info(e.get_values()) self.assertDictionaryMatch(e.get_values(), v) return e
def _check_entity_data_values(self, entity_id, type_id="testtype", update="Entity", update_dict=None): "Helper function checks content of form-updated record type entry with supplied entity_id" # log.info("_check_entity_data_values: type_id %s, entity_id %s"%(type_id, entity_id)) typeinfo = EntityTypeInfo(self.testsite, self.testcoll, type_id) self.assertTrue(typeinfo.entityclass.exists(typeinfo.entityparent, entity_id)) e = typeinfo.entityclass.load(typeinfo.entityparent, entity_id) self.assertEqual(e.get_id(), entity_id) self.assertEqual(e.get_view_url(""), TestHostUri + entity_url("testcoll", type_id, entity_id)) v = entitydata_values(entity_id, type_id=type_id, update=update) if update_dict: v.update(update_dict) for k in update_dict: if update_dict[k] is None: v.pop(k, None) # log.info(e.get_values()) self.assertDictionaryMatch(e.get_values(), v) return e
def test_get_data_view(self): u = entitydata_edit_url("edit", "testcoll", "testtype", entity_id="entity1") r = self.client.get(u) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") check_default_view_context_fields( self, r, action="edit", type_id="testtype", entity_id="entity1", orig_entity_id="entity1", entity_label="Entity testcoll/testtype/entity1", entity_comment= "Entity coll testcoll, type testtype, entity entity1", entity_data_ref=entity_url( "testcoll", "testtype", entity_id="entity1") + layout.ENTITY_DATA_FILE, view_id="Default_view") u = collection_entity_view_url(coll_id="testcoll", type_id="testtype", entity_id="entity1") r = self.client.get(u) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertEqual(r.context['coll_id'], "testcoll") self.assertEqual(r.context['type_id'], "testtype") self.assertEqual(r.context['entity_id'], "entity1") self.assertEqual(r.context['orig_id'], "entity1") self.assertEqual(r.context['action'], "view") self.assertEqual(r.context['continuation_url'], "") self.assertEqual(r.context['entity_data_ref'], u + layout.ENTITY_DATA_FILE) self.assertEqual( r.context['entity_data_ref_json'], u + layout.ENTITY_DATA_FILE + "?type=application/json") return
def test_view_subproperty_field(self): self.create_subproperty_field_view_entity() # Render view u = entitydata_edit_url("view", "testcoll", "testtype", entity_id="testentity", view_id="testview") r = self.client.get(u) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") # Test context url = entity_url(coll_id="testcoll", type_id="testtype", entity_id="testentity") self.assertEqual(r.context['coll_id'], "testcoll") self.assertEqual(r.context['type_id'], "testtype") self.assertEqual(r.context['entity_id'], "testentity") self.assertEqual(r.context['orig_id'], "testentity") self.assertEqual(r.context['action'], "view") # Fields self.assertEqual(len(r.context['fields']), 2) # Check id field for sanity f1 = context_view_field(r.context, 0, 0) self.assertEqual(f1.field_id, "Entity_id") self.assertEqual(f1.description['field_property_uri'], ANNAL.CURIE.id) self.assertEqual(f1['field_value'], self.testentity_data[ANNAL.CURIE.id]) # Check superproperty field value f2 = context_view_field(r.context, 1, 0) self.assertEqual(f2.field_id, "Test_sup_field") self.assertEqual(f2.description['field_property_uri'], "test:superprop_uri") self.assertEqual(f2['field_value'], self.testentity_data["test:subprop_uri"]) return
def add_link_to_field_choice(fc, coll_id, default_type_id=None): type_id, entity_id = split_type_entity_id(fc.id, default_type_id=default_type_id) return fc.add_link(entity_url(coll_id, type_id, entity_id))
def test_get_edit(self): u = entitydata_edit_url("edit", "testcoll", "testtype", entity_id="entity1") r = self.client.get(u + "?continuation_url=/xyzzy/") self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertContains(r, "<title>Collection testcoll</title>") # Test context view_url = entity_url(coll_id="testcoll", type_id="testtype", entity_id="entity1") self.assertEqual(r.context['coll_id'], "testcoll") self.assertEqual(r.context['type_id'], "testtype") self.assertEqual(r.context['entity_id'], "entity1") self.assertEqual(r.context['orig_id'], "entity1") self.assertEqual(r.context['entity_url'], view_url) self.assertEqual(r.context['action'], "edit") self.assertEqual(r.context['continuation_url'], "/xyzzy/") # Fields self.assertEqual(len(r.context['fields']), 4) # 1st field field_id_help = ( "A short identifier that distinguishes this record from " + "all other records of the same type in the same collection.") self.assertEqual(r.context['fields'][0]['field_id'], 'Entity_id') self.assertEqual(r.context['fields'][0]['field_name'], 'entity_id') self.assertEqual(r.context['fields'][0]['field_label'], 'Id') self.assertEqual(r.context['fields'][0]['field_help'], field_id_help) self.assertEqual(r.context['fields'][0]['field_placeholder'], "(entity id)") self.assertEqual(r.context['fields'][0]['field_property_uri'], "annal:id") self.assertEqual(r.context['fields'][0]['field_render_type'], "EntityId") self.assertEqual(r.context['fields'][0]['field_value_type'], "annal:Slug") self.assertEqual(r.context['fields'][0]['field_value'], "entity1") self.assertEqual(r.context['fields'][0]['options'], self.no_options) # 2nd field field_type_help = ( "A short identifier that identifies the type of the corresponding entity." ) self.assertEqual(r.context['fields'][1]['field_id'], 'Entity_type') self.assertEqual(r.context['fields'][1]['field_name'], 'entity_type') self.assertEqual(r.context['fields'][1]['field_label'], 'Type') self.assertEqual(r.context['fields'][1]['field_help'], field_type_help) self.assertEqual(r.context['fields'][1]['field_placeholder'], "(type id)") self.assertEqual(r.context['fields'][1]['field_property_uri'], "annal:type_id") self.assertEqual(r.context['fields'][1]['field_render_type'], "EntityTypeId") self.assertEqual(r.context['fields'][1]['field_value_type'], "annal:Slug") self.assertEqual(r.context['fields'][1]['field_value'], "testtype") self.assertEqual(set(r.context['fields'][1]['options']), set(self.type_ids)) # 3rd field field_label_help = ( "Short string used to describe entity when displayed") field_label_value = ("Entity testcoll/testtype/entity1") self.assertEqual(r.context['fields'][2]['field_id'], 'Entity_label') self.assertEqual(r.context['fields'][2]['field_name'], 'Entity_label') self.assertEqual(r.context['fields'][2]['field_label'], 'Label') self.assertEqual(r.context['fields'][2]['field_help'], field_label_help) self.assertEqual(r.context['fields'][2]['field_placeholder'], "(label)") self.assertEqual(r.context['fields'][2]['field_property_uri'], "rdfs:label") self.assertEqual(r.context['fields'][2]['field_render_type'], "Text") self.assertEqual(r.context['fields'][2]['field_value_type'], "annal:Text") self.assertEqual(r.context['fields'][2]['field_value'], field_label_value) self.assertEqual(r.context['fields'][2]['options'], self.no_options) # 4th field field_comment_help = ("Descriptive text about an entity.") field_comment_value = ( "Entity coll testcoll, type testtype, entity entity1") self.assertEqual(r.context['fields'][3]['field_id'], 'Entity_comment') self.assertEqual(r.context['fields'][3]['field_name'], 'Entity_comment') self.assertEqual(r.context['fields'][3]['field_label'], 'Comment') self.assertEqual(r.context['fields'][3]['field_help'], field_comment_help) self.assertEqual(r.context['fields'][3]['field_placeholder'], "(description)") self.assertEqual(r.context['fields'][3]['field_property_uri'], "rdfs:comment") self.assertEqual(r.context['fields'][3]['field_render_type'], "Textarea") self.assertEqual(r.context['fields'][3]['field_value_type'], "annal:Longtext") self.assertEqual(r.context['fields'][3]['field_value'], field_comment_value) self.assertEqual(r.context['fields'][3]['options'], self.no_options) return
def test_get_edit(self): u = entitydata_edit_url("edit", "testcoll", "testtype", entity_id="entity1") r = self.client.get(u + "?continuation_url=/xyzzy/") self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") # log.info(r.content) self.assertContains( r, "<title>Entity testcoll/testtype/entity1 - Default record view - Collection testcoll</title>" ) # Test context view_url = entity_url(coll_id="testcoll", type_id="testtype", entity_id="entity1") self.assertEqual(r.context['coll_id'], "testcoll") self.assertEqual(r.context['type_id'], "testtype") self.assertEqual(r.context['entity_id'], "entity1") self.assertEqual(r.context['orig_id'], "entity1") self.assertEqual(r.context['action'], "edit") self.assertEqual(r.context['continuation_url'], "/xyzzy/") # Fields self.assertEqual(len(r.context['fields']), 3) f0 = context_view_field(r.context, 0, 0) f1 = context_view_field(r.context, 0, 1) f2 = context_view_field(r.context, 1, 0) f3 = context_view_field(r.context, 2, 0) # 1st field self.assertEqual(f0['field_id'], 'Entity_id') self.assertEqual(f0['field_name'], 'entity_id') self.assertEqual(f0['field_label'], 'Id') self.assertEqual(f0['field_placeholder'], "(entity id)") self.assertEqual(f0['field_property_uri'], "annal:id") self.assertEqual(f0['field_render_type'], "EntityId") self.assertEqual(f0['field_value_mode'], "Value_direct") self.assertEqual(f0['field_value_type'], "annal:Slug") self.assertEqual(f0['field_value'], "entity1") self.assertEqual(f0['options'], self.no_options) # 2nd field self.assertEqual(f1['field_id'], 'Entity_type') self.assertEqual(f1['field_name'], 'entity_type') self.assertEqual(f1['field_label'], 'Type') self.assertEqual(f1['field_placeholder'], "(type id)") self.assertEqual(f1['field_property_uri'], "annal:type_id") self.assertEqual(f1['field_render_type'], "EntityTypeId") self.assertEqual(f1['field_value_mode'], "Value_direct") self.assertEqual(f1['field_value_type'], "annal:Slug") self.assertEqual(f1['field_value'], "testtype") self.assertEqual(set(f1['options']), set(self.type_ids)) # 3rd field field_label_value = ("Entity testcoll/testtype/entity1") self.assertEqual(f2['field_id'], 'Entity_label') self.assertEqual(f2['field_name'], 'Entity_label') self.assertEqual(f2['field_label'], 'Label') self.assertEqual(f2['field_placeholder'], "(label)") self.assertEqual(f2['field_property_uri'], "rdfs:label") self.assertEqual(f2['field_render_type'], "Text") self.assertEqual(f2['field_value_mode'], "Value_direct") self.assertEqual(f2['field_value_type'], "annal:Text") self.assertEqual(f2['field_value'], field_label_value) self.assertEqual(f2['options'], self.no_options) # 4th field field_comment_value = ( "Entity coll testcoll, type testtype, entity entity1") self.assertEqual(f3['field_id'], 'Entity_comment') self.assertEqual(f3['field_name'], 'Entity_comment') self.assertEqual(f3['field_label'], 'Comment') self.assertEqual(f3['field_placeholder'], "(description)") self.assertEqual(f3['field_property_uri'], "rdfs:comment") self.assertEqual(f3['field_render_type'], "Markdown") self.assertEqual(f3['field_value_mode'], "Value_direct") self.assertEqual(f3['field_value_type'], "annal:Richtext") self.assertEqual(f3['field_value'], field_comment_value) self.assertEqual(f3['options'], self.no_options) return