def test_dataset_modify_dataset_with_files(
admin_client, deep_file_tree, dataset_json_with_files, data_urls
):
res = admin_client.post(
f"/v3/datasets",
dataset_json_with_files,
content_type="application/json",
)
assert res.status_code == 201
actions = {
**deep_file_tree["params"],
"directory_actions": [{"pathname": "/dir1/", "action": "remove"}],
"file_actions": [{"id": deep_file_tree["files"]["/dir3/sub1/file.txt"].id}],
}
dataset_json = {k: v for k, v in res.data.items() if v != None}
dataset_id = res.data["id"]
urls = data_urls(dataset_id)
res = admin_client.put(
urls["dataset"],
{**dataset_json, "fileset": actions},
content_type="application/json",
)
assert res.status_code == 200
assert res.data["fileset"]["added_files_count"] == 1
assert res.data["fileset"]["removed_files_count"] == 2
assert res.data["fileset"]["total_files_count"] == 2
res = admin_client.get(urls["directories"], {"pagination": "false"})
assert_nested_subdict(
{
"directories": [
{"pathname": "/dir3/"},
],
"files": [{"pathname": "/rootfile.txt", "dataset_metadata": {"title": "file"}}],
},
res.json(),
)