Fix tests on Python 3.5
This commit is contained in:
parent
c7bfe0d537
commit
63ba0a5551
4 changed files with 47 additions and 41 deletions
|
@ -40,6 +40,7 @@ class TestContent:
|
||||||
|
|
||||||
def testInlcudeLimits(self, site, crypt_bitcoin_lib):
|
def testInlcudeLimits(self, site, crypt_bitcoin_lib):
|
||||||
# Data validation
|
# Data validation
|
||||||
|
res = []
|
||||||
data_dict = {
|
data_dict = {
|
||||||
"files": {
|
"files": {
|
||||||
"data.json": {
|
"data.json": {
|
||||||
|
@ -51,16 +52,18 @@ class TestContent:
|
||||||
}
|
}
|
||||||
|
|
||||||
# Normal data
|
# Normal data
|
||||||
data_dict["signs"] = {"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict), self.privatekey)}
|
data_dict["signs"] = {"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)}
|
||||||
data = io.StringIO(json.dumps(data_dict))
|
data_json = json.dumps(data_dict).encode()
|
||||||
|
data = io.BytesIO(data_json)
|
||||||
assert site.content_manager.verifyFile("data/test_include/content.json", data, ignore_same=False)
|
assert site.content_manager.verifyFile("data/test_include/content.json", data, ignore_same=False)
|
||||||
|
|
||||||
# Reset
|
# Reset
|
||||||
del data_dict["signs"]
|
del data_dict["signs"]
|
||||||
|
|
||||||
# Too large
|
# Too large
|
||||||
data_dict["files"]["data.json"]["size"] = 200000 # Emulate 2MB sized data.json
|
data_dict["files"]["data.json"]["size"] = 200000 # Emulate 2MB sized data.json
|
||||||
data_dict["signs"] = {"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict), self.privatekey)}
|
data_dict["signs"] = {"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)}
|
||||||
data = io.StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile("data/test_include/content.json", data, ignore_same=False)
|
site.content_manager.verifyFile("data/test_include/content.json", data, ignore_same=False)
|
||||||
assert "Include too large" in str(err)
|
assert "Include too large" in str(err)
|
||||||
|
@ -71,8 +74,8 @@ class TestContent:
|
||||||
|
|
||||||
# Not allowed file
|
# Not allowed file
|
||||||
data_dict["files"]["notallowed.exe"] = data_dict["files"]["data.json"]
|
data_dict["files"]["notallowed.exe"] = data_dict["files"]["data.json"]
|
||||||
data_dict["signs"] = {"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict), self.privatekey)}
|
data_dict["signs"] = {"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)}
|
||||||
data = io.StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile("data/test_include/content.json", data, ignore_same=False)
|
site.content_manager.verifyFile("data/test_include/content.json", data, ignore_same=False)
|
||||||
assert "File not allowed" in str(err)
|
assert "File not allowed" in str(err)
|
||||||
|
@ -82,8 +85,8 @@ class TestContent:
|
||||||
del data_dict["signs"]
|
del data_dict["signs"]
|
||||||
|
|
||||||
# Should work again
|
# Should work again
|
||||||
data_dict["signs"] = {"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict), self.privatekey)}
|
data_dict["signs"] = {"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)}
|
||||||
data = io.StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
assert site.content_manager.verifyFile("data/test_include/content.json", data, ignore_same=False)
|
assert site.content_manager.verifyFile("data/test_include/content.json", data, ignore_same=False)
|
||||||
|
|
||||||
@pytest.mark.parametrize("inner_path", ["content.json", "data/test_include/content.json", "data/users/content.json"])
|
@pytest.mark.parametrize("inner_path", ["content.json", "data/test_include/content.json", "data/users/content.json"])
|
||||||
|
@ -166,7 +169,7 @@ class TestContent:
|
||||||
data_dict["signs"] = {
|
data_dict["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
|
||||||
}
|
}
|
||||||
data = io.StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(inner_path, data, ignore_same=False)
|
site.content_manager.verifyFile(inner_path, data, ignore_same=False)
|
||||||
assert "Wrong site address" in str(err)
|
assert "Wrong site address" in str(err)
|
||||||
|
@ -178,7 +181,7 @@ class TestContent:
|
||||||
data_dict["signs"] = {
|
data_dict["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
|
||||||
}
|
}
|
||||||
data = io.StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(inner_path, data, ignore_same=False)
|
site.content_manager.verifyFile(inner_path, data, ignore_same=False)
|
||||||
assert "Wrong inner_path" in str(err)
|
assert "Wrong inner_path" in str(err)
|
||||||
|
@ -190,7 +193,7 @@ class TestContent:
|
||||||
data_dict["signs"] = {
|
data_dict["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
|
||||||
}
|
}
|
||||||
data = io.StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
assert site.content_manager.verifyFile(inner_path, data, ignore_same=False)
|
assert site.content_manager.verifyFile(inner_path, data, ignore_same=False)
|
||||||
|
|
||||||
def testVerifyInnerPath(self, site, crypt_bitcoin_lib):
|
def testVerifyInnerPath(self, site, crypt_bitcoin_lib):
|
||||||
|
@ -206,7 +209,7 @@ class TestContent:
|
||||||
data_dict["signs"] = {
|
data_dict["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
|
||||||
}
|
}
|
||||||
data = io.StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
assert site.content_manager.verifyFile(inner_path, data, ignore_same=False)
|
assert site.content_manager.verifyFile(inner_path, data, ignore_same=False)
|
||||||
|
|
||||||
for bad_relative_path in ["../data.json", "data/" * 100, "invalid|file.jpg"]:
|
for bad_relative_path in ["../data.json", "data/" * 100, "invalid|file.jpg"]:
|
||||||
|
@ -218,7 +221,7 @@ class TestContent:
|
||||||
data_dict["signs"] = {
|
data_dict["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), self.privatekey)
|
||||||
}
|
}
|
||||||
data = io.StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(inner_path, data, ignore_same=False)
|
site.content_manager.verifyFile(inner_path, data, ignore_same=False)
|
||||||
assert "Invalid relative path" in str(err)
|
assert "Invalid relative path" in str(err)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import json
|
import json
|
||||||
from io import StringIO
|
import io
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ class TestContentUser:
|
||||||
data_dict = site.storage.loadJson(user_inner_path)
|
data_dict = site.storage.loadJson(user_inner_path)
|
||||||
users_content = site.content_manager.contents["data/users/content.json"]
|
users_content = site.content_manager.contents["data/users/content.json"]
|
||||||
|
|
||||||
data = StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
assert site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
assert site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
||||||
|
|
||||||
# Test error on 15k data.json
|
# Test error on 15k data.json
|
||||||
|
@ -100,7 +100,7 @@ class TestContentUser:
|
||||||
data_dict["signs"] = {
|
data_dict["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
||||||
}
|
}
|
||||||
data = StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
||||||
assert "Include too large" in str(err)
|
assert "Include too large" in str(err)
|
||||||
|
@ -111,7 +111,7 @@ class TestContentUser:
|
||||||
data_dict["signs"] = {
|
data_dict["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
||||||
}
|
}
|
||||||
data = StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
assert site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
assert site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
||||||
|
|
||||||
def testVerify(self, site):
|
def testVerify(self, site):
|
||||||
|
@ -120,7 +120,7 @@ class TestContentUser:
|
||||||
data_dict = site.storage.loadJson(user_inner_path)
|
data_dict = site.storage.loadJson(user_inner_path)
|
||||||
users_content = site.content_manager.contents["data/users/content.json"]
|
users_content = site.content_manager.contents["data/users/content.json"]
|
||||||
|
|
||||||
data = StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
assert site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
assert site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
||||||
|
|
||||||
# Test max size exception by setting allowed to 0
|
# Test max size exception by setting allowed to 0
|
||||||
|
@ -131,7 +131,7 @@ class TestContentUser:
|
||||||
users_content["user_contents"]["permission_rules"][".*"]["max_size"] = 0
|
users_content["user_contents"]["permission_rules"][".*"]["max_size"] = 0
|
||||||
rules = site.content_manager.getRules(user_inner_path, data_dict)
|
rules = site.content_manager.getRules(user_inner_path, data_dict)
|
||||||
assert rules["max_size"] == 0
|
assert rules["max_size"] == 0
|
||||||
data = StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
|
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
||||||
|
@ -145,7 +145,7 @@ class TestContentUser:
|
||||||
data_dict["signs"] = {
|
data_dict["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
||||||
}
|
}
|
||||||
data = StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
assert site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
assert site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
||||||
|
|
||||||
# 100 MB gif = Not allowed
|
# 100 MB gif = Not allowed
|
||||||
|
@ -154,7 +154,7 @@ class TestContentUser:
|
||||||
data_dict["signs"] = {
|
data_dict["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
||||||
}
|
}
|
||||||
data = StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
||||||
assert "Include optional files too large" in str(err)
|
assert "Include optional files too large" in str(err)
|
||||||
|
@ -166,7 +166,7 @@ class TestContentUser:
|
||||||
data_dict["signs"] = {
|
data_dict["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
||||||
}
|
}
|
||||||
data = StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
||||||
assert "Optional file not allowed" in str(err)
|
assert "Optional file not allowed" in str(err)
|
||||||
|
@ -178,7 +178,7 @@ class TestContentUser:
|
||||||
data_dict["signs"] = {
|
data_dict["signs"] = {
|
||||||
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
"1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT": CryptBitcoin.sign(json.dumps(data_dict, sort_keys=True), privatekey)
|
||||||
}
|
}
|
||||||
data = StringIO(json.dumps(data_dict))
|
data = io.BytesIO(json.dumps(data_dict).encode())
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
site.content_manager.verifyFile(user_inner_path, data, ignore_same=False)
|
||||||
assert "Includes not allowed" in str(err)
|
assert "Includes not allowed" in str(err)
|
||||||
|
@ -227,7 +227,7 @@ class TestContentUser:
|
||||||
# Test user cert
|
# Test user cert
|
||||||
assert site.content_manager.verifyFile(
|
assert site.content_manager.verifyFile(
|
||||||
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
StringIO(json.dumps(signed_content)), ignore_same=False
|
io.BytesIO(json.dumps(signed_content).encode()), ignore_same=False
|
||||||
)
|
)
|
||||||
|
|
||||||
# Test banned user
|
# Test banned user
|
||||||
|
@ -236,7 +236,7 @@ class TestContentUser:
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(
|
site.content_manager.verifyFile(
|
||||||
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
StringIO(json.dumps(signed_content)), ignore_same=False
|
io.BytesIO(json.dumps(signed_content).encode()), ignore_same=False
|
||||||
)
|
)
|
||||||
assert "Valid signs: 0/1" in str(err)
|
assert "Valid signs: 0/1" in str(err)
|
||||||
del site.content_manager.contents["data/users/content.json"]["user_contents"]["permissions"][cert_user_id] # Reset
|
del site.content_manager.contents["data/users/content.json"]["user_contents"]["permissions"][cert_user_id] # Reset
|
||||||
|
@ -251,7 +251,7 @@ class TestContentUser:
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(
|
site.content_manager.verifyFile(
|
||||||
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
StringIO(json.dumps(signed_content)), ignore_same=False
|
io.BytesIO(json.dumps(signed_content).encode()), ignore_same=False
|
||||||
)
|
)
|
||||||
assert "Invalid cert" in str(err)
|
assert "Invalid cert" in str(err)
|
||||||
|
|
||||||
|
@ -270,7 +270,7 @@ class TestContentUser:
|
||||||
}
|
}
|
||||||
assert site.content_manager.verifyFile(
|
assert site.content_manager.verifyFile(
|
||||||
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
StringIO(json.dumps(user_content)), ignore_same=False
|
io.BytesIO(json.dumps(user_content).encode()), ignore_same=False
|
||||||
)
|
)
|
||||||
|
|
||||||
def testMissingCert(self, site):
|
def testMissingCert(self, site):
|
||||||
|
@ -297,7 +297,7 @@ class TestContentUser:
|
||||||
|
|
||||||
assert site.content_manager.verifyFile(
|
assert site.content_manager.verifyFile(
|
||||||
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
StringIO(json.dumps(signed_content)), ignore_same=False
|
io.BytesIO(json.dumps(signed_content).encode()), ignore_same=False
|
||||||
)
|
)
|
||||||
|
|
||||||
# Test invalid cert_user_id
|
# Test invalid cert_user_id
|
||||||
|
@ -311,7 +311,7 @@ class TestContentUser:
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(
|
site.content_manager.verifyFile(
|
||||||
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
StringIO(json.dumps(signed_content)), ignore_same=False
|
io.BytesIO(json.dumps(signed_content).encode()), ignore_same=False
|
||||||
)
|
)
|
||||||
assert "Invalid domain in cert_user_id" in str(err)
|
assert "Invalid domain in cert_user_id" in str(err)
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ class TestContentUser:
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(
|
site.content_manager.verifyFile(
|
||||||
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
StringIO(json.dumps(signed_content)), ignore_same=False
|
io.BytesIO(json.dumps(signed_content).encode()), ignore_same=False
|
||||||
)
|
)
|
||||||
assert "Missing cert_user_id" in str(err)
|
assert "Missing cert_user_id" in str(err)
|
||||||
|
|
||||||
|
@ -355,7 +355,7 @@ class TestContentUser:
|
||||||
|
|
||||||
assert site.content_manager.verifyFile(
|
assert site.content_manager.verifyFile(
|
||||||
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
StringIO(json.dumps(signed_content)), ignore_same=False
|
io.BytesIO(json.dumps(signed_content).encode()), ignore_same=False
|
||||||
)
|
)
|
||||||
|
|
||||||
# Cert does not matches the pattern
|
# Cert does not matches the pattern
|
||||||
|
@ -364,7 +364,7 @@ class TestContentUser:
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(
|
site.content_manager.verifyFile(
|
||||||
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
StringIO(json.dumps(signed_content)), ignore_same=False
|
io.BytesIO(json.dumps(signed_content).encode()), ignore_same=False
|
||||||
)
|
)
|
||||||
assert "Invalid cert signer: 14wgQ4VDDZNoRMFF4yCDuTrBSHmYhL3bet" in str(err)
|
assert "Invalid cert signer: 14wgQ4VDDZNoRMFF4yCDuTrBSHmYhL3bet" in str(err)
|
||||||
|
|
||||||
|
@ -374,7 +374,7 @@ class TestContentUser:
|
||||||
with pytest.raises(VerifyError) as err:
|
with pytest.raises(VerifyError) as err:
|
||||||
site.content_manager.verifyFile(
|
site.content_manager.verifyFile(
|
||||||
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
"data/users/1J6UrZMkarjVg5ax9W4qThir3BFUikbW6C/content.json",
|
||||||
StringIO(json.dumps(signed_content)), ignore_same=False
|
io.BytesIO(json.dumps(signed_content).encode()), ignore_same=False
|
||||||
)
|
)
|
||||||
assert "Invalid cert signer: 14wgQ4VDDZNoRMFF4yCDuTrBSHmYhL3bet" in str(err)
|
assert "Invalid cert signer: 14wgQ4VDDZNoRMFF4yCDuTrBSHmYhL3bet" in str(err)
|
||||||
|
|
||||||
|
|
|
@ -103,14 +103,14 @@ class TestDb:
|
||||||
|
|
||||||
|
|
||||||
def testUpdateJson(self, db):
|
def testUpdateJson(self, db):
|
||||||
f = io.StringIO()
|
f = io.BytesIO()
|
||||||
f.write("""
|
f.write("""
|
||||||
{
|
{
|
||||||
"test": [
|
"test": [
|
||||||
{"test_id": 1, "title": "Test 1 title", "extra col": "Ignore it"}
|
{"test_id": 1, "title": "Test 1 title", "extra col": "Ignore it"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
""")
|
""".encode())
|
||||||
f.seek(0)
|
f.seek(0)
|
||||||
assert db.updateJson(db.db_dir + "data.json", f) is True
|
assert db.updateJson(db.db_dir + "data.json", f) is True
|
||||||
assert db.execute("SELECT COUNT(*) AS num FROM test_importfilter").fetchone()["num"] == 1
|
assert db.execute("SELECT COUNT(*) AS num FROM test_importfilter").fetchone()["num"] == 1
|
||||||
|
|
|
@ -6,14 +6,17 @@ import pytest
|
||||||
|
|
||||||
from Config import config
|
from Config import config
|
||||||
from util import Msgpack
|
from util import Msgpack
|
||||||
|
from collections import OrderedDict
|
||||||
|
|
||||||
|
|
||||||
class TestMsgpack:
|
class TestMsgpack:
|
||||||
test_data = {"cmd": "fileGet", "params": {"site": "1Site"}, "utf8": b'\xc3\xa1rv\xc3\xadzt\xc5\xb1r\xc5\x91'.decode("utf8"), "bin": b'p\x81zDhL\xf0O\xd0\xaf', "list": [b'p\x81zDhL\xf0O\xd0\xaf', b'p\x81zDhL\xf0O\xd0\xaf']}
|
test_data = OrderedDict(
|
||||||
|
sorted({"cmd": "fileGet", "bin": b'p\x81zDhL\xf0O\xd0\xaf', "params": {"site": "1Site"}, "utf8": b'\xc3\xa1rv\xc3\xadzt\xc5\xb1r\xc5\x91'.decode("utf8"), "list": [b'p\x81zDhL\xf0O\xd0\xaf', b'p\x81zDhL\xf0O\xd0\xaf']}.items())
|
||||||
|
)
|
||||||
|
|
||||||
def testPacking(self):
|
def testPacking(self):
|
||||||
assert Msgpack.pack(self.test_data) == b'\x85\xa3cmd\xa7fileGet\xa6params\x81\xa4site\xa51Site\xa4utf8\xad\xc3\xa1rv\xc3\xadzt\xc5\xb1r\xc5\x91\xa3bin\xc4\np\x81zDhL\xf0O\xd0\xaf\xa4list\x92\xc4\np\x81zDhL\xf0O\xd0\xaf\xc4\np\x81zDhL\xf0O\xd0\xaf'
|
assert Msgpack.pack(self.test_data) == b'\x85\xa3bin\xc4\np\x81zDhL\xf0O\xd0\xaf\xa3cmd\xa7fileGet\xa4list\x92\xc4\np\x81zDhL\xf0O\xd0\xaf\xc4\np\x81zDhL\xf0O\xd0\xaf\xa6params\x81\xa4site\xa51Site\xa4utf8\xad\xc3\xa1rv\xc3\xadzt\xc5\xb1r\xc5\x91'
|
||||||
assert Msgpack.pack(self.test_data, use_bin_type=False) == b'\x85\xa3cmd\xa7fileGet\xa6params\x81\xa4site\xa51Site\xa4utf8\xad\xc3\xa1rv\xc3\xadzt\xc5\xb1r\xc5\x91\xa3bin\xaap\x81zDhL\xf0O\xd0\xaf\xa4list\x92\xaap\x81zDhL\xf0O\xd0\xaf\xaap\x81zDhL\xf0O\xd0\xaf'
|
assert Msgpack.pack(self.test_data, use_bin_type=False) == b'\x85\xa3bin\xaap\x81zDhL\xf0O\xd0\xaf\xa3cmd\xa7fileGet\xa4list\x92\xaap\x81zDhL\xf0O\xd0\xaf\xaap\x81zDhL\xf0O\xd0\xaf\xa6params\x81\xa4site\xa51Site\xa4utf8\xad\xc3\xa1rv\xc3\xadzt\xc5\xb1r\xc5\x91'
|
||||||
|
|
||||||
def testUnpackinkg(self):
|
def testUnpackinkg(self):
|
||||||
assert Msgpack.unpack(Msgpack.pack(self.test_data)) == self.test_data
|
assert Msgpack.unpack(Msgpack.pack(self.test_data)) == self.test_data
|
||||||
|
|
Loading…
Reference in a new issue