forked from noirbizarre/flask-fs
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtest_config.py
120 lines (94 loc) · 3.6 KB
/
test_config.py
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
from os.path import join
from flask import url_for
from flask_fs import Storage, DEFAULTS, NONE
from flask_fs.backends.local import LocalBackend
def test_default_configuration(app):
app.configure(FS_SERVE=False)
assert not app.config["FS_SERVE"]
assert app.config["FS_ROOT"] == join(app.instance_path, "fs")
assert app.config["FS_PREFIX"] is None
assert app.config["FS_URL"] is None
assert app.config["FS_IMAGES_OPTIMIZE"] is False
def test_default_debug_configuration(app):
app.configure()
assert app.config["FS_SERVE"]
assert app.config["FS_ROOT"] == join(app.instance_path, "fs")
assert app.config["FS_PREFIX"] is None
assert app.config["FS_URL"] is None
assert app.config["FS_IMAGES_OPTIMIZE"] is False
def test_not_configured():
files = Storage("files")
assert files.backend is None
assert files.config == {}
def test_default_f(app):
files = Storage("files")
app.configure(files)
assert files.name == "files"
assert files.extensions == DEFAULTS
assert isinstance(files.backend, LocalBackend)
assert files.base_url == url_for(
"fs.get_file", fs="files", filename="", _external=True
)
assert "files" in app.extensions["fs"]
assert app.extensions["fs"]["files"] == files
def test_custom_prefix(app):
files = Storage("files")
app.configure(files, FS_PREFIX="/test")
assert files.name == "files"
assert files.extensions == DEFAULTS
assert isinstance(files.backend, LocalBackend)
assert files.base_url == url_for(
"fs.get_file", fs="files", filename="", _external=True
)
assert files.base_url == "http://localhost/test/files/"
def test_custom_url(app):
files = Storage("files")
app.configure(files, FS_URL="http://somewhere.net/test/")
assert files.base_url == "http://somewhere.net/test/files/"
def test_custom_f_url(app):
files = Storage("files")
app.configure(
files,
FS_URL="http://somewhere.net/test/",
FILES_FS_URL="http://somewhere-else.net/test/",
)
assert files.base_url == "http://somewhere-else.net/test/"
def test_backend_level_configuration(app):
files = Storage("files")
app.configure(
files,
FS_URL="http://somewhere.net/test/",
FS_LOCAL_URL="http://somewhere-else.net/local/",
)
assert isinstance(files.backend, LocalBackend)
assert files.base_url == "http://somewhere-else.net/local/files/"
def test_configuration_cascading(app):
files = Storage("files")
avatars = Storage("avatars")
images = Storage("images")
app.configure(
files,
avatars,
images,
FS_BACKEND="s3",
FS_S3_ENDPOINT="http://localhost:9000",
FS_S3_REGION="us-east-1",
FS_S3_ACCESS_KEY="ABCDEFGHIJKLMNOQRSTU",
FS_S3_SECRET_KEY="abcdefghiklmnoqrstuvwxyz1234567890abcdef",
FS_URL="http://somewhere.net/test/",
FS_LOCAL_URL="http://somewhere-else.net/local/",
FILES_FS_BACKEND="local",
AVATARS_FS_BACKEND="local",
AVATARS_FS_URL="http://somewhere-else.net/avatars/",
)
assert files.backend_name == "local"
assert avatars.backend_name == "local"
assert images.backend_name == "s3"
assert files.base_url == "http://somewhere-else.net/local/files/"
assert avatars.base_url == "http://somewhere-else.net/avatars/"
assert images.base_url == "http://somewhere.net/test/images/"
assert images.config.endpoint == "http://localhost:9000"
def test_configurable_extensions(app):
files = Storage("files", NONE)
app.configure(files, FS_ALLOW=["txt"])
assert files.extension_allowed("txt")