sharing/tests: add test cases, cosmetics
This commit is contained in:
@@ -3000,7 +3000,7 @@ permissions: RrWw""")
|
|||||||
"collection_by_map": "True",
|
"collection_by_map": "True",
|
||||||
"collection_by_token": "True"},
|
"collection_by_token": "True"},
|
||||||
"logging": {"request_header_on_debug": "False",
|
"logging": {"request_header_on_debug": "False",
|
||||||
"response_content_on_debug": "False",
|
"response_content_on_debug": "True",
|
||||||
"rights_rule_doesnt_match_on_debug": "True",
|
"rights_rule_doesnt_match_on_debug": "True",
|
||||||
"request_content_on_debug": "True"},
|
"request_content_on_debug": "True"},
|
||||||
"rights": {"type": "from_file"}})
|
"rights": {"type": "from_file"}})
|
||||||
@@ -3055,7 +3055,7 @@ permissions: RrWw""")
|
|||||||
json_dict['PathOrToken'] = path_user1.replace(".ics", "dm-lc" + db_type + ".ics")
|
json_dict['PathOrToken'] = path_user1.replace(".ics", "dm-lc" + db_type + ".ics")
|
||||||
_, headers, answer = self._sharing_api_json("map", "create", check=200, login="owner1:owner1pw", json_dict=json_dict)
|
_, headers, answer = self._sharing_api_json("map", "create", check=200, login="owner1:owner1pw", json_dict=json_dict)
|
||||||
|
|
||||||
logging.info("\n*** deletee map user1/owner1, globally disabled / granted m -> 200")
|
logging.info("\n*** delete map user1/owner1, globally disabled / granted m -> 200")
|
||||||
json_dict['PathMapped'] = path_owner1_m
|
json_dict['PathMapped'] = path_owner1_m
|
||||||
json_dict['PathOrToken'] = path_user1.replace(".ics", "dm-lc" + db_type + ".ics")
|
json_dict['PathOrToken'] = path_user1.replace(".ics", "dm-lc" + db_type + ".ics")
|
||||||
_, headers, answer = self._sharing_api_json("map", "delete", check=200, login="owner1:owner1pw", json_dict=json_dict)
|
_, headers, answer = self._sharing_api_json("map", "delete", check=200, login="owner1:owner1pw", json_dict=json_dict)
|
||||||
@@ -3124,24 +3124,170 @@ permissions: RrWw""")
|
|||||||
json_dict['PathMapped'] = path_owner1_t
|
json_dict['PathMapped'] = path_owner1_t
|
||||||
_, headers, answer = self._sharing_api_json("token", "create", check=200, login="owner1:owner1pw", json_dict=json_dict)
|
_, headers, answer = self._sharing_api_json("token", "create", check=200, login="owner1:owner1pw", json_dict=json_dict)
|
||||||
|
|
||||||
logging.info("\n*** check PROPFIND priviledges list on collections directly")
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-token T (permit=True)")
|
||||||
priviledges_T = self._propfind_priviledges(path_owner1_T, login="owner1:owner1pw")
|
priviledges_T = self._propfind_priviledges(path_owner1_T, login="owner1:owner1pw")
|
||||||
assert "RADICALE:share-token" in priviledges_T
|
assert "RADICALE:share-token" in priviledges_T
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-token t (permit=True)")
|
||||||
priviledges_t = self._propfind_priviledges(path_owner1_t, login="owner1:owner1pw")
|
priviledges_t = self._propfind_priviledges(path_owner1_t, login="owner1:owner1pw")
|
||||||
assert "RADICALE:no-share-token" in priviledges_t
|
assert "RADICALE:share-token" not in priviledges_t
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-token * (permit=True)")
|
||||||
|
priviledges_p = self._propfind_priviledges(path_owner1_p, login="owner1:owner1pw")
|
||||||
|
assert "RADICALE:share-token" in priviledges_p
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-map M (permit=True)")
|
||||||
priviledges_M = self._propfind_priviledges(path_owner1_M, login="owner1:owner1pw")
|
priviledges_M = self._propfind_priviledges(path_owner1_M, login="owner1:owner1pw")
|
||||||
assert "RADICALE:share-map" in priviledges_M
|
assert "RADICALE:share-map" in priviledges_M
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-map m (permit=True)")
|
||||||
priviledges_m = self._propfind_priviledges(path_owner1_m, login="owner1:owner1pw")
|
priviledges_m = self._propfind_priviledges(path_owner1_m, login="owner1:owner1pw")
|
||||||
assert "RADICALE:no-share-map" in priviledges_m
|
assert "RADICALE:share-map" not in priviledges_m
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-map * (permit=True)")
|
||||||
|
priviledges_t = self._propfind_priviledges(path_owner1_t, login="owner1:owner1pw")
|
||||||
|
assert "RADICALE:share-map" in priviledges_t
|
||||||
|
|
||||||
|
self.configure({"sharing": {"permit_create_token": "False", "permit_create_map": "False"}})
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-token T (permit=False)")
|
||||||
|
priviledges_T = self._propfind_priviledges(path_owner1_T, login="owner1:owner1pw")
|
||||||
|
assert "RADICALE:share-token" in priviledges_T
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-token t (permit=False)")
|
||||||
|
priviledges_t = self._propfind_priviledges(path_owner1_t, login="owner1:owner1pw")
|
||||||
|
assert "RADICALE:share-token" not in priviledges_t
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-token * (permit=False)")
|
||||||
|
priviledges_t = self._propfind_priviledges(path_owner1_t, login="owner1:owner1pw")
|
||||||
|
assert "RADICALE:share-token" not in priviledges_t
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-map M (permit=False)")
|
||||||
|
priviledges_M = self._propfind_priviledges(path_owner1_M, login="owner1:owner1pw")
|
||||||
|
assert "RADICALE:share-map" in priviledges_M
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-map m (permit=False)")
|
||||||
|
priviledges_m = self._propfind_priviledges(path_owner1_m, login="owner1:owner1pw")
|
||||||
|
assert "RADICALE:share-map" not in priviledges_m
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly: RADICALE:share-map * (permit=False)")
|
||||||
|
priviledges_t = self._propfind_priviledges(path_owner1_t, login="owner1:owner1pw")
|
||||||
|
assert "RADICALE:share-map" not in priviledges_t
|
||||||
|
|
||||||
|
# continue
|
||||||
|
self.configure({"sharing": {"permit_create_token": "True", "permit_create_map": "True"}})
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly by owner")
|
||||||
priviledges_P = self._propfind_priviledges(path_owner1_P, login="owner1:owner1pw")
|
priviledges_P = self._propfind_priviledges(path_owner1_P, login="owner1:owner1pw")
|
||||||
assert "D:write-properties" in priviledges_P
|
assert "D:write-properties" in priviledges_P
|
||||||
|
|
||||||
priviledges_p = self._propfind_priviledges(path_owner1_p, login="owner1:owner1pw")
|
priviledges_p = self._propfind_priviledges(path_owner1_p, login="owner1:owner1pw")
|
||||||
assert "RADICALE:no-write-properties" in priviledges_p
|
assert "D:write-properties" in priviledges_p
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly by user")
|
||||||
|
|
||||||
|
logging.info("\n*** create map user1/owner1 P -> 200")
|
||||||
|
path_share = path_user1.replace(".ics", "P-uc" + db_type + ".ics")
|
||||||
|
json_dict = {}
|
||||||
|
json_dict['PathMapped'] = path_owner1_P
|
||||||
|
json_dict['Hidden'] = False
|
||||||
|
json_dict['Enabled'] = True
|
||||||
|
json_dict['User'] = "user1"
|
||||||
|
json_dict['Permissions'] = "r"
|
||||||
|
json_dict['PathOrToken'] = path_share
|
||||||
|
_, headers, answer = self._sharing_api_json("map", "create", check=200, login="owner1:owner1pw", json_dict=json_dict)
|
||||||
|
_, headers, answer = self._sharing_api_json("map", "enable", check=200, login="user1:user1pw", json_dict=json_dict)
|
||||||
|
_, headers, answer = self._sharing_api_json("map", "unhide", check=200, login="user1:user1pw", json_dict=json_dict)
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly by user: rights=P r (permit_properties_overlay=False)")
|
||||||
|
self.configure({"sharing": {"permit_properties_overlay": "False"}})
|
||||||
|
priviledges_P = self._propfind_priviledges(path_share, login="user1:user1pw")
|
||||||
|
assert "D:write-properties" in priviledges_P
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly by user: r (permit_properties_overlay=True)")
|
||||||
|
self.configure({"sharing": {"permit_properties_overlay": "True"}})
|
||||||
|
priviledges_P = self._propfind_priviledges(path_share, login="user1:user1pw")
|
||||||
|
assert "D:write-properties" in priviledges_P
|
||||||
|
|
||||||
|
logging.info("\n*** update map with illegal combination pP")
|
||||||
|
json_dict = {}
|
||||||
|
json_dict['PathMapped'] = path_owner1_P
|
||||||
|
json_dict['PathOrToken'] = path_share
|
||||||
|
json_dict['User'] = "user1"
|
||||||
|
json_dict['Permissions'] = "rpP"
|
||||||
|
_, headers, answer = self._sharing_api_json("map", "update", check=400, login="owner1:owner1pw", json_dict=json_dict)
|
||||||
|
|
||||||
|
logging.info("\n*** update map with illegal combination eE")
|
||||||
|
json_dict = {}
|
||||||
|
json_dict['PathMapped'] = path_owner1_P
|
||||||
|
json_dict['PathOrToken'] = path_share
|
||||||
|
json_dict['User'] = "user1"
|
||||||
|
json_dict['Permissions'] = "reE"
|
||||||
|
_, headers, answer = self._sharing_api_json("map", "update", check=400, login="owner1:owner1pw", json_dict=json_dict)
|
||||||
|
|
||||||
|
logging.info("\n*** update map with only p")
|
||||||
|
json_dict = {}
|
||||||
|
json_dict['PathMapped'] = path_owner1_p
|
||||||
|
json_dict['PathOrToken'] = path_share
|
||||||
|
json_dict['User'] = "user1"
|
||||||
|
json_dict['Permissions'] = "rp"
|
||||||
|
_, headers, answer = self._sharing_api_json("map", "update", check=200, login="owner1:owner1pw", json_dict=json_dict)
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly by user: rights=P rp (permit_properties_overlay=False)")
|
||||||
|
self.configure({"sharing": {"permit_properties_overlay": "False"}})
|
||||||
|
priviledges_P = self._propfind_priviledges(path_share, login="user1:user1pw")
|
||||||
|
assert "D:write-properties" not in priviledges_P
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly by user: rights=P rp (permit_properties_overlay=True)")
|
||||||
|
self.configure({"sharing": {"permit_properties_overlay": "True"}})
|
||||||
|
priviledges_P = self._propfind_priviledges(path_share, login="user1:user1pw")
|
||||||
|
assert "D:write-properties" not in priviledges_P
|
||||||
|
|
||||||
|
json_dict = {}
|
||||||
|
json_dict['PathMapped'] = path_owner1_P
|
||||||
|
json_dict['PathOrToken'] = path_share
|
||||||
|
json_dict['User'] = "user1"
|
||||||
|
_, headers, answer = self._sharing_api_json("map", "delete", check=200, login="owner1:owner1pw", json_dict=json_dict)
|
||||||
|
|
||||||
|
logging.info("\n*** create map user1/owner1 p -> 200")
|
||||||
|
path_share = path_user1.replace(".ics", "p-lc" + db_type + ".ics")
|
||||||
|
json_dict = {}
|
||||||
|
json_dict['PathMapped'] = path_owner1_p
|
||||||
|
json_dict['Hidden'] = False
|
||||||
|
json_dict['Enabled'] = True
|
||||||
|
json_dict['User'] = "user1"
|
||||||
|
json_dict['Permissions'] = "r"
|
||||||
|
json_dict['PathOrToken'] = path_share
|
||||||
|
_, headers, answer = self._sharing_api_json("map", "create", check=200, login="owner1:owner1pw", json_dict=json_dict)
|
||||||
|
_, headers, answer = self._sharing_api_json("map", "enable", check=200, login="user1:user1pw", json_dict=json_dict)
|
||||||
|
_, headers, answer = self._sharing_api_json("map", "unhide", check=200, login="user1:user1pw", json_dict=json_dict)
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly by user: rights=p r (permit_properties_overlay=False)")
|
||||||
|
self.configure({"sharing": {"permit_properties_overlay": "False"}})
|
||||||
|
priviledges_p = self._propfind_priviledges(path_share, login="user1:user1pw")
|
||||||
|
assert "D:write-properties" not in priviledges_p
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly by user: rights=p r (permit_properties_overlay=True)")
|
||||||
|
self.configure({"sharing": {"permit_properties_overlay": "True"}})
|
||||||
|
priviledges_p = self._propfind_priviledges(path_share, login="user1:user1pw")
|
||||||
|
assert "D:write-properties" not in priviledges_p
|
||||||
|
|
||||||
|
json_dict = {}
|
||||||
|
json_dict['PathMapped'] = path_owner1_p
|
||||||
|
json_dict['PathOrToken'] = path_share
|
||||||
|
json_dict['User'] = "user1"
|
||||||
|
json_dict['Permissions'] = "rP"
|
||||||
|
_, headers, answer = self._sharing_api_json("map", "update", check=200, login="owner1:owner1pw", json_dict=json_dict)
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly by user: rights=p rP (permit_properties_overlay=False)")
|
||||||
|
self.configure({"sharing": {"permit_properties_overlay": "False"}})
|
||||||
|
priviledges_P = self._propfind_priviledges(path_share, login="user1:user1pw")
|
||||||
|
assert "D:write-properties" in priviledges_P
|
||||||
|
|
||||||
|
logging.info("\n*** check PROPFIND priviledges list on collections directly by user: rights=p rP (permit_properties_overlay=True)")
|
||||||
|
self.configure({"sharing": {"permit_properties_overlay": "True"}})
|
||||||
|
priviledges_P = self._propfind_priviledges(path_share, login="user1:user1pw")
|
||||||
|
assert "D:write-properties" in priviledges_P
|
||||||
|
|
||||||
def test_sharing_api_permissions_default(self) -> None:
|
def test_sharing_api_permissions_default(self) -> None:
|
||||||
"""sharing API usage tests related to global permissions."""
|
"""sharing API usage tests related to global permissions."""
|
||||||
@@ -4509,6 +4655,8 @@ permissions: RrWw""")
|
|||||||
json_dict['PathMapped'] = path_mapped
|
json_dict['PathMapped'] = path_mapped
|
||||||
json_dict['PathOrToken'] = path_shared_r
|
json_dict['PathOrToken'] = path_shared_r
|
||||||
json_dict['Conversion'] = "bday"
|
json_dict['Conversion'] = "bday"
|
||||||
|
json_dict['Permissions'] = "rP"
|
||||||
|
json_dict['Enabled'] = True
|
||||||
json_dict['Enabled'] = True
|
json_dict['Enabled'] = True
|
||||||
json_dict['Hidden'] = False
|
json_dict['Hidden'] = False
|
||||||
json_dict['Properties'] = {"D:displayname": "Test-BDAY"}
|
json_dict['Properties'] = {"D:displayname": "Test-BDAY"}
|
||||||
|
|||||||
Reference in New Issue
Block a user