-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathtest_mergin_project.py
More file actions
73 lines (61 loc) · 2.84 KB
/
test_mergin_project.py
File metadata and controls
73 lines (61 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import os
import shutil
import json
import tempfile
import pytest
from mergin.merginproject import MerginProject
TEST_DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "test_data")
def test_project_metadata():
with tempfile.TemporaryDirectory() as tmp_dir:
test_project = "test_project_metadata"
api_user = "test_user"
project_dir = os.path.join(tmp_dir, test_project)
# prepare local project
shutil.copytree(TEST_DATA_DIR, project_dir)
# copy metadata in old format
os.makedirs(os.path.join(project_dir, ".mergin"), exist_ok=True)
metadata_file = os.path.join(project_dir, "old_metadata.json")
# rewrite metadata namespace
with open(metadata_file, "r") as f:
metadata = json.load(f)
project_metadata_file = os.path.join(project_dir, ".mergin", "mergin.json")
with open(project_metadata_file, "w") as f:
json.dump(metadata, f, indent=2)
# verify we have correct metadata
mp = MerginProject(project_dir)
assert mp.project_full_name() == metadata.get("name")
project_name = metadata.get("name").split("/")[1]
workspace_name = metadata.get("name").split("/")[0]
assert mp.project_name() == project_name
assert mp.workspace_name() == workspace_name
assert mp.version() == metadata.get("version")
# copy metadata in new format
metadata_file = os.path.join(project_dir, "new_metadata.json")
with open(metadata_file, "r") as f:
metadata = json.load(f)
metadata["namespace"] = api_user
with open(project_metadata_file, "w") as f:
json.dump(metadata, f, indent=2)
# verify we have correct metadata
mp = MerginProject(project_dir)
project_name = metadata.get("name")
workspace_name = metadata.get("namespace")
assert mp.project_full_name() == f"{workspace_name}/{project_name}"
assert mp.project_name() == project_name
assert mp.workspace_name() == workspace_name
assert mp.version() == metadata.get("version")
# copy metadata in new format (v2)
metadata_file = os.path.join(project_dir, "v2_metadata.json")
with open(metadata_file, "r") as f:
metadata = json.load(f)
with open(project_metadata_file, "w") as f:
json.dump(metadata, f, indent=2)
# verify we have correct metadata
mp = MerginProject(project_dir)
project_name = metadata.get("name")
workspace_name = metadata.get("workspace").get("name")
assert mp.project_full_name() == f"{workspace_name}/{project_name}"
assert mp.project_name() == project_name
assert mp.workspace_name() == workspace_name
assert mp.version() == metadata.get("version")
assert mp.files() == metadata.get("files")