Ejemplo n.º 1
0
def recordlist_url(coll_id, list_id):
    """
    URI for record list description data; also view using default entity view
    """
    if not valid_id(list_id):
        list_id = "___"
    return collection_entity_view_url(coll_id=coll_id, type_id="_list", entity_id=list_id)
Ejemplo n.º 2
0
 def test_get_recordlist_edit(self):
     u = entitydata_edit_url(action="edit",
                             coll_id="testcoll",
                             type_id="_list",
                             entity_id="Default_list",
                             view_id="List_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context (values read from test data fixture)
     list_url = collection_entity_view_url(coll_id="testcoll",
                                           type_id="_list",
                                           entity_id="Default_list")
     self.assertEqual(r.context['coll_id'], "testcoll")
     self.assertEqual(r.context['type_id'], "_list")
     self.assertEqual(r.context['entity_id'], "Default_list")
     self.assertEqual(r.context['orig_id'], "Default_list")
     self.assertEqual(r.context['entity_url'], list_url)
     self.assertEqual(r.context['entity_uri'], "annal:display/Default_list")
     self.assertEqual(r.context['action'], "edit")
     self.assertEqual(r.context['continuation_url'], "")
     # Fields
     self._check_list_view_context_fields(
         r,
         action="edit",
         num_fields=2,
         list_id="Default_list",
         list_label="List entities",
         list_help="Default list of entities of given type",
         list_url=list_url,
         list_uri="annal:display/Default_list")
     return
Ejemplo n.º 3
0
 def test_get_edit(self):
     u = entitydata_edit_url("edit",
                             "testcoll",
                             layout.VOCAB_TYPEID,
                             entity_id="annal",
                             view_id="Vocab_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context (values read from test data fixture)
     type_url = collection_entity_view_url(coll_id="testcoll",
                                           type_id=layout.VOCAB_TYPEID,
                                           entity_id="annal")
     self.assertEqual(r.context['coll_id'], "testcoll")
     self.assertEqual(r.context['type_id'], layout.VOCAB_TYPEID)
     self.assertEqual(r.context['entity_id'], "annal")
     self.assertEqual(r.context['orig_id'], "annal")
     self.assertEqual(r.context['entity_uri'],
                      "http://purl.org/annalist/2014/#")
     self.assertEqual(r.context['action'], "edit")
     self.assertEqual(r.context['continuation_url'], "")
     # Fields
     self._check_context_fields(
         r,
         action="edit",
         vocab_id="annal",
         orig_vocab_id="annal",
         vocab_label="Vocabulary namespace for Annalist-defined terms",
         vocab_uri="http://purl.org/annalist/2014/#",
         vocab_seealso=[
             "https://github.com/gklyne/annalist/blob/master/src/annalist_root/annalist/identifiers.py"
         ],
         continuation_url="")
     return
Ejemplo n.º 4
0
 def test_get_new(self):
     u = entitydata_edit_url("new",
                             "testcoll",
                             "_type",
                             view_id="Type_view")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context
     type_url = collection_entity_view_url(coll_id="testcoll",
                                           type_id="_type",
                                           entity_id="00000001")
     self.assertEqual(r.context['coll_id'], "testcoll")
     self.assertEqual(r.context['type_id'], "_type")
     self.assertEqual(r.context['entity_id'], "00000001")
     self.assertEqual(r.context['orig_id'], "00000001")
     self.assertEqual(r.context['entity_url'], type_url)
     self.assertEqual(r.context['entity_uri'], None)
     self.assertEqual(r.context['action'], "new")
     self.assertEqual(r.context['continuation_url'], "/xyzzy/")
     # Fields
     self._check_context_fields(
         r,
         type_id="00000001",
         type_label=default_label("testcoll", "_type", "00000001"),
         type_help=default_comment("testcoll", "_type", "00000001"),
         type_uri="")
     return
Ejemplo n.º 5
0
 def test_get_edit(self):
     u = entitydata_edit_url("edit",
                             "testcoll",
                             "_type",
                             entity_id="Default_type",
                             view_id="Type_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context (values read from test data fixture)
     type_url = collection_entity_view_url(coll_id="testcoll",
                                           type_id="_type",
                                           entity_id="Default_type")
     self.assertEqual(r.context['coll_id'], "testcoll")
     self.assertEqual(r.context['type_id'], "_type")
     self.assertEqual(r.context['entity_id'], "Default_type")
     self.assertEqual(r.context['orig_id'], "Default_type")
     self.assertEqual(r.context['entity_url'], type_url)
     self.assertEqual(r.context['entity_uri'], "annal:Default_type")
     self.assertEqual(r.context['action'], "edit")
     self.assertEqual(r.context['continuation_url'], "")
     # Fields
     self._check_context_fields(
         r,
         type_id="Default_type",
         type_label="Default record type",
         type_help=
         "Default record type, applied when no type is specified when creating a record.",
         type_uri="annal:Default_type")
     return
Ejemplo n.º 6
0
def recordview_url(coll_id, view_id):
    """
    URI for record view description data; also view using default entity view
    """
    if not valid_id(view_id):
        view_id = "___"
    return collection_entity_view_url(coll_id=coll_id, type_id="_view", entity_id=view_id)
Ejemplo n.º 7
0
def recordview_url(coll_id, view_id):
    """
    URI for record view description data; also view using default entity view
    """
    if not valid_id(view_id):
        view_id = "___"
    return collection_entity_view_url(coll_id=coll_id, type_id="_view", entity_id=view_id)
Ejemplo n.º 8
0
 def test_get_new(self):
     u = entitydata_edit_url("new",
                             "testcoll",
                             "_list",
                             view_id="List_view")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context
     list_url = collection_entity_view_url(coll_id="testcoll",
                                           type_id="_list",
                                           entity_id="00000001")
     self.assertEqual(r.context['coll_id'], "testcoll")
     self.assertEqual(r.context['type_id'], "_list")
     self.assertEqual(r.context['entity_id'], "00000001")
     self.assertEqual(r.context['orig_id'], "00000001")
     self.assertEqual(r.context['entity_url'], list_url)
     self.assertEqual(r.context['entity_uri'], None)
     self.assertEqual(r.context['action'], "new")
     self.assertEqual(r.context['continuation_url'], "/xyzzy/")
     # Fields
     self._check_list_view_context_fields(
         r,
         action="new",
         num_fields=2,
         list_id="00000001",
         list_label=default_label("testcoll", "_list", "00000001"),
         list_help=default_comment("testcoll", "_list", "00000001"),
         list_url=list_url,
         list_uri=None,
         list_type="List",
         list_default_type="Default_type",
         list_default_view="Default_view",
         list_selector="ALL")
     return
Ejemplo n.º 9
0
 def test_get_edit(self):
     u = entitydata_edit_url(
         "edit", "testcoll", layout.TYPE_TYPEID, entity_id="Default_type", view_id="Type_view"
         )
     r = self.client.get(u)
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context (values read from test data fixture)
     type_url = collection_entity_view_url(
         coll_id="testcoll", type_id=layout.TYPE_TYPEID, entity_id="Default_type"
         )
     self.assertEqual(r.context['coll_id'],          "testcoll")
     self.assertEqual(r.context['type_id'],          layout.TYPE_TYPEID)
     self.assertEqual(r.context['entity_id'],        "Default_type")
     self.assertEqual(r.context['orig_id'],          "Default_type")
     self.assertEqual(r.context['entity_uri'],       "annal:Default_type")
     self.assertEqual(r.context['action'],           "edit")
     self.assertEqual(r.context['continuation_url'], "")
     # Fields
     self._check_context_fields(r, 
         action="edit",
         type_id="Default_type",
         type_label="Default record",
         type_uri="annal:Default_type", type_supertype_uris=""
         )
     return
Ejemplo n.º 10
0
def recordtype_url(coll_id="testcoll", type_id="testtype"):
    """
    URL for record type description data; also view using default entity view
    """
    if not valid_id(type_id):
        return None
    return collection_entity_view_url(coll_id=coll_id, type_id="_type", entity_id=type_id)
Ejemplo n.º 11
0
def recordlist_url(coll_id, list_id):
    """
    URI for record list description data; also view using default entity view
    """
    if not valid_id(list_id):
        list_id = "___"
    return collection_entity_view_url(coll_id=coll_id, type_id="_list", entity_id=list_id)
Ejemplo n.º 12
0
 def test_get_new(self):
     u = entitydata_edit_url("new",
                             "testcoll",
                             layout.VOCAB_TYPEID,
                             view_id="Vocab_view")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context
     type_url = collection_entity_view_url(coll_id="testcoll",
                                           type_id=layout.VOCAB_TYPEID,
                                           entity_id="00000001")
     self.assertEqual(r.context['coll_id'], "testcoll")
     self.assertEqual(r.context['type_id'], layout.VOCAB_TYPEID)
     self.assertEqual(r.context['entity_id'], "00000001")
     self.assertEqual(r.context['orig_id'], None)
     self.assertEqual(r.context['entity_uri'], "")
     self.assertEqual(r.context['action'], "new")
     self.assertEqual(r.context['continuation_url'], "/xyzzy/")
     # Fields
     self._check_context_fields(r,
                                action="new",
                                vocab_id="00000001",
                                orig_vocab_id=None,
                                vocab_label="",
                                vocab_descr="",
                                vocab_uri="",
                                continuation_url="/xyzzy/")
     return
Ejemplo n.º 13
0
 def test_get_edit(self):
     u = entitydata_edit_url("edit",
                             "testcoll",
                             layout.TYPE_TYPEID,
                             entity_id="Default_type",
                             view_id="Type_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context (values read from test data fixture)
     type_url = collection_entity_view_url(coll_id="testcoll",
                                           type_id=layout.TYPE_TYPEID,
                                           entity_id="Default_type")
     self.assertEqual(r.context['coll_id'], "testcoll")
     self.assertEqual(r.context['type_id'], layout.TYPE_TYPEID)
     self.assertEqual(r.context['entity_id'], "Default_type")
     self.assertEqual(r.context['orig_id'], "Default_type")
     self.assertEqual(r.context['entity_uri'], "annal:Default_type")
     self.assertEqual(r.context['action'], "edit")
     self.assertEqual(r.context['continuation_url'], "")
     # Fields
     self._check_context_fields(r,
                                action="edit",
                                type_id="Default_type",
                                type_label="Default record",
                                type_uri="annal:Default_type",
                                type_supertype_uris="")
     return
Ejemplo n.º 14
0
def annalistuser_url(coll_id="testcoll", user_id="testuser"):
    """
    URI for user permissions data; also view using default entity view
    """
    if not valid_id(user_id):
        user_id = "___"
    return collection_entity_view_url(coll_id=coll_id, type_id="_user", entity_id=user_id)
Ejemplo n.º 15
0
 def test_get_new(self):
     u = entitydata_edit_url("new",
                             "testcoll",
                             layout.TYPE_TYPEID,
                             view_id="Type_view")
     r = self.client.get(u + "?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context
     type_url = collection_entity_view_url(coll_id="testcoll",
                                           type_id=layout.TYPE_TYPEID,
                                           entity_id="00000001")
     self.assertEqual(r.context['coll_id'], "testcoll")
     self.assertEqual(r.context['type_id'], layout.TYPE_TYPEID)
     self.assertEqual(r.context['entity_id'], "00000001")
     self.assertEqual(r.context['orig_id'], "00000001")
     self.assertEqual(r.context['entity_uri'], None)
     self.assertEqual(r.context['action'], "new")
     self.assertEqual(r.context['continuation_url'], "/xyzzy/")
     # Fields
     self._check_context_fields(
         r,
         action="new",
         type_id="00000001",
         type_label="(New type initial values - label)",
         type_uri="",
         type_supertype_uris="")
     return
Ejemplo n.º 16
0
def default_fields(
    coll_id=None, type_id=None, entity_id=None, 
    width=12, **kwargs):
    """
    Returns a function that accepts a field width and returns a dictionary of entity values
    for testing.  The goal is to isolate default entity value settings from the test cases.
    """
    def_label       = kwargs.get("default_label",
        default_label(coll_id=coll_id, type_id=type_id, entity_id=entity_id)
        )
    def_comment     = kwargs.get("default_comment",
        default_comment(coll_id=coll_id, type_id=type_id, entity_id=entity_id)
        )
    def_label_esc   = def_label.replace("'", "'")
    def_comment_esc = def_comment.replace("'", "'")
    def_entity_url  = collection_entity_view_url(coll_id=coll_id, type_id=type_id, entity_id=entity_id)
    def def_fields(width=12):
        fields = layout_classes(width=width)
        fields.update(
            { 'coll_id':             coll_id
            , 'type_id':             type_id
            , 'entity_id':           entity_id
            , 'default_label':       def_label
            , 'default_comment':     def_comment
            , 'default_label_esc':   def_label_esc
            , 'default_comment_esc': def_comment_esc
            , 'default_entity_url':  def_entity_url
            })
        if kwargs:
            fields.update(kwargs)
        return fields
    return def_fields
Ejemplo n.º 17
0
def entity_url(coll_id="testcoll", type_id="testtype", entity_id="entity_id"):
    """
    URI for entity data; also view using default entity view
    """
    if not valid_id(entity_id):
        entity_id = "___"
    return collection_entity_view_url(coll_id=coll_id, type_id=type_id, entity_id=entity_id)
Ejemplo n.º 18
0
def default_fields(coll_id=None, type_id=None, entity_id=None, width=12):
    """
    Returns a function that accepts a field width and returns a dictionary of entity values
    for testing.  The goal is to isolate default entity value settings from the test cases.
    """
    def_label = default_label(coll_id=coll_id,
                              type_id=type_id,
                              entity_id=entity_id)
    def_comment = default_comment(coll_id=coll_id,
                                  type_id=type_id,
                                  entity_id=entity_id)
    def_label_esc = def_label.replace("'", "'")
    def_comment_esc = def_comment.replace("'", "'")
    def_entity_url = collection_entity_view_url(coll_id=coll_id,
                                                type_id=type_id,
                                                entity_id=entity_id)

    def def_fields(width=12):
        fields = layout_classes(width=width)
        fields.update({
            'coll_id': coll_id,
            'type_id': type_id,
            'entity_id': entity_id,
            'default_label': def_label,
            'default_comment': def_comment,
            'default_label_esc': def_label_esc,
            'default_comment_esc': def_comment_esc,
            'default_entity_url': def_entity_url
        })
        return fields

    return def_fields
Ejemplo n.º 19
0
def recordfield_url(coll_id, field_id):
    """
    URI for record field description data; also view using default entity view
    """
    if not valid_id(field_id):
        return None
        # field_id = "___"
    return collection_entity_view_url(coll_id=coll_id, type_id="_field", entity_id=field_id)
Ejemplo n.º 20
0
def recordgroup_url(coll_id, group_id):
    """
    URI for group description data; also view using default entity view
    """
    if not valid_id(group_id):
        return None
        # group_id = "___"
    return collection_entity_view_url(coll_id=coll_id, type_id="_group", entity_id=group_id)
Ejemplo n.º 21
0
def annalistuser_url(coll_id="testcoll", user_id="testuser"):
    """
    URI for user permissions data; also view using default entity view
    """
    if not valid_id(user_id):
        user_id = "___"
    return collection_entity_view_url(coll_id=coll_id,
                                      type_id="_user",
                                      entity_id=user_id)
Ejemplo n.º 22
0
def recordfield_url(coll_id, field_id):
    """
    URI for record field description data; also view using default entity view
    """
    if not valid_id(field_id):
        field_id = "___"
    return collection_entity_view_url(coll_id=coll_id,
                                      type_id="_field",
                                      entity_id=field_id)
Ejemplo n.º 23
0
def recordtype_url(coll_id="testcoll", type_id="testtype"):
    """
    URL for record type description data; also view using default entity view
    """
    if not valid_id(type_id):
        return None
    return collection_entity_view_url(coll_id=coll_id,
                                      type_id="_type",
                                      entity_id=type_id)
Ejemplo n.º 24
0
def entity_url(coll_id="testcoll", type_id="testtype", entity_id="entity_id"):
    """
    URI for entity data; also view using default entity view
    """
    if not valid_id(entity_id):
        entity_id = "___"
    return collection_entity_view_url(coll_id=coll_id,
                                      type_id=type_id,
                                      entity_id=entity_id)
Ejemplo n.º 25
0
def collectiondata_url(coll_id="testcoll"):
    """
    URI for collection description data; also view using default entity view

    e.g. 
      http://example.com/site/c/_annalist_site/d/_coll/testcoll/
    """
    if not valid_id(coll_id):
        coll_id = "___"
    return collection_entity_view_url(coll_id=layout.SITEDATA_ID, type_id="_coll", entity_id=coll_id)
Ejemplo n.º 26
0
def recordgroup_url(coll_id, group_id):
    """
    URI for group description data; also view using default entity view
    """
    if not valid_id(group_id):
        return None
        # group_id = "___"
    return collection_entity_view_url(coll_id=coll_id,
                                      type_id="_group",
                                      entity_id=group_id)
Ejemplo n.º 27
0
def recordvocab_url(coll_id, vocab_id):
    """
    URI for namespace vocabulary description data; also view using default entity view
    """
    if not valid_id(vocab_id):
        return None
        # vocab_id = "___"
    return collection_entity_view_url(coll_id=coll_id,
                                      type_id="_vocab",
                                      entity_id=vocab_id)
Ejemplo n.º 28
0
def collectiondata_url(coll_id="testcoll"):
    """
    URI for collection description data; also view using default entity view

    e.g. 
      http://example.com/site/c/_annalist_site/d/_coll/testcoll/
    """
    if not valid_id(coll_id):
        coll_id = "___"
    return collection_entity_view_url(coll_id=layout.SITEDATA_ID,
                                      type_id="_coll",
                                      entity_id=coll_id)
Ejemplo n.º 29
0
 def test_get_data_json(self):
     """
     Request collection data as JSON-LD
     """
     u = collection_entity_view_url(coll_id="testcoll",
                                    type_id="testtype",
                                    entity_id="entity1")
     r = self.client.get(u, HTTP_ACCEPT="application/ld+json")
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     v = r['Location']
     self.assertEqual(v, TestHostUri + u + layout.ENTITY_DATA_FILE)
     return
Ejemplo n.º 30
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
Ejemplo n.º 31
0
 def test_get_new(self):
     u = entitydata_edit_url("new", "testcoll", layout.TYPE_TYPEID, view_id="Type_view")
     r = self.client.get(u+"?continuation_url=/xyzzy/")
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context
     type_url = collection_entity_view_url(
         coll_id="testcoll", type_id=layout.TYPE_TYPEID, entity_id="00000001"
         )
     self.assertEqual(r.context['coll_id'],          "testcoll")
     self.assertEqual(r.context['type_id'],          layout.TYPE_TYPEID)
     self.assertEqual(r.context['entity_id'],        "00000001")
     self.assertEqual(r.context['orig_id'],          "00000001")
     self.assertEqual(r.context['entity_uri'],       None)
     self.assertEqual(r.context['action'],           "new")
     self.assertEqual(r.context['continuation_url'], "/xyzzy/")
     # Fields
     self._check_context_fields(r, 
         action="new",
         type_id="00000001",
         type_label="(New type initial values - label)",
         type_uri="", type_supertype_uris=""
         )
     return
Ejemplo n.º 32
0
 def test_get_recordview_edit_bibentry(self):
     u = entitydata_edit_url(
         "edit", "testcoll", layout.VIEW_TYPEID, entity_id="BibEntry_view", 
         view_id="View_view"
         )
     r = self.client.get(u)
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context
     view_url = collection_entity_view_url("testcoll", layout.VIEW_TYPEID, "BibEntry_view")
     self.assertEqual(r.context['coll_id'],          "testcoll")
     self.assertEqual(r.context['type_id'],          layout.VIEW_TYPEID)
     self.assertEqual(r.context['entity_id'],        "BibEntry_view")
     self.assertEqual(r.context['orig_id'],          "BibEntry_view")
     self.assertEqual(r.context['entity_uri'],       None)
     self.assertEqual(r.context['action'],           "edit")
     self.assertEqual(r.context['edit_view_button'], False)
     self.assertEqual(r.context['continuation_url'], "")
     # Skip checking fields 0-4 - that's already been covered
     # log.info("*** fields[5]['options']:     "+repr(r.context['fields'][5]['options']))
     # log.info("*** fields[5]['field_value']: "+repr(r.context['fields'][5]['field_value']))
     # @@TODO: revise for more useful BibEntry structure
     expect_field_data = (
         [ { 'annal:field_placement':    "small:0,12;medium:0,6"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Entity_id"
           }
         , { 'annal:field_placement':    "small:0,12;medium:6,6"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_type"
           }
         , { 'annal:field_placement':    "small:0,12"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_title"
           }
         , { 'annal:field_placement':    "small:0,12;medium:0,6"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_month"
           }
         , { 'annal:field_placement':    "small:0,12;medium:6,6"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_year"
           }
         , { 'annal:field_placement':    "small:0,12"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_authors"
           }
         , { 'annal:field_placement':    "small:0,12"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_editors"
           }
         , { 'annal:field_placement':    "small:0,12"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_journal"
           }
         , { 'annal:field_placement':    "small:0,12"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_bookentry"
           }
         , { 'annal:field_placement':    "small:0,12"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_publication_details"
           }
         , { 'annal:field_placement':    "small:0,12"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_identifiers"
           }
         , { 'annal:field_placement':    "small:0,12"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_license"
           }
         , { 'annal:field_placement':    "small:0,12"
           , 'annal:field_id':           layout.FIELD_TYPEID+"/Bib_note"
           }
         ])
     # NOTE: context['fields'][i]['field_id'] comes from FieldDescription instance via
     #       bound_field, so type prefix is stripped.  This does not apply to the field
     #       ids actually coming from the view form.
     self.assertEqual(r.context['fields'][5]['field_id'],           'View_fields')
     self.assertEqual(r.context['fields'][5]['field_name'],         'View_fields')
     self.assertEqual(r.context['fields'][5]['field_label'],        'Fields')
     self.assertEqual(r.context['fields'][5]['field_property_uri'], "annal:view_fields")
     self.assertEqual(r.context['fields'][5]['field_value_mode'],   "Value_direct")
     self.assertEqual(r.context['fields'][5]['field_value_type'],  "annal:View_field")
     self.assertEqual(r.context['fields'][5]['field_value'],        expect_field_data)
     self.assertEqual(r.context['fields'][5]['options'],            self.no_options)
     return
Ejemplo n.º 33
0
 def test_get_recordview_edit_bibentry(self):
     # coll_id      = "testcoll"
     # type_id      = layout.VIEW_TYPEID
     # entity_id    = "BibEntry_view"
     # view_label   = "@@@BibEntry_view_label"
     # entity_label = "%s/%s/%s"%(coll_id, type_id, entity_id)
     # entity_descr = "coll %s, type %s, entity %s"%(coll_id, type_id, entity_id)
     # Retrieve view form
     u = entitydata_edit_url("edit",
                             "testcoll",
                             layout.VIEW_TYPEID,
                             entity_id="BibEntry_view",
                             view_id="View_view")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Test context
     view_url = collection_entity_view_url("testcoll", layout.VIEW_TYPEID,
                                           "BibEntry_view")
     self.assertEqual(r.context['coll_id'], "testcoll")
     self.assertEqual(r.context['type_id'], layout.VIEW_TYPEID)
     self.assertEqual(r.context['entity_id'], "BibEntry_view")
     self.assertEqual(r.context['orig_id'], "BibEntry_view")
     self.assertEqual(r.context['entity_uri'], None)
     self.assertEqual(r.context['action'], "edit")
     self.assertEqual(r.context['edit_view_button'], False)
     self.assertEqual(r.context['continuation_url'], "")
     # Skip checking fields 0-4 - that's already been covered
     # log.info("*** fields[5]['options']:     "+repr(r.context['fields'][5]['options']))
     # log.info("*** fields[5]['field_value']: "+repr(r.context['fields'][5]['field_value']))
     # @@TODO: revise for more useful BibEntry structure
     expect_field_data = ([{
         'annal:field_placement':
         "small:0,12;medium:0,6",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Entity_id"
     }, {
         'annal:field_placement':
         "small:0,12;medium:6,6",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_type"
     }, {
         'annal:field_placement':
         "small:0,12",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_title"
     }, {
         'annal:field_placement':
         "small:0,12;medium:0,6",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_month"
     }, {
         'annal:field_placement':
         "small:0,12;medium:6,6",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_year"
     }, {
         'annal:field_placement':
         "small:0,12",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_authors"
     }, {
         'annal:field_placement':
         "small:0,12",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_editors"
     }, {
         'annal:field_placement':
         "small:0,12",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_journal"
     }, {
         'annal:field_placement':
         "small:0,12",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_bookentry"
     }, {
         'annal:field_placement':
         "small:0,12",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_publication_details"
     }, {
         'annal:field_placement':
         "small:0,12",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_identifiers"
     }, {
         'annal:field_placement':
         "small:0,12",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_license"
     }, {
         'annal:field_placement':
         "small:0,12",
         'annal:field_id':
         layout.FIELD_TYPEID + "/Bib_note"
     }])
     # NOTE: context['fields'][i]['field_id'] comes from FieldDescription instance via
     #       bound_field, so type prefix is stripped.  This does not apply to the field
     #       ids actually coming from the view form.
     f5 = r.context['fields'][5]
     self.assertEqual(f5.field_id, 'View_fields')
     self.assertEqual(f5.field_name, 'View_fields')
     self.assertEqual(f5.field_label, 'Fields')
     self.assertEqual(f5.description['field_property_uri'],
                      "annal:view_fields")
     self.assertEqual(f5.description['field_value_mode'], "Value_direct")
     self.assertEqual(f5.description['field_value_type'],
                      "annal:View_field")
     self.assertEqual(f5['field_value'], expect_field_data)
     self.assertEqual(f5['options'], self.no_options)
     return