|
@@ -27,7 +27,8 @@ def dc_rdf():
|
|
|
PREFIX dcterms: <http://purl.org/dc/terms/>
|
|
|
PREFIX ldp: <http://www.w3.org/ns/ldp
|
|
|
|
|
|
- <> dcterms:title "Direct Container" ;
|
|
|
+ <> a ldp:DirectContainer ;
|
|
|
+ dcterms:title "Direct Container" ;
|
|
|
ldp:membershipResource <info:fcres/member> ;
|
|
|
ldp:hasMemberRelation dcterms:relation .
|
|
|
'''
|
|
@@ -40,7 +41,8 @@ def ic_rdf():
|
|
|
PREFIX ldp: <http://www.w3.org/ns/ldp
|
|
|
PREFIX ore: <http://www.openarchives.org/ore/terms/>
|
|
|
|
|
|
- <> dcterms:title "Indirect Container" ;
|
|
|
+ <> a ldp:IndirectContainer ;
|
|
|
+ dcterms:title "Indirect Container" ;
|
|
|
ldp:membershipResource <info:fcres/top_container> ;
|
|
|
ldp:hasMemberRelation dcterms:relation ;
|
|
|
ldp:insertedContentRelation ore:proxyFor .
|
|
@@ -343,7 +345,7 @@ class TestResourceCRUD:
|
|
|
_, dc_rsrc = rsrc_api.create_or_replace(
|
|
|
dc_uid, rdf_data=dc_rdf, rdf_fmt='turtle')
|
|
|
|
|
|
- child_uid = rsrc_api.create(dc_uid, None).uid
|
|
|
+ child_uid = rsrc_api.create(dc_uid).uid
|
|
|
member_rsrc = rsrc_api.get('/member')
|
|
|
|
|
|
with env.app_globals.rdf_store.txn_ctx():
|
|
@@ -351,9 +353,80 @@ class TestResourceCRUD:
|
|
|
member_rsrc.uri: nsc['dcterms'].relation: nsc['fcres'][child_uid]]
|
|
|
|
|
|
|
|
|
+ def test_create_ldp_dc_defaults1(self):
|
|
|
+ """
|
|
|
+ Create an LDP Direct Container with default values.
|
|
|
+ """
|
|
|
+ dc_rdf = b'''
|
|
|
+ PREFIX dcterms: <http://purl.org/dc/terms/>
|
|
|
+ PREFIX ldp: <http://www.w3.org/ns/ldp
|
|
|
+
|
|
|
+ <> a ldp:DirectContainer ;
|
|
|
+ ldp:membershipResource <info:fcres/member> .
|
|
|
+ '''
|
|
|
+ dc_uid = '/test_dc_defaults1'
|
|
|
+ _, dc_rsrc = rsrc_api.create_or_replace(
|
|
|
+ dc_uid, rdf_data=dc_rdf, rdf_fmt='turtle')
|
|
|
+
|
|
|
+ child_uid = rsrc_api.create(dc_uid).uid
|
|
|
+ member_rsrc = rsrc_api.get('/member')
|
|
|
+
|
|
|
+ with env.app_globals.rdf_store.txn_ctx():
|
|
|
+ assert member_rsrc.imr[
|
|
|
+ member_rsrc.uri: nsc['ldp'].member: nsc['fcres'][child_uid]
|
|
|
+ ]
|
|
|
+
|
|
|
+
|
|
|
+ def test_create_ldp_dc_defaults2(self):
|
|
|
+ """
|
|
|
+ Create an LDP Direct Container with default values.
|
|
|
+ """
|
|
|
+ dc_rdf = b'''
|
|
|
+ PREFIX dcterms: <http://purl.org/dc/terms/>
|
|
|
+ PREFIX ldp: <http://www.w3.org/ns/ldp
|
|
|
+
|
|
|
+ <> a ldp:DirectContainer ;
|
|
|
+ ldp:hasMemberRelation dcterms:relation .
|
|
|
+ '''
|
|
|
+ dc_uid = '/test_dc_defaults2'
|
|
|
+ _, dc_rsrc = rsrc_api.create_or_replace(
|
|
|
+ dc_uid, rdf_data=dc_rdf, rdf_fmt='turtle')
|
|
|
+
|
|
|
+ child_uid = rsrc_api.create(dc_uid).uid
|
|
|
+ member_rsrc = rsrc_api.get(dc_uid)
|
|
|
+
|
|
|
+ with env.app_globals.rdf_store.txn_ctx():
|
|
|
+
|
|
|
+ assert member_rsrc.imr[
|
|
|
+ member_rsrc.uri: nsc['dcterms'].relation:
|
|
|
+ nsc['fcres'][child_uid]]
|
|
|
+
|
|
|
+
|
|
|
+ def test_create_ldp_dc_defaults3(self):
|
|
|
+ """
|
|
|
+ Create an LDP Direct Container with default values.
|
|
|
+ """
|
|
|
+ dc_rdf = b'''
|
|
|
+ PREFIX dcterms: <http://purl.org/dc/terms/>
|
|
|
+ PREFIX ldp: <http://www.w3.org/ns/ldp
|
|
|
+
|
|
|
+ <> a ldp:DirectContainer .
|
|
|
+ '''
|
|
|
+ dc_uid = '/test_dc_defaults3'
|
|
|
+ _, dc_rsrc = rsrc_api.create_or_replace(
|
|
|
+ dc_uid, rdf_data=dc_rdf, rdf_fmt='turtle')
|
|
|
+
|
|
|
+ child_uid = rsrc_api.create(dc_uid, None).uid
|
|
|
+ member_rsrc = rsrc_api.get(dc_uid)
|
|
|
+
|
|
|
+ with env.app_globals.rdf_store.txn_ctx():
|
|
|
+ assert member_rsrc.imr[
|
|
|
+ member_rsrc.uri: nsc['ldp'].member: nsc['fcres'][child_uid]]
|
|
|
+
|
|
|
+
|
|
|
def test_indirect_container(self, ic_rdf):
|
|
|
"""
|
|
|
- Create an indirect container verify special properties.
|
|
|
+ Create an indirect container and verify special properties.
|
|
|
"""
|
|
|
cont_uid = '/top_container'
|
|
|
ic_uid = '{}/test_ic'.format(cont_uid)
|
|
@@ -383,6 +456,81 @@ class TestResourceCRUD:
|
|
|
nsc['fcres'][target_uid]]
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
@pytest.mark.usefixtures('db')
|
|
|
class TestAdvancedDelete:
|