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
示例#3
0
 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
示例#4
0
 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
示例#5
0
 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
示例#6
0
 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 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 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_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
示例#11
0
 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
示例#13
0
 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_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_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
示例#19
0
 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
示例#20
0
 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
示例#21
0
 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
示例#22
0
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
示例#24
0
 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