MCPcopy
hub / github.com/HelloZeroNet/ZeroNet / testVerify

Method testVerify

src/Test/TestContent.py:155–197  ·  view source on GitHub ↗
(self, site, crypt_bitcoin_lib)

Source from the content-addressed store, hash-verified

153 assert file_info_optional["optional"] is True
154
155 def testVerify(self, site, crypt_bitcoin_lib):
156 inner_path = "data/test_include/content.json"
157 data_dict = site.storage.loadJson(inner_path)
158 data = io.BytesIO(json.dumps(data_dict).encode("utf8"))
159
160 # Re-sign
161 data_dict["signs"] = {
162 "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
163 }
164 assert site.content_manager.verifyFile(inner_path, data, ignore_same=False)
165
166 # Wrong address
167 data_dict["address"] = "Othersite"
168 del data_dict["signs"]
169 data_dict["signs"] = {
170 "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
171 }
172 data = io.BytesIO(json.dumps(data_dict).encode())
173 with pytest.raises(VerifyError) as err:
174 site.content_manager.verifyFile(inner_path, data, ignore_same=False)
175 assert "Wrong site address" in str(err.value)
176
177 # Wrong inner_path
178 data_dict["address"] = "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT"
179 data_dict["inner_path"] = "content.json"
180 del data_dict["signs"]
181 data_dict["signs"] = {
182 "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
183 }
184 data = io.BytesIO(json.dumps(data_dict).encode())
185 with pytest.raises(VerifyError) as err:
186 site.content_manager.verifyFile(inner_path, data, ignore_same=False)
187 assert "Wrong inner_path" in str(err.value)
188
189 # Everything right again
190 data_dict["address"] = "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT"
191 data_dict["inner_path"] = inner_path
192 del data_dict["signs"]
193 data_dict["signs"] = {
194 "1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
195 }
196 data = io.BytesIO(json.dumps(data_dict).encode())
197 assert site.content_manager.verifyFile(inner_path, data, ignore_same=False)
198
199 def testVerifyInnerPath(self, site, crypt_bitcoin_lib):
200 inner_path = "content.json"

Callers

nothing calls this directly

Calls 3

loadJsonMethod · 0.80
signMethod · 0.45
verifyFileMethod · 0.45

Tested by

no test coverage detected