|
| 1 | +import pygobbler as pyg |
| 2 | + |
| 3 | + |
| 4 | +def test_set_permissions(): |
| 5 | + _, staging, registry, url = pyg.start_gobbler() |
| 6 | + pyg.remove_project("test-perms", staging=staging, url=url) |
| 7 | + pyg.create_project("test-perms", staging=staging, url=url, owners=["LTLA"]) |
| 8 | + |
| 9 | + until = "2022-02-02T02:20:02.02Z" |
| 10 | + pyg.set_permissions("test-perms", |
| 11 | + owners=["jkanche"], |
| 12 | + uploaders=[ { "id": "lawremi", "until": until } ], |
| 13 | + staging=staging, |
| 14 | + url=url, |
| 15 | + registry=registry |
| 16 | + ) |
| 17 | + |
| 18 | + perms = pyg.fetch_permissions("test-perms", registry=registry, url=url) |
| 19 | + assert perms["owners"] == [ "LTLA", "jkanche" ] |
| 20 | + assert len(perms["uploaders"]) == 1 |
| 21 | + assert perms["uploaders"][0]["id"] == "lawremi" |
| 22 | + assert perms["uploaders"][0]["until"] == until |
| 23 | + |
| 24 | + # Checking uploader appending, while also checking owners=NULL. |
| 25 | + pyg.set_permissions("test-perms", uploaders=[ { "id": "ArtifactDB-bot", "trusted": True } ], staging=staging, url=url, registry=registry) |
| 26 | + perms = pyg.fetch_permissions("test-perms", registry=registry, url=url) |
| 27 | + assert perms["owners"] == [ "LTLA", "jkanche" ] |
| 28 | + assert len(perms["uploaders"]) == 2 |
| 29 | + assert perms["uploaders"][0]["id"] == "lawremi" |
| 30 | + assert perms["uploaders"][1]["id"] == "ArtifactDB-bot" |
| 31 | + assert perms["uploaders"][1]["trusted"] |
| 32 | + |
| 33 | + # Checking union of owners, and also that uploaders=NULL works. |
| 34 | + pyg.set_permissions("test-perms", owners=[ "PeteHaitch", "LTLA" ], staging=staging, url=url, registry=registry) |
| 35 | + perms = pyg.fetch_permissions("test-perms", registry=registry, url=url) |
| 36 | + assert perms["owners"] == [ "LTLA", "jkanche", "PeteHaitch" ] |
| 37 | + assert len(perms["uploaders"]) == 2 |
| 38 | + |
| 39 | + # Resetting the owners back. |
| 40 | + pyg.set_permissions("test-perms", owners=[ "LTLA" ], append=False, staging=staging, url=url, registry=registry) |
| 41 | + perms = pyg.fetch_permissions("test-perms", registry=registry, url=url) |
| 42 | + assert perms["owners"] == [ "LTLA" ] |
| 43 | + assert len(perms["uploaders"]) == 2 |
| 44 | + |
| 45 | + # Now resetting the uploaders. |
| 46 | + pyg.set_permissions("test-perms", uploaders=[], append=False, staging=staging, url=url, registry=registry) |
| 47 | + perms = pyg.fetch_permissions("test-perms", registry=registry, url=url) |
| 48 | + assert perms["owners"] == [ "LTLA" ] |
| 49 | + assert len(perms["uploaders"]) == 0 |
0 commit comments