def test_post_edit_type_invalid_id(self): self._create_record_type("edittype") self._check_record_type_values("edittype") # Form post with invalid ID f = recordtype_entity_view_form_data(type_id="!badtype", orig_id="edittype", action="edit", update="Updated RecordType") u = entitydata_edit_url("edit", "testcoll", layout.TYPE_TYPEID, entity_id="edittype", view_id="Type_view") r = self.client.post(u, f) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertContains(r, "<h3>Problem with record type identifier</h3>") # Test context self._check_context_fields( r, action="edit", type_id="!badtype", orig_type_id="edittype", type_label=None, type_uri=None, type_supertype_uris=[], ) # Check original data is unchanged self._check_record_type_values("edittype") return
def test_post_edit_type_new_id(self): # Check logic applied when type is renamed (t, d1, e1) = self._create_record_type("edittype1", entity_id="typeentity") self.assertTrue(RecordType.exists(self.testcoll, "edittype1")) self.assertFalse(RecordType.exists(self.testcoll, "edittype2")) self.assertTrue(RecordTypeData.exists(self.testcoll, "edittype1")) self.assertFalse(RecordTypeData.exists(self.testcoll, "edittype2")) self.assertTrue(EntityData.exists(d1, "typeentity")) self._check_record_type_values("edittype1") f = recordtype_entity_view_form_data( type_id="edittype2", orig_id="edittype1", action="edit", update="Updated RecordType" ) u = entitydata_edit_url( "edit", "testcoll", layout.TYPE_TYPEID, entity_id="edittype1", view_id="Type_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'], self.continuation_url) # Check that new record type exists and old does not self.assertFalse(RecordType.exists(self.testcoll, "edittype1")) self.assertTrue(RecordType.exists(self.testcoll, "edittype2")) self._check_record_type_values("edittype2", update="Updated RecordType") # Check that type data directory has been renamed self.assertFalse(RecordTypeData.exists(self.testcoll, "edittype1")) self.assertTrue(RecordTypeData.exists(self.testcoll, "edittype2")) self.assertFalse(EntityData.exists(d1, "typeentity")) d2 = RecordTypeData.load(self.testcoll, "edittype2") self.assertTrue(EntityData.exists(d2, "typeentity")) return
def test_post_copy_type_invalid_id(self): f = recordtype_entity_view_form_data(type_id="!badtype", orig_id="Default_type", action="copy", update="Updated RecordType") u = entitydata_edit_url("copy", "testcoll", layout.TYPE_TYPEID, entity_id="Default_type", view_id="Type_view") r = self.client.post(u, f) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertContains(r, "<h3>Problem with record type identifier</h3>") # Test context self._check_context_fields( r, action="copy", type_id="!badtype", orig_type_id="Default_type", type_label=None, type_uri=None, type_supertype_uris=[], ) return
def test_post_edit_type_invalid_id(self): self._create_record_type("edittype") self._check_record_type_values("edittype") # Form post with invalid ID f = recordtype_entity_view_form_data( type_id="!badtype", orig_id="edittype", action="edit", update="Updated RecordType" ) u = entitydata_edit_url( "edit", "testcoll", layout.TYPE_TYPEID, entity_id="edittype", view_id="Type_view" ) r = self.client.post(u, f) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertContains(r, "<h3>Problem with record type identifier</h3>") # Test context self._check_context_fields(r, action="edit", type_id="!badtype", orig_type_id="edittype", type_label=None, type_uri=None, type_supertype_uris=[], ) # Check original data is unchanged self._check_record_type_values("edittype") return
def test_post_edit_type_invalid_id(self): self._create_record_type("edittype") self._check_record_type_values("edittype") # Form post with invalid ID f = recordtype_entity_view_form_data(type_id="!badtype", orig_id="edittype", action="edit", update="Updated RecordType") u = entitydata_edit_url("edit", "testcoll", "_type", entity_id="edittype", view_id="Type_view") r = self.client.post(u, f) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertContains(r, "<h3>Problem with record type identifier</h3>") # Test context expect_context = recordtype_entity_view_context_data( type_id="!badtype", orig_id="edittype", action="edit", update="Updated RecordType") self.assertDictionaryMatch(r.context, expect_context) # Check original data is unchanged self._check_record_type_values("edittype") return
def new_type(self): # requires CONFIG u = entitydata_edit_url(action="new", coll_id="testcoll", type_id="_type", view_id="Default_view") f = recordtype_entity_view_form_data(action="new", coll_id="testcoll", type_id="new_type", orig_id="orig_type") r = self.client.post(u, f) return r
def edit_type(self): # requires CONFIG e = self.create_type("edit_type") u = entitydata_edit_url(action="edit", coll_id="testcoll", type_id="_type", entity_id="edit_type", view_id="Default_view") f = recordtype_entity_view_form_data(action="edit", coll_id="testcoll", type_id="edit_type") r = self.client.post(u, f) return r
def test_post_new_type_cancel(self): self.assertFalse(RecordType.exists(self.testcoll, "newtype")) f = recordtype_entity_view_form_data( type_id="newtype", action="new", cancel="Cancel", update="Updated RecordType" ) u = entitydata_edit_url("new", "testcoll", layout.TYPE_TYPEID, view_id="Type_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'], self.continuation_url) # Check that new record type still does not exist self.assertFalse(RecordType.exists(self.testcoll, "newtype")) return
def test_post_edit_type(self): self._create_record_type("edittype") self._check_record_type_values("edittype") f = recordtype_entity_view_form_data( type_id="edittype", orig_id="edittype", action="edit", update="Updated RecordType" ) u = entitydata_edit_url("edit", "testcoll", layout.TYPE_TYPEID, entity_id="edittype", view_id="Type_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'], self.continuation_url) # Check that new record type exists self._check_record_type_values("edittype", update="Updated RecordType") return
def test_post_new_type(self): self.assertFalse(RecordType.exists(self.testcoll, "newtype")) f = recordtype_entity_view_form_data( type_id="newtype", action="new", update="RecordType", type_uri="test:type" ) u = entitydata_edit_url("new", "testcoll", layout.TYPE_TYPEID, view_id="Type_view") r = self.client.post(u, f) # print r.content self.assertEqual(r.status_code, 302) self.assertEqual(r.reason_phrase, "FOUND") self.assertEqual(r.content, "") self.assertEqual(r['location'], self.continuation_url) # Check that new record type exists self._check_record_type_values("newtype", update="RecordType", type_uri="test:type") return
def test_post_copy_type_missing_id(self): f = recordtype_entity_view_form_data(action="copy", update="Updated RecordType") u = entitydata_edit_url("copy", "testcoll", "_type", entity_id="Default_type", view_id="Type_view") r = self.client.post(u, f) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertContains(r, "<h3>Problem with record type identifier</h3>") expect_context = recordtype_entity_view_context_data( action="copy", update="Updated RecordType") self.assertDictionaryMatch(r.context, expect_context) return
def test_define_view_list_task(self): # Create new type self._create_record_type("tasktype") self._check_record_type_values("tasktype") # Post define view+list f = recordtype_entity_view_form_data( type_id="tasktype", type_uri="test:tasktype", task="Define_view_list" ) u = entitydata_edit_url( "edit", "testcoll", layout.TYPE_TYPEID, entity_id="tasktype", view_id="Type_view" ) r = self.client.post(u, f) self.assertEqual(r.status_code, 302) self.assertEqual(r.reason_phrase, "FOUND") self.assertEqual(r.content, "") # Check content of type, view and list common_vals = ( { 'type_id': "tasktype" , 'type_label': "RecordType testcoll/tasktype" }) expect_type_values = ( { 'annal:type': "annal:Type" , 'rdfs:label': "RecordType testcoll/%(type_id)s"%common_vals , 'annal:uri': "test:%(type_id)s"%common_vals , 'annal:type_view': "_view/%(type_id)s"%common_vals , 'annal:type_list': "_list/%(type_id)s"%common_vals }) expect_view_values = ( { 'annal:type': "annal:View" , 'rdfs:label': message.TYPE_VIEW_LABEL%common_vals['type_label'] , 'annal:record_type': "test:%(type_id)s"%common_vals }) expect_list_values = ( { 'annal:type': "annal:List" , 'rdfs:label': message.TYPE_LIST_LABEL%common_vals['type_label'] , 'annal:default_view': "_view/%(type_id)s"%common_vals , 'annal:default_type': "_type/%(type_id)s"%common_vals , 'annal:record_type': "test:%(type_id)s"%common_vals , 'annal:display_type': "List" , 'annal:list_entity_selector': "'test:%(type_id)s' in [@type]"%common_vals }) self.check_entity_values(layout.TYPE_TYPEID, "%(type_id)s"%common_vals, expect_type_values) self.check_entity_values(layout.VIEW_TYPEID, "%(type_id)s"%common_vals, expect_view_values) self.check_entity_values(layout.LIST_TYPEID, "%(type_id)s"%common_vals, expect_list_values) return
def test_post_new_type_missing_id(self): f = recordtype_entity_view_form_data(action="new", update="RecordType") u = entitydata_edit_url("new", "testcoll", layout.TYPE_TYPEID, view_id="Type_view") r = self.client.post(u, f) # print r.content self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertContains(r, "<h3>Problem with record type identifier</h3>") # Test context self._check_context_fields(r, action="new", type_id="", orig_type_id="orig_type_id", type_label=None, type_uri=None, type_supertype_uris=[], ) return
def test_post_new_type_cancel(self): self.assertFalse(RecordType.exists(self.testcoll, "newtype")) f = recordtype_entity_view_form_data(type_id="newtype", action="new", cancel="Cancel", update="Updated RecordType") u = entitydata_edit_url("new", "testcoll", "_type", view_id="Type_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'], self.continuation_url) # Check that new record type still does not exist self.assertFalse(RecordType.exists(self.testcoll, "newtype")) return
def test_post_new_type(self): self.assertFalse(RecordType.exists(self.testcoll, "newtype")) f = recordtype_entity_view_form_data(type_id="newtype", action="new", update="RecordType") u = entitydata_edit_url("new", "testcoll", "_type", view_id="Type_view") r = self.client.post(u, f) # print r.content self.assertEqual(r.status_code, 302) self.assertEqual(r.reason_phrase, "FOUND") self.assertEqual(r.content, "") self.assertEqual(r['location'], self.continuation_url) # Check that new record type exists self._check_record_type_values("newtype", update="RecordType") return
def test_post_copy_type(self): self.assertFalse(RecordType.exists(self.testcoll, "copytype")) f = recordtype_entity_view_form_data(type_id="copytype", orig_id="Default_type", action="copy", update="RecordType") u = entitydata_edit_url("copy", "testcoll", layout.TYPE_TYPEID, entity_id="Default_type", view_id="Type_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'], self.continuation_url) # Check that new record type exists self._check_record_type_values("copytype", update="RecordType") return
def test_post_edit_type(self): self._create_record_type("edittype") self._check_record_type_values("edittype") f = recordtype_entity_view_form_data(type_id="edittype", orig_id="edittype", action="edit", update="Updated RecordType") u = entitydata_edit_url("edit", "testcoll", "_type", entity_id="edittype", view_id="Type_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'], self.continuation_url) # Check that new record type exists self._check_record_type_values("edittype", update="Updated RecordType") return
def test_post_copy_type_invalid_id(self): f = recordtype_entity_view_form_data( type_id="!badtype", orig_id="Default_type", action="copy", update="Updated RecordType" ) u = entitydata_edit_url( "copy", "testcoll", layout.TYPE_TYPEID, entity_id="Default_type", view_id="Type_view" ) r = self.client.post(u, f) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertContains(r, "<h3>Problem with record type identifier</h3>") # Test context self._check_context_fields(r, action="copy", type_id="!badtype", orig_type_id="Default_type", type_label=None, type_uri=None, type_supertype_uris=[], ) return
def test_post_new_type_invalid_id(self): f = recordtype_entity_view_form_data(type_id="!badtype", orig_id="orig_type_id", action="new", update="RecordType") u = entitydata_edit_url("new", "testcoll", "_type", view_id="Type_view") r = self.client.post(u, f) self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertContains(r, "<h3>Problem with record type identifier</h3>") # Test context expect_context = recordtype_entity_view_context_data( type_id="!badtype", orig_id="orig_type_id", action="new", update="RecordType") self.assertDictionaryMatch(r.context, expect_context) return
def test_post_edit_type_cancel(self): self._create_record_type("edittype") self._check_record_type_values("edittype") f = recordtype_entity_view_form_data(type_id="edittype", orig_id="edittype", action="edit", cancel="Cancel", update="Updated RecordType") u = entitydata_edit_url("edit", "testcoll", layout.TYPE_TYPEID, entity_id="edittype", view_id="Type_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'], self.continuation_url) # Check that target record type still does not exist and unchanged self._check_record_type_values("edittype") return
def test_post_new_type_missing_id(self): f = recordtype_entity_view_form_data(action="new", update="RecordType") u = entitydata_edit_url("new", "testcoll", layout.TYPE_TYPEID, view_id="Type_view") r = self.client.post(u, f) # print r.content self.assertEqual(r.status_code, 200) self.assertEqual(r.reason_phrase, "OK") self.assertContains(r, "<h3>Problem with record type identifier</h3>") # Test context self._check_context_fields( r, action="new", type_id="", orig_type_id="orig_type_id", type_label=None, type_uri=None, type_supertype_uris=[], ) return
def test_post_edit_type_new_id(self): # Check logic applied when type is renamed (t, d1, e1) = self._create_record_type("edittype1", entity_id="typeentity") self.assertTrue(RecordType.exists(self.testcoll, "edittype1")) self.assertFalse(RecordType.exists(self.testcoll, "edittype2")) self.assertTrue(RecordTypeData.exists(self.testcoll, "edittype1")) self.assertFalse(RecordTypeData.exists(self.testcoll, "edittype2")) self.assertTrue(EntityData.exists(d1, "typeentity")) self._check_record_type_values("edittype1") f = recordtype_entity_view_form_data(type_id="edittype2", orig_id="edittype1", action="edit", update="Updated RecordType") u = entitydata_edit_url("edit", "testcoll", "_type", entity_id="edittype1", view_id="Type_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'], self.continuation_url) # Check that new record type exists and old does not self.assertFalse(RecordType.exists(self.testcoll, "edittype1")) self.assertTrue(RecordType.exists(self.testcoll, "edittype2")) self._check_record_type_values("edittype2", update="Updated RecordType") # Check that type data directory has been renamed self.assertFalse(RecordTypeData.exists(self.testcoll, "edittype1")) self.assertTrue(RecordTypeData.exists(self.testcoll, "edittype2")) self.assertFalse(EntityData.exists(d1, "typeentity")) d2 = RecordTypeData.load(self.testcoll, "edittype2") self.assertTrue(EntityData.exists(d2, "typeentity")) return
def test_define_view_list_task(self): # Create new type self._create_record_type("tasktype") self._check_record_type_values("tasktype") # Post define view+list f = recordtype_entity_view_form_data(type_id="tasktype", type_uri="test:tasktype", task="Define_view_list") u = entitydata_edit_url("edit", "testcoll", layout.TYPE_TYPEID, entity_id="tasktype", view_id="Type_view") r = self.client.post(u, f) self.assertEqual(r.status_code, 302) self.assertEqual(r.reason_phrase, "FOUND") self.assertEqual(r.content, "") # Check content of type, view and list common_vals = ({ 'type_id': "tasktype", 'type_label': "RecordType testcoll/tasktype" }) expect_type_values = ({ 'annal:type': "annal:Type", 'rdfs:label': "RecordType testcoll/%(type_id)s" % common_vals, 'annal:uri': "test:%(type_id)s" % common_vals, 'annal:type_view': "_view/%(type_id)s" % common_vals, 'annal:type_list': "_list/%(type_id)s" % common_vals }) expect_view_values = ({ 'annal:type': "annal:View", 'rdfs:label': message.TYPE_VIEW_LABEL % common_vals['type_label'], 'annal:record_type': "test:%(type_id)s" % common_vals }) expect_list_values = ({ 'annal:type': "annal:List", 'rdfs:label': message.TYPE_LIST_LABEL % common_vals['type_label'], 'annal:default_view': "_view/%(type_id)s" % common_vals, 'annal:default_type': "_type/%(type_id)s" % common_vals, 'annal:record_type': "test:%(type_id)s" % common_vals, 'annal:display_type': "List", 'annal:list_entity_selector': "'test:%(type_id)s' in [@type]" % common_vals }) self.check_entity_values(layout.TYPE_TYPEID, "%(type_id)s" % common_vals, expect_type_values) self.check_entity_values(layout.VIEW_TYPEID, "%(type_id)s" % common_vals, expect_view_values) self.check_entity_values(layout.LIST_TYPEID, "%(type_id)s" % common_vals, expect_list_values) return