示例#1
0
 def test_upload_image_resource(self):
     # See https://docs.djangoproject.com/en/1.7/topics/testing/tools/#django.test.Client.post
     with open(self.imagepath) as fp:
         f = entitydata_default_view_form_data(type_id="testupltype", entity_id="test1", action="edit")
         f['upl_field'] = fp     # Upload file with submission
         u = entitydata_edit_url("edit", "testcoll", "testupltype", entity_id="test1", view_id="testuplimageview")
         r = self.client.post(u, f)
     self.assertEqual(r.status_code,   302)
     self.assertEqual(r.reason_phrase, "FOUND")
     # Retrieve updated form
     r = self.client.get(u)
     # Test context
     self.assertEqual(len(r.context['fields']), 4)
     f0 = context_view_field(r.context, 0, 0)
     self.assertEqual(f0.field_id,     "Entity_id")
     self.assertEqual(f0.field_value,  "test1")
     f1 = context_view_field(r.context, 1, 0)
     self.assertEqual(f1.field_id,     "Entity_label")
     f2 = context_view_field(r.context, 2, 0)
     self.assertEqual(f2.field_id,     "Entity_comment")
     f3 = context_view_field(r.context, 3, 0)
     self.assertEqual(f3.field_id,     "Test_upload_image")
     self.assertDictionaryMatch(f3.field_value, test_upload_image_field_value())
     # Read back and compare entity resource just created
     siteobj = open(self.imagepath, "rb")
     testobj = self.test_upl_type_info.get_fileobj(
         "test1", "upl_field", "annal:Image", "image/jpeg", "rb"
         )
     self.assertTrue(siteobj.read() == testobj.read(), "Uploaded image != original")
     # self.assertEqual(siteobj.read(), testobj.read())
     return
示例#2
0
    def test_image_edit_field(self):
        # Upload to an image view field
        with open(self.imagepath) as fp:
            f = entitydata_default_view_form_data(type_id="testimgtype", entity_id="test1", action="edit")
            f['img_field'] = fp     # Upload file with submission
            u = entitydata_edit_url("edit", "testcoll", "testimgtype", entity_id="test1", view_id="testimgview")
            r = self.client.post(u, f)
        self.assertEqual(r.status_code,   302)
        self.assertEqual(r.reason_phrase, "FOUND")

        # Read back and compare entity resource just created
        siteobj = open(self.imagepath, "rb")
        testobj = self.test_img_type_info.get_fileobj(
            "test1", "img_field", "annal:Image", "image/jpeg", "rb"
            )
        self.assertTrue(siteobj.read() == testobj.read(), "Referenced image != original")

        # Retrieve updated form
        r = self.client.get(u)
        # Test context
        # print "@@ "+context_field_map(r.context)
        self.assertEqual(len(r.context['fields']), 4)
        f0 = context_view_field(r.context, 0, 0)
        self.assertEqual(f0.field_id,     "Entity_id")
        self.assertEqual(f0.field_value,  "test1")
        f1 = context_view_field(r.context, 1, 0)
        self.assertEqual(f1.field_id,     "Entity_label")
        f2 = context_view_field(r.context, 2, 0)
        self.assertEqual(f2.field_id,     "Entity_comment")
        f3 = context_view_field(r.context, 3, 0)
        self.assertEqual(f3.field_id,     "Test_image")
        self.assertDictionaryMatch(f3.field_value, test_image_field_value())
        return
示例#3
0
 def test_post_edit_entity_enum_type_new(self):
     self._create_entity_data("entitynewtype")
     e1 = self._check_entity_data_values("entitynewtype")
     f = entitydata_default_view_form_data(entity_id="entitynewtype",
                                           action="edit",
                                           update="Updated entity",
                                           new_enum="entity_type__new_edit")
     u = entitydata_edit_url("edit",
                             "testcoll",
                             "testtype",
                             entity_id="entitynewtype",
                             view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content, "")
     # v = entitydata_edit_url("new", "testcoll", "_type", view_id="Type_view")
     v = entitydata_edit_url("edit",
                             "testcoll",
                             "_type",
                             "testtype",
                             view_id="Type_view")
     w = entitydata_edit_url("edit",
                             "testcoll",
                             "testtype",
                             entity_id="entitynewtype",
                             view_id="Default_view")
     c = continuation_url_param(w)
     self.assertIn(TestHostUri + v, r['location'])
     self.assertIn(c, r['location'])
     self._check_entity_data_values("entitynewtype",
                                    update="Updated entity")
     return
示例#4
0
 def test_post_new_entity_new_type(self):
     self.assertFalse(EntityData.exists(self.testdata, "entitynewtype"))
     f = entitydata_default_view_form_data(entity_id="entitynewtype",
                                           action="new",
                                           update="Updated entity",
                                           new_type="New type")
     u = entitydata_edit_url("new",
                             "testcoll",
                             "testtype",
                             view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content, "")
     v = TestHostUri + entitydata_edit_url(
         "new", "testcoll", "_type", view_id="Type_view")
     w = entitydata_edit_url("edit",
                             "testcoll",
                             "testtype",
                             entity_id="entitynewtype",
                             view_id="Default_view")
     c = continuation_url_param(w)
     self.assertIn(v, r['location'])
     self.assertIn(c, r['location'])
     self._check_entity_data_values("entitynewtype",
                                    update="Updated entity")
     return
 def test_post_default_form_use_view(self):
     self._create_entity_data("entityuseview")
     self.assertTrue(EntityData.exists(self.testdata, "entityuseview"))
     f = entitydata_default_view_form_data(
         entity_id="entityuseview",
         action="view",
         use_view="_view/Type_view",
     )
     f.pop('entity_id', None)
     u = entitydata_edit_url("view",
                             "testcoll",
                             "testtype",
                             "entityuseview",
                             view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content, "")
     v = TestHostUri + entitydata_edit_url("view",
                                           "testcoll",
                                           "testtype",
                                           entity_id="entityuseview",
                                           view_id="Type_view")
     c = continuation_url_param("/testsite/c/testcoll/d/testtype/")
     self.assertIn(v, r['location'])
     self.assertIn(c, r['location'])
     self._check_entity_data_values("entityuseview")
     return
    def test_image_rename(self):
        # This test that entity renaming also copies over an attachment

        # Upload image
        self.test_image_edit_field()

        # Rename entity
        f = entitydata_default_view_form_data(type_id="testimgtype",
                                              orig_id="test1",
                                              entity_id="test_new",
                                              action="edit")
        u = entitydata_edit_url("edit",
                                "testcoll",
                                "testimgtype",
                                entity_id="test1",
                                view_id="testimgview")
        r = self.client.post(u, f)
        self.assertEqual(r.status_code, 302)
        self.assertEqual(r.reason_phrase, "FOUND")

        # Read back and compare renamed entity resource
        siteobj = open(self.imagepath, "rb")
        testobj = self.test_img_type_info.get_fileobj("test_new", "img_field",
                                                      "annal:Image",
                                                      "image/jpeg", "rb")
        self.assertTrue(siteobj.read() == testobj.read(),
                        "Renamed entity image != original")
        return
 def test_post_view_entity_edit(self):
     self._create_entity_data("entityview")
     f = entitydata_default_view_form_data(entity_id="entityview",
                                           action="view",
                                           edit="Edit")
     u = entitydata_edit_url("view",
                             "testcoll",
                             "testtype",
                             entity_id="entityview",
                             view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content, "")
     e = TestHostUri + entitydata_edit_url("edit",
                                           "testcoll",
                                           "testtype",
                                           entity_id="entityview",
                                           view_id="Default_view")
     l = continuation_url_param(
         entitydata_list_type_url("testcoll", "testtype"))
     c = continuation_url_param(u, prev_cont=l)
     self.assertIn(e, r['location'])
     self.assertIn(c, r['location'])
     # 'http://test.example.com/testsite/c/testcoll/v/Default_view/testtype/entityview/!edit
     #   ?continuation_url=/testsite/c/testcoll/v/Default_view/testtype/entityview/!view
     #   %3Fcontinuation_url=/testsite/c/testcoll/d/testtype/'
     return
 def test_post_edit_entity_enum_type_new(self):
     self._create_entity_data("entitynewtype")
     e1 = self._check_entity_data_values("entitynewtype")
     f  = entitydata_default_view_form_data(
             entity_id="entitynewtype", action="edit", update="Updated entity", 
             new_enum="entity_type__new_edit"
             )
     u  = entitydata_edit_url(
         "edit", "testcoll", "testtype", entity_id="entitynewtype", 
         view_id="Default_view"
         )
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,   302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content,       "")
     # v = entitydata_edit_url("new", "testcoll", "_type", view_id="Type_view")
     v = entitydata_edit_url("edit", "testcoll", "_type", "testtype", view_id="Type_view")
     w = entitydata_edit_url(
         "edit", "testcoll", "testtype", entity_id="entitynewtype", 
         view_id="Default_view"
         )
     c = continuation_url_param(w)
     self.assertIn(TestHostUri+v, r['location'])
     self.assertIn(c, r['location'])
     self._check_entity_data_values("entitynewtype", update="Updated entity")
     return
 def test_post_view_entity_copy(self):
     self._create_entity_data("entityview")
     f = entitydata_default_view_form_data(entity_id="entityview",
                                           action="view",
                                           copy="Copy")
     u = entitydata_edit_url("view",
                             "testcoll",
                             "testtype",
                             entity_id="entityview",
                             view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content, "")
     e = TestHostUri + entitydata_edit_url("copy",
                                           "testcoll",
                                           "testtype",
                                           entity_id="entityview",
                                           view_id="Default_view")
     l = continuation_url_param(
         entitydata_list_type_url("testcoll", "testtype"))
     c = continuation_url_param(u, prev_cont=l)
     self.assertIn(e, r['location'])
     self.assertIn(c, r['location'])
     return
 def test_post_view_entity_close(self):
     self._create_entity_data("entityview")
     f = entitydata_default_view_form_data(entity_id="entityview", action="view", close="Close")
     u = entitydata_edit_url("view", "testcoll", "testtype", entity_id="entityview", view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,   302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content,       "")
     self.assertEqual(r['location'], TestHostUri + entitydata_list_type_url("testcoll", "testtype"))
     self._check_entity_data_values("entityview")
     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
示例#12
0
 def test_post_new_entity_enum_type_new_no_login(self):
     self.client.logout()
     f = entitydata_default_view_form_data(
             entity_id="entitynewtype", action="new", update="Updated entity", 
             new_enum="entity_type__new"
             )
     u = entitydata_edit_url("new", "testcoll", "testtype", view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,   401)
     self.assertEqual(r.reason_phrase, "Unauthorized")
     return
 def test_post_new_entity_enum_type_new_no_login(self):
     self.client.logout()
     f = entitydata_default_view_form_data(
             entity_id="entitynewtype", action="new", update="Updated entity", 
             new_enum="entity_type__new_edit"
             )
     u = entitydata_edit_url("new", "testcoll", "testtype", view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,   401)
     self.assertEqual(r.reason_phrase, "Unauthorized")
     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_reference_uploaded_resource(self):
     # Create uploaded resource (see previous test)
     with open(self.filepath) as fp:
         f = entitydata_default_view_form_data(type_id="testupltype",
                                               entity_id="test1",
                                               action="edit")
         f['upl_field'] = fp  # Upload file with submission
         u = entitydata_edit_url("view",
                                 "testcoll",
                                 "testupltype",
                                 entity_id="test1",
                                 view_id="testuplfileview")
         r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     # Display resource with reference
     u = entitydata_edit_url("view",
                             "testcoll",
                             "testreftype",
                             entity_id="test1",
                             view_id="testrefview")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Check display context
     self.assertEqual(len(r.context['fields']), 4)
     f0 = context_view_field(r.context, 0, 0)
     self.assertEqual(f0.field_id, "Entity_id")
     self.assertEqual(f0.field_value, "test1")
     f1 = context_view_field(r.context, 1, 0)
     self.assertEqual(f1.field_id, "Entity_label")
     self.assertEqual(f1.field_value, "test_ref_entity test1 label")
     f2 = context_view_field(r.context, 2, 0)
     self.assertEqual(f2.field_id, "Entity_comment")
     self.assertEqual(f2.field_value, "test_ref_entity test1 comment")
     f3 = context_view_field(r.context, 3, 0)
     basepath = TestBasePath + "/c/testcoll/d/testupltype/"
     # print "\n*****\n"+repr(context_view_field(r.context, i, 0).target_value)+"\n*****\n"
     self.assertEqual(f3.field_id, "Test_reference")
     self.assertEqual(f3.field_value, "testupltype/test1")
     self.assertEqual(f3.field_value_link, basepath + "test1/")
     self.assertEqual(f3.target_value['upload_name'], "upl_field")
     self.assertEqual(f3.target_value['resource_name'], "upl_field.md")
     self.assertEqual(f3.target_value['resource_type'], "text/markdown")
     self.assertEqual(f3.target_value['uploaded_file'], "testdatafile.md")
     self.assertEqual(f3.target_value['uploaded_size'], 137)
     self.assertEqual(f3.target_value_link, basepath + "test1/upl_field.md")
     return
 def test_post_view_entity_copy(self):
     self._create_entity_data("entityview")
     f = entitydata_default_view_form_data(entity_id="entityview", action="view", copy="Copy")
     u = entitydata_edit_url("view", "testcoll", "testtype", entity_id="entityview", view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,   302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content,       "")
     e = TestHostUri + entitydata_edit_url(
         "copy", "testcoll", "testtype", entity_id="entityview", view_id="Default_view"
         )
     l = continuation_url_param(entitydata_list_type_url("testcoll", "testtype"))
     c = continuation_url_param(u, prev_cont=l)
     self.assertIn(e, r['location'])
     self.assertIn(c, r['location'])
     return
 def test_reference_imported_resource(self):
     # Create imported resource (see previous test)
     f = entitydata_default_view_form_data(entity_id="test1",
                                           type_id="testimptype",
                                           action="edit",
                                           do_import="imp_field__import")
     f['imp_field'] = self.fileuri
     u = entitydata_edit_url("edit",
                             "testcoll",
                             "testimptype",
                             entity_id="test1",
                             view_id="testimpview")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     # Display resource with reference
     u = entitydata_edit_url("view",
                             "testcoll",
                             "testreftype",
                             entity_id="test1",
                             view_id="testrefview")
     r = self.client.get(u)
     self.assertEqual(r.status_code, 200)
     self.assertEqual(r.reason_phrase, "OK")
     # Check display context
     self.assertEqual(len(r.context['fields']), 4)
     f0 = context_view_field(r.context, 0, 0)
     self.assertEqual(f0.field_id, "Entity_id")
     self.assertEqual(f0.field_value, "test1")
     f1 = context_view_field(r.context, 1, 0)
     self.assertEqual(f1.field_id, "Entity_label")
     self.assertEqual(f1.field_value, "test_ref_entity test1 label")
     f2 = context_view_field(r.context, 2, 0)
     self.assertEqual(f2.field_id, "Entity_comment")
     self.assertEqual(f2.field_value, "test_ref_entity test1 comment")
     f3 = context_view_field(r.context, 3, 0)
     basepath = TestBasePath + "/c/testcoll/d/testimptype/"
     self.assertEqual(f3.field_id, "Test_reference")
     self.assertEqual(f3.field_value, "testimptype/test1")
     self.assertEqual(f3.field_value_link, basepath + "test1/")
     self.assertEqual(f3.target_value['import_name'], "imp_field")
     self.assertEqual(f3.target_value['resource_name'], "imp_field.md")
     self.assertEqual(f3.target_value['resource_type'], "text/markdown")
     self.assertEqual(f3.target_value_link, basepath + "test1/imp_field.md")
     return
 def test_post_new_entity_new_type(self):
     self.assertFalse(EntityData.exists(self.testdata, "entitynewtype"))
     f = entitydata_default_view_form_data(
         entity_id="entitynewtype", action="new", update="Updated entity", 
         new_type="New type"
         )
     u = entitydata_edit_url("new", "testcoll", "testtype", view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,   302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content,       "")
     v = TestHostUri + entitydata_edit_url("new", "testcoll", "_type", view_id="Type_view")
     w = entitydata_edit_url("edit", "testcoll", "testtype", entity_id="entitynewtype", view_id="Default_view")
     c = continuation_url_param(w)
     self.assertIn(v, r['location'])
     self.assertIn(c, r['location'])
     self._check_entity_data_values("entitynewtype", update="Updated entity")
     return
    def test_image_edit(self):
        # This test that entity editing leaves attachment intact

        # Upload image
        self.test_image_edit_field()

        # Edit entity
        f = entitydata_default_view_form_data(type_id="testimgtype",
                                              entity_id="test1",
                                              action="edit",
                                              update="Updated")
        u = entitydata_edit_url("edit",
                                "testcoll",
                                "testimgtype",
                                entity_id="test1",
                                view_id="testimgview")
        r = self.client.post(u, f)
        self.assertEqual(r.status_code, 302)
        self.assertEqual(r.reason_phrase, "FOUND")

        # Retrieve updated form
        r = self.client.get(u)
        # Test context
        self.assertEqual(len(r.context['fields']), 4)
        f0 = context_view_field(r.context, 0, 0)
        self.assertEqual(f0.field_id, "Entity_id")
        self.assertEqual(f0.field_value, "test1")
        f1 = context_view_field(r.context, 1, 0)
        self.assertEqual(f1.field_id, "Entity_label")
        self.assertEqual(f1.field_value, "Updated testcoll/testimgtype/test1")
        f2 = context_view_field(r.context, 2, 0)
        self.assertEqual(f2.field_id, "Entity_comment")
        f3 = context_view_field(r.context, 3, 0)
        self.assertEqual(f3.field_id, "Test_image")
        self.assertDictionaryMatch(f3.field_value, test_image_field_value())

        # Read back and compare entity resource
        siteobj = open(self.imagepath, "rb")
        testobj = self.test_img_type_info.get_fileobj("test1", "img_field",
                                                      "annal:Image",
                                                      "image/jpeg", "rb")
        self.assertTrue(siteobj.read() == testobj.read(),
                        "Edited entity image != original")
        return
 def test_post_view_entity_edit(self):
     self._create_entity_data("entityview")
     f = entitydata_default_view_form_data(entity_id="entityview", action="view", edit="Edit")
     u = entitydata_edit_url("view", "testcoll", "testtype", entity_id="entityview", view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,   302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content,       "")
     e = TestHostUri + entitydata_edit_url(
         "edit", "testcoll", "testtype", entity_id="entityview", view_id="Default_view"
         )
     l = continuation_url_param(entitydata_list_type_url("testcoll", "testtype"))
     c = continuation_url_param(u, prev_cont=l)
     self.assertIn(e, r['location'])
     self.assertIn(c, r['location'])
     # 'http://test.example.com/testsite/c/testcoll/v/Default_view/testtype/entityview/!edit
     #   ?continuation_url=/testsite/c/testcoll/v/Default_view/testtype/entityview/!view
     #   %3Fcontinuation_url=/testsite/c/testcoll/d/testtype/'
     return
 def test_post_view_entity_close(self):
     self._create_entity_data("entityview")
     f = entitydata_default_view_form_data(entity_id="entityview",
                                           action="view",
                                           close="Close")
     u = entitydata_edit_url("view",
                             "testcoll",
                             "testtype",
                             entity_id="entityview",
                             view_id="Default_view")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content, "")
     self.assertEqual(
         r['location'],
         TestHostUri + entitydata_list_type_url("testcoll", "testtype"))
     self._check_entity_data_values("entityview")
     return
示例#22
0
 def test_reference_uploaded_resource(self):
     # Create uploaded resource (see previous test)
     with open(self.filepath) as fp:
         f = entitydata_default_view_form_data(type_id="testupltype", entity_id="test1", action="edit")
         f['upl_field'] = fp     # Upload file with submission
         u = entitydata_edit_url(
             "view", "testcoll", "testupltype", entity_id="test1", view_id="testuplfileview"
             )
         r = self.client.post(u, f)
     self.assertEqual(r.status_code,   302)
     self.assertEqual(r.reason_phrase, "FOUND")
     # Display resource with reference
     u = entitydata_edit_url(
         "view", "testcoll", "testreftype", entity_id="test1", view_id="testrefview"
         )
     r = self.client.get(u)
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     # Check display context
     self.assertEqual(len(r.context['fields']), 4)
     f0 = context_view_field(r.context, 0, 0)
     self.assertEqual(f0.field_id,     "Entity_id")
     self.assertEqual(f0.field_value,  "test1")
     f1 = context_view_field(r.context, 1, 0)
     self.assertEqual(f1.field_id,     "Entity_label")
     self.assertEqual(f1.field_value,  "test_ref_entity test1 label")
     f2 = context_view_field(r.context, 2, 0)
     self.assertEqual(f2.field_id,     "Entity_comment")
     self.assertEqual(f2.field_value,  "test_ref_entity test1 comment")
     f3 = context_view_field(r.context, 3, 0)
     basepath = TestBasePath + "/c/testcoll/d/testupltype/"
     # print "\n*****\n"+repr(context_view_field(r.context, i, 0).target_value)+"\n*****\n"
     self.assertEqual(f3.field_id,     "Test_reference")
     self.assertEqual(f3.field_value,        "testupltype/test1")
     self.assertEqual(f3.field_value_link,   basepath+"test1/")
     self.assertEqual(f3.target_value['upload_name'],   "upl_field")
     self.assertEqual(f3.target_value['resource_name'], "upl_field.md")
     self.assertEqual(f3.target_value['resource_type'], "text/markdown")
     self.assertEqual(f3.target_value['uploaded_file'], "testdatafile.md")
     self.assertEqual(f3.target_value['uploaded_size'], 137)
     self.assertEqual(f3.target_value_link,  basepath+"test1/upl_field.md")
     return
示例#23
0
    def test_image_rename(self):
        # This test that entity renaming also copies over an attachment

        # Upload image
        self.test_image_edit_field()

        # Rename entity
        f = entitydata_default_view_form_data(type_id="testimgtype", orig_id="test1", entity_id="test_new", action="edit")
        u = entitydata_edit_url("edit", "testcoll", "testimgtype", entity_id="test1", view_id="testimgview")
        r = self.client.post(u, f)
        self.assertEqual(r.status_code,   302)
        self.assertEqual(r.reason_phrase, "FOUND")

        # Read back and compare renamed entity resource
        siteobj = open(self.imagepath, "rb")
        testobj = self.test_img_type_info.get_fileobj(
            "test_new", "img_field", "annal:Image", "image/jpeg", "rb"
            )
        self.assertTrue(siteobj.read() == testobj.read(), "Renamed entity image != original")
        return
示例#24
0
 def test_reference_imported_resource(self):
     # Create imported resource (see previous test)
     f = entitydata_default_view_form_data(
         entity_id="test1", type_id="testimptype", action="edit", 
         do_import="imp_field__import"
         )
     f['imp_field'] = self.fileuri
     u = entitydata_edit_url(
         "edit", "testcoll", "testimptype", entity_id="test1", view_id="testimpview"
         )
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,   302)
     self.assertEqual(r.reason_phrase, "FOUND")
     # Display resource with reference
     u = entitydata_edit_url(
         "view", "testcoll", "testreftype", entity_id="test1", view_id="testrefview"
         )
     r = self.client.get(u)
     self.assertEqual(r.status_code,   200)
     self.assertEqual(r.reason_phrase, "OK")
     # Check display context
     self.assertEqual(len(r.context['fields']), 4)
     f0 = context_view_field(r.context, 0, 0)
     self.assertEqual(f0.field_id,     "Entity_id")
     self.assertEqual(f0.field_value,  "test1")
     f1 = context_view_field(r.context, 1, 0)
     self.assertEqual(f1.field_id,     "Entity_label")
     self.assertEqual(f1.field_value,  "test_ref_entity test1 label")
     f2 = context_view_field(r.context, 2, 0)
     self.assertEqual(f2.field_id,     "Entity_comment")
     self.assertEqual(f2.field_value,  "test_ref_entity test1 comment")
     f3 = context_view_field(r.context, 3, 0)
     basepath = TestBasePath + "/c/testcoll/d/testimptype/"
     self.assertEqual(f3.field_id,           "Test_reference")
     self.assertEqual(f3.field_value,        "testimptype/test1")
     self.assertEqual(f3.field_value_link,   basepath+"test1/")
     self.assertEqual(f3.target_value['import_name'],   "imp_field")
     self.assertEqual(f3.target_value['resource_name'], "imp_field.md")
     self.assertEqual(f3.target_value['resource_type'], "text/markdown")
     self.assertEqual(f3.target_value_link,  basepath+"test1/imp_field.md")
     return
    def test_image_edit_field(self):
        # Upload to an image view field
        with open(self.imagepath) as fp:
            f = entitydata_default_view_form_data(type_id="testimgtype",
                                                  entity_id="test1",
                                                  action="edit")
            f['img_field'] = fp  # Upload file with submission
            u = entitydata_edit_url("edit",
                                    "testcoll",
                                    "testimgtype",
                                    entity_id="test1",
                                    view_id="testimgview")
            r = self.client.post(u, f)
        self.assertEqual(r.status_code, 302)
        self.assertEqual(r.reason_phrase, "FOUND")

        # Read back and compare entity resource just created
        siteobj = open(self.imagepath, "rb")
        testobj = self.test_img_type_info.get_fileobj("test1", "img_field",
                                                      "annal:Image",
                                                      "image/jpeg", "rb")
        self.assertTrue(siteobj.read() == testobj.read(),
                        "Referenced image != original")

        # Retrieve updated form
        r = self.client.get(u)
        # Test context
        # print "@@ "+context_field_map(r.context)
        self.assertEqual(len(r.context['fields']), 4)
        f0 = context_view_field(r.context, 0, 0)
        self.assertEqual(f0.field_id, "Entity_id")
        self.assertEqual(f0.field_value, "test1")
        f1 = context_view_field(r.context, 1, 0)
        self.assertEqual(f1.field_id, "Entity_label")
        f2 = context_view_field(r.context, 2, 0)
        self.assertEqual(f2.field_id, "Entity_comment")
        f3 = context_view_field(r.context, 3, 0)
        self.assertEqual(f3.field_id, "Test_image")
        self.assertDictionaryMatch(f3.field_value, test_image_field_value())
        return
 def test_upload_image_resource(self):
     # See https://docs.djangoproject.com/en/1.7/topics/testing/tools/#django.test.Client.post
     with open(self.imagepath) as fp:
         f = entitydata_default_view_form_data(type_id="testupltype",
                                               entity_id="test1",
                                               action="edit")
         f['upl_field'] = fp  # Upload file with submission
         u = entitydata_edit_url("edit",
                                 "testcoll",
                                 "testupltype",
                                 entity_id="test1",
                                 view_id="testuplimageview")
         r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     # Retrieve updated form
     r = self.client.get(u)
     # Test context
     self.assertEqual(len(r.context['fields']), 4)
     f0 = context_view_field(r.context, 0, 0)
     self.assertEqual(f0.field_id, "Entity_id")
     self.assertEqual(f0.field_value, "test1")
     f1 = context_view_field(r.context, 1, 0)
     self.assertEqual(f1.field_id, "Entity_label")
     f2 = context_view_field(r.context, 2, 0)
     self.assertEqual(f2.field_id, "Entity_comment")
     f3 = context_view_field(r.context, 3, 0)
     self.assertEqual(f3.field_id, "Test_upload_image")
     self.assertDictionaryMatch(f3.field_value,
                                test_upload_image_field_value())
     # Read back and compare entity resource just created
     siteobj = open(self.imagepath, "rb")
     testobj = self.test_upl_type_info.get_fileobj("test1", "upl_field",
                                                   "annal:Image",
                                                   "image/jpeg", "rb")
     self.assertTrue(siteobj.read() == testobj.read(),
                     "Uploaded image != original")
     # self.assertEqual(siteobj.read(), testobj.read())
     return
 def test_post_default_form_default_view(self):
     # Set default entity view, then ensure collection view redirects to it
     self._create_entity_data("entitydefaultview")
     f = entitydata_default_view_form_data(
         entity_id="entitydefaultview",
         action="view",
         default_view="default_view",
     )
     f.pop('entity_id', None)
     u = entitydata_edit_url(action="view",
                             view_id="Default_view",
                             coll_id="testcoll",
                             type_id="testtype",
                             entity_id="entitydefaultview")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content, "")
     v = TestHostUri + u
     self.assertIn(v, r['location'])
     ih = "info_head=Action%20completed"
     im = (
         "info_message=" +
         "Default%20view%20for%20collection%20testcoll%20changed%20to%20" +
         "Default_view/testtype/entitydefaultview")
     self.assertIn(ih, r['location'])
     self.assertIn(im, r['location'])
     # Get collection root and check redirect to entity view
     u2 = collection_view_url(coll_id="testcoll")
     r2 = self.client.get(u2)
     self.assertEqual(r2.status_code, 302)
     self.assertEqual(r2.reason_phrase, "FOUND")
     self.assertEqual(r2.content, "")
     v2 = TestHostUri + entitydata_edit_url(coll_id="testcoll",
                                            view_id="Default_view",
                                            type_id="testtype",
                                            entity_id="entitydefaultview")
     self.assertEqual(v2, r2['location'])
     return
 def test_import_resource(self):
     f = entitydata_default_view_form_data(entity_id="test1",
                                           type_id="testimptype",
                                           action="edit",
                                           do_import="imp_field__import")
     f['imp_field'] = self.fileuri
     u = entitydata_edit_url("edit",
                             "testcoll",
                             "testimptype",
                             entity_id="test1",
                             view_id="testimpview")
     r = self.client.post(u, f)
     self.assertEqual(r.status_code, 302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertMatch(r['location'], TestHostUri + u)
     # Read back form following redirect
     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)
     f0 = context_view_field(r.context, 0, 0)
     self.assertEqual(f0.field_id, "Entity_id")
     self.assertEqual(f0.field_value, "test1")
     f1 = context_view_field(r.context, 1, 0)
     self.assertEqual(f1.field_id, "Entity_label")
     f2 = context_view_field(r.context, 2, 0)
     self.assertEqual(f2.field_id, "Entity_comment")
     f3 = context_view_field(r.context, 3, 0)
     self.assertEqual(f3.field_id, "Test_import")
     self.assertDictionaryMatch(f3.field_value, test_import_field_value())
     # Read back and compare entity resource just created
     siteobj = open(TestBaseDir + "/README.md", "rb")
     testobj = self.test_imp_type_info.get_fileobj("test1", "imp_field",
                                                   "annal:Richtext",
                                                   "text/markdown", "rb")
     self.assertEqual(siteobj.read(), testobj.read())
     return
 def test_post_default_form_use_view(self):
     self._create_entity_data("entityuseview")
     self.assertTrue(EntityData.exists(self.testdata, "entityuseview"))
     f = entitydata_default_view_form_data(
             entity_id="entityuseview", action="view",
             use_view="_view/Type_view", 
             )
     f.pop('entity_id', None)
     u = entitydata_edit_url(
         "view", "testcoll", "testtype", "entityuseview", view_id="Default_view"
         )
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,   302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content,       "")
     v = TestHostUri + entitydata_edit_url(
         "view", "testcoll", "testtype", entity_id="entityuseview", view_id="Type_view"
         )
     c = continuation_url_param("/testsite/c/testcoll/d/testtype/")
     self.assertIn(v, r['location'])
     self.assertIn(c, r['location'])
     self._check_entity_data_values("entityuseview")
     return
 def test_post_default_form_default_view(self):
     # Set default entity view, then ensure collection view redirects to it
     self._create_entity_data("entitydefaultview")
     f = entitydata_default_view_form_data(
             entity_id="entitydefaultview", action="view",
             default_view="default_view", 
             )
     f.pop('entity_id', None)
     u = entitydata_edit_url(
         action="view", view_id="Default_view",
         coll_id="testcoll", type_id="testtype", entity_id="entitydefaultview"
         )
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,   302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertEqual(r.content,       "")
     v = TestHostUri + u
     self.assertIn(v, r['location'])
     ih = "info_head=Action%20completed"
     im = (
         "info_message="+
         "Default%20view%20for%20collection%20testcoll%20changed%20to%20"+
         "Default_view/testtype/entitydefaultview"
         )
     self.assertIn(ih, r['location'])
     self.assertIn(im, r['location'])
     # Get collection root and check redirect to entity view
     u2 = collection_view_url(coll_id="testcoll")
     r2 = self.client.get(u2)
     self.assertEqual(r2.status_code,   302)
     self.assertEqual(r2.reason_phrase, "FOUND")
     self.assertEqual(r2.content,       "")
     v2 = TestHostUri + entitydata_edit_url(
         coll_id="testcoll", view_id="Default_view", type_id="testtype", entity_id="entitydefaultview"
         )
     self.assertEqual(v2, r2['location'])
     return
示例#31
0
    def test_image_edit(self):
        # This test that entity editing leaves attachment intact

        # Upload image
        self.test_image_edit_field()

        # Edit entity
        f = entitydata_default_view_form_data(type_id="testimgtype", entity_id="test1", action="edit", update="Updated")
        u = entitydata_edit_url("edit", "testcoll", "testimgtype", entity_id="test1", view_id="testimgview")
        r = self.client.post(u, f)
        self.assertEqual(r.status_code,   302)
        self.assertEqual(r.reason_phrase, "FOUND")

        # Retrieve updated form
        r = self.client.get(u)
        # Test context
        self.assertEqual(len(r.context['fields']), 4)
        f0 = context_view_field(r.context, 0, 0)
        self.assertEqual(f0.field_id,     "Entity_id")
        self.assertEqual(f0.field_value,  "test1")
        f1 = context_view_field(r.context, 1, 0)
        self.assertEqual(f1.field_id,     "Entity_label")
        self.assertEqual(f1.field_value,  "Updated testcoll/testimgtype/test1")
        f2 = context_view_field(r.context, 2, 0)
        self.assertEqual(f2.field_id,     "Entity_comment")
        f3 = context_view_field(r.context, 3, 0)
        self.assertEqual(f3.field_id,     "Test_image")
        self.assertDictionaryMatch(f3.field_value, test_image_field_value())

        # Read back and compare entity resource
        siteobj = open(self.imagepath, "rb")
        testobj = self.test_img_type_info.get_fileobj(
            "test1", "img_field", "annal:Image", "image/jpeg", "rb"
            )
        self.assertTrue(siteobj.read() == testobj.read(), "Edited entity image != original")
        return
示例#32
0
 def test_import_resource(self):
     f = entitydata_default_view_form_data(
         entity_id="test1", type_id="testimptype", action="edit", 
         do_import="imp_field__import"
         )
     f['imp_field'] = self.fileuri
     u = entitydata_edit_url(
         "edit", "testcoll", "testimptype", entity_id="test1", view_id="testimpview"
         )
     r = self.client.post(u, f)
     self.assertEqual(r.status_code,   302)
     self.assertEqual(r.reason_phrase, "FOUND")
     self.assertMatch(r['location'], TestHostUri+u)
     # Read back form following redirect
     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)
     f0 = context_view_field(r.context, 0, 0)
     self.assertEqual(f0.field_id,     "Entity_id")
     self.assertEqual(f0.field_value,  "test1")
     f1 = context_view_field(r.context, 1, 0)
     self.assertEqual(f1.field_id,     "Entity_label")
     f2 = context_view_field(r.context, 2, 0)
     self.assertEqual(f2.field_id,     "Entity_comment")
     f3 = context_view_field(r.context, 3, 0)
     self.assertEqual(f3.field_id,     "Test_import")
     self.assertDictionaryMatch(f3.field_value, test_import_field_value())
     # Read back and compare entity resource just created
     siteobj = open(TestBaseDir+"/README.md", "rb")
     testobj = self.test_imp_type_info.get_fileobj(
         "test1", "imp_field", "annal:Richtext", "text/markdown", "rb"
         )
     self.assertEqual(siteobj.read(), testobj.read())
     return