Skip to content

Commit d9bdf41

Browse files
committed
ng client metadata set: organize common test code
Move the shared code between tests into the "setupClass" function. Signed-off-by: Martin Vrachev <mvrachev@vmware.com>
1 parent 8e563fa commit d9bdf41

File tree

1 file changed

+47
-43
lines changed

1 file changed

+47
-43
lines changed

tests/test_trusted_metadata_set.py

Lines changed: 47 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -16,87 +16,91 @@
1616

1717
class TestTrustedMetadataSet(unittest.TestCase):
1818

19-
def test_update(self):
20-
repo_dir = os.path.join(os.getcwd(), 'repository_data', 'repository', 'metadata')
19+
@classmethod
20+
def setUpClass(cls):
21+
cls.repo_dir = os.path.join(
22+
os.getcwd(), 'repository_data', 'repository', 'metadata'
23+
)
24+
cls.metadata = {}
25+
for md in ["root", "timestamp", "snapshot", "targets", "role1", "role2"]:
26+
with open(os.path.join(cls.repo_dir, f"{md}.json"), "rb") as f:
27+
cls.metadata[md] = f.read()
28+
2129

22-
with open(os.path.join(repo_dir, "root.json"), "rb") as f:
23-
trusted_set = TrustedMetadataSet(f.read())
30+
def test_update(self):
31+
trusted_set = TrustedMetadataSet(self.metadata["root"])
2432
trusted_set.root_update_finished()
2533

26-
with open(os.path.join(repo_dir, "timestamp.json"), "rb") as f:
27-
trusted_set.update_timestamp(f.read())
28-
with open(os.path.join(repo_dir, "snapshot.json"), "rb") as f:
29-
trusted_set.update_snapshot(f.read())
30-
with open(os.path.join(repo_dir, "targets.json"), "rb") as f:
31-
trusted_set.update_targets(f.read())
32-
with open(os.path.join(repo_dir, "role1.json"), "rb") as f:
33-
trusted_set.update_delegated_targets(f.read(), "role1", "targets")
34-
with open(os.path.join(repo_dir, "role2.json"), "rb") as f:
35-
trusted_set.update_delegated_targets(f.read(), "role2", "role1")
34+
trusted_set.update_timestamp(self.metadata["timestamp"])
35+
trusted_set.update_snapshot(self.metadata["snapshot"])
36+
trusted_set.update_targets(self.metadata["targets"])
37+
trusted_set.update_delegated_targets(
38+
self.metadata["role1"], "role1", "targets"
39+
)
40+
trusted_set.update_delegated_targets(
41+
self.metadata["role2"], "role2", "role1"
42+
)
3643

3744
def test_out_of_order_ops(self):
38-
repo_dir = os.path.join(os.getcwd(), 'repository_data', 'repository', 'metadata')
39-
data={}
40-
for md in ["root", "timestamp", "snapshot", "targets", "role1"]:
41-
with open(os.path.join(repo_dir, f"{md}.json"), "rb") as f:
42-
data[md] = f.read()
43-
44-
trusted_set = TrustedMetadataSet(data["root"])
45+
trusted_set = TrustedMetadataSet(self.metadata["root"])
4546

4647
# Update timestamp before root is finished
4748
with self.assertRaises(RuntimeError):
48-
trusted_set.update_timestamp(data["timestamp"])
49+
trusted_set.update_timestamp(self.metadata["timestamp"])
4950

5051
trusted_set.root_update_finished()
5152
with self.assertRaises(RuntimeError):
5253
trusted_set.root_update_finished()
5354

5455
# Update snapshot before timestamp
5556
with self.assertRaises(RuntimeError):
56-
trusted_set.update_snapshot(data["snapshot"])
57+
trusted_set.update_snapshot(self.metadata["snapshot"])
5758

58-
trusted_set.update_timestamp(data["timestamp"])
59+
trusted_set.update_timestamp(self.metadata["timestamp"])
5960

6061
# Update targets before snapshot
6162
with self.assertRaises(RuntimeError):
62-
trusted_set.update_targets(data["targets"])
63+
trusted_set.update_targets(self.metadata["targets"])
6364

64-
trusted_set.update_snapshot(data["snapshot"])
65+
trusted_set.update_snapshot(self.metadata["snapshot"])
6566

66-
#update timestamp after snapshot
67+
# update timestamp after snapshot
6768
with self.assertRaises(RuntimeError):
68-
trusted_set.update_timestamp(data["timestamp"])
69+
trusted_set.update_timestamp(self.metadata["timestamp"])
6970

7071
# Update delegated targets before targets
7172
with self.assertRaises(RuntimeError):
72-
trusted_set.update_delegated_targets(data["role1"], "role1", "targets")
73+
trusted_set.update_delegated_targets(
74+
self.metadata["role1"], "role1", "targets"
75+
)
7376

74-
trusted_set.update_targets(data["targets"])
75-
trusted_set.update_delegated_targets(data["role1"], "role1", "targets")
77+
trusted_set.update_targets(self.metadata["targets"])
78+
trusted_set.update_delegated_targets(
79+
self.metadata["role1"], "role1", "targets"
80+
)
7681

77-
def test_update_with_invalid_json(self):
78-
repo_dir = os.path.join(os.getcwd(), 'repository_data', 'repository', 'metadata')
79-
data={}
80-
for md in ["root", "timestamp", "snapshot", "targets", "role1"]:
81-
with open(os.path.join(repo_dir, f"{md}.json"), "rb") as f:
82-
data[md] = f.read()
82+
trusted_set.update_targets(self.metadata["targets"])
83+
trusted_set.update_delegated_targets(
84+
self.metadata["role1"], "role1", "targets"
85+
)
8386

87+
def test_update_with_invalid_json(self):
8488
# root.json not a json file at all
8589
with self.assertRaises(exceptions.RepositoryError):
8690
TrustedMetadataSet(b"")
8791
# root.json is invalid
88-
root = Metadata.from_bytes(data["root"])
92+
root = Metadata.from_bytes(self.metadata["root"])
8993
root.signed.version += 1
9094
with self.assertRaises(exceptions.RepositoryError):
9195
TrustedMetadataSet(json.dumps(root.to_dict()).encode())
9296

93-
trusted_set = TrustedMetadataSet(data["root"])
97+
trusted_set = TrustedMetadataSet(self.metadata["root"])
9498
trusted_set.root_update_finished()
9599

96100
top_level_md = [
97-
(data["timestamp"], trusted_set.update_timestamp),
98-
(data["snapshot"], trusted_set.update_snapshot),
99-
(data["targets"], trusted_set.update_targets),
101+
(self.metadata["timestamp"], trusted_set.update_timestamp),
102+
(self.metadata["snapshot"], trusted_set.update_snapshot),
103+
(self.metadata["targets"], trusted_set.update_targets),
100104
]
101105
for metadata, update_func in top_level_md:
102106
# metadata is not json
@@ -110,7 +114,7 @@ def test_update_with_invalid_json(self):
110114

111115
# metadata is of wrong type
112116
with self.assertRaises(exceptions.RepositoryError):
113-
update_func(data["root"])
117+
update_func(self.metadata["root"])
114118

115119
update_func(metadata)
116120

0 commit comments

Comments
 (0)