mirror of https://github.com/zulip/zulip.git
requirements: Upgrade Python requirements.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
2ce8357009
commit
a881918a05
|
@ -135,6 +135,7 @@ ignore = [
|
||||||
"E731", # Do not assign a lambda expression, use a def
|
"E731", # Do not assign a lambda expression, use a def
|
||||||
"N802", # Function name should be lowercase
|
"N802", # Function name should be lowercase
|
||||||
"N806", # Variable in function should be lowercase
|
"N806", # Variable in function should be lowercase
|
||||||
|
"PLC1901", # `s == ""` can be simplified to `not s` as an empty string is falsey
|
||||||
"PLR0911", # Too many return statements
|
"PLR0911", # Too many return statements
|
||||||
"PLR0912", # Too many branches
|
"PLR0912", # Too many branches
|
||||||
"PLR0913", # Too many arguments to function call
|
"PLR0913", # Too many arguments to function call
|
||||||
|
@ -152,6 +153,8 @@ ignore = [
|
||||||
"S107", # Possible hardcoded password
|
"S107", # Possible hardcoded password
|
||||||
"S110", # `try`-`except`-`pass` detected, consider logging the exception
|
"S110", # `try`-`except`-`pass` detected, consider logging the exception
|
||||||
"S113", # Probable use of requests call without timeout
|
"S113", # Probable use of requests call without timeout
|
||||||
|
"S310", # Audit URL open for permitted schemes. Allowing use of `file:` or custom schemes is often unexpected.
|
||||||
|
"S311", # Standard pseudo-random generators are not suitable for cryptographic purposes
|
||||||
"S324", # Probable use of insecure hash functions in `hashlib`
|
"S324", # Probable use of insecure hash functions in `hashlib`
|
||||||
"SIM103", # Return the condition directly
|
"SIM103", # Return the condition directly
|
||||||
"SIM108", # Use ternary operator `action = "[commented]" if action == "created" else f"{action} a [comment]"` instead of if-else-block
|
"SIM108", # Use ternary operator `action = "[commented]" if action == "created" else f"{action} a [comment]"` instead of if-else-block
|
||||||
|
|
|
@ -21,7 +21,7 @@ coverage<6.4.3 # undiagnosed bug
|
||||||
fakeldap
|
fakeldap
|
||||||
|
|
||||||
# For testing mock http requests
|
# For testing mock http requests
|
||||||
https://github.com/getsentry/responses/archive/b30c13fe1c9a2e60e7e2de7a92322b4d4ad57562.zip#egg=responses==0.22.0+git # https://github.com/getsentry/responses/pull/593
|
responses
|
||||||
|
|
||||||
# For doing highly usable Python profiling
|
# For doing highly usable Python profiling
|
||||||
line-profiler
|
line-profiler
|
||||||
|
|
1490
requirements/dev.txt
1490
requirements/dev.txt
File diff suppressed because it is too large
Load Diff
|
@ -19,95 +19,82 @@ certifi==2022.12.7 \
|
||||||
--hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \
|
--hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \
|
||||||
--hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18
|
--hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18
|
||||||
# via requests
|
# via requests
|
||||||
charset-normalizer==3.0.1 \
|
charset-normalizer==3.1.0 \
|
||||||
--hash=sha256:00d3ffdaafe92a5dc603cb9bd5111aaa36dfa187c8285c543be562e61b755f6b \
|
--hash=sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6 \
|
||||||
--hash=sha256:024e606be3ed92216e2b6952ed859d86b4cfa52cd5bc5f050e7dc28f9b43ec42 \
|
--hash=sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1 \
|
||||||
--hash=sha256:0298eafff88c99982a4cf66ba2efa1128e4ddaca0b05eec4c456bbc7db691d8d \
|
--hash=sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e \
|
||||||
--hash=sha256:02a51034802cbf38db3f89c66fb5d2ec57e6fe7ef2f4a44d070a593c3688667b \
|
--hash=sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373 \
|
||||||
--hash=sha256:083c8d17153ecb403e5e1eb76a7ef4babfc2c48d58899c98fcaa04833e7a2f9a \
|
--hash=sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62 \
|
||||||
--hash=sha256:0a11e971ed097d24c534c037d298ad32c6ce81a45736d31e0ff0ad37ab437d59 \
|
--hash=sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230 \
|
||||||
--hash=sha256:0bf2dae5291758b6f84cf923bfaa285632816007db0330002fa1de38bfcb7154 \
|
--hash=sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be \
|
||||||
--hash=sha256:0c0a590235ccd933d9892c627dec5bc7511ce6ad6c1011fdf5b11363022746c1 \
|
--hash=sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c \
|
||||||
--hash=sha256:0f438ae3532723fb6ead77e7c604be7c8374094ef4ee2c5e03a3a17f1fca256c \
|
--hash=sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0 \
|
||||||
--hash=sha256:109487860ef6a328f3eec66f2bf78b0b72400280d8f8ea05f69c51644ba6521a \
|
--hash=sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448 \
|
||||||
--hash=sha256:11b53acf2411c3b09e6af37e4b9005cba376c872503c8f28218c7243582df45d \
|
--hash=sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f \
|
||||||
--hash=sha256:12db3b2c533c23ab812c2b25934f60383361f8a376ae272665f8e48b88e8e1c6 \
|
--hash=sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649 \
|
||||||
--hash=sha256:14e76c0f23218b8f46c4d87018ca2e441535aed3632ca134b10239dfb6dadd6b \
|
--hash=sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d \
|
||||||
--hash=sha256:16a8663d6e281208d78806dbe14ee9903715361cf81f6d4309944e4d1e59ac5b \
|
--hash=sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0 \
|
||||||
--hash=sha256:292d5e8ba896bbfd6334b096e34bffb56161c81408d6d036a7dfa6929cff8783 \
|
--hash=sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706 \
|
||||||
--hash=sha256:2c03cc56021a4bd59be889c2b9257dae13bf55041a3372d3295416f86b295fb5 \
|
--hash=sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a \
|
||||||
--hash=sha256:2e396d70bc4ef5325b72b593a72c8979999aa52fb8bcf03f701c1b03e1166918 \
|
--hash=sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59 \
|
||||||
--hash=sha256:2edb64ee7bf1ed524a1da60cdcd2e1f6e2b4f66ef7c077680739f1641f62f555 \
|
--hash=sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23 \
|
||||||
--hash=sha256:31a9ddf4718d10ae04d9b18801bd776693487cbb57d74cc3458a7673f6f34639 \
|
--hash=sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5 \
|
||||||
--hash=sha256:356541bf4381fa35856dafa6a965916e54bed415ad8a24ee6de6e37deccf2786 \
|
--hash=sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb \
|
||||||
--hash=sha256:358a7c4cb8ba9b46c453b1dd8d9e431452d5249072e4f56cfda3149f6ab1405e \
|
--hash=sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e \
|
||||||
--hash=sha256:37f8febc8ec50c14f3ec9637505f28e58d4f66752207ea177c1d67df25da5aed \
|
--hash=sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e \
|
||||||
--hash=sha256:39049da0ffb96c8cbb65cbf5c5f3ca3168990adf3551bd1dee10c48fce8ae820 \
|
--hash=sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c \
|
||||||
--hash=sha256:39cf9ed17fe3b1bc81f33c9ceb6ce67683ee7526e65fde1447c772afc54a1bb8 \
|
--hash=sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28 \
|
||||||
--hash=sha256:3ae1de54a77dc0d6d5fcf623290af4266412a7c4be0b1ff7444394f03f5c54e3 \
|
--hash=sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d \
|
||||||
--hash=sha256:3b590df687e3c5ee0deef9fc8c547d81986d9a1b56073d82de008744452d6541 \
|
--hash=sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41 \
|
||||||
--hash=sha256:3e45867f1f2ab0711d60c6c71746ac53537f1684baa699f4f668d4c6f6ce8e14 \
|
--hash=sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974 \
|
||||||
--hash=sha256:3fc1c4a2ffd64890aebdb3f97e1278b0cc72579a08ca4de8cd2c04799a3a22be \
|
--hash=sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce \
|
||||||
--hash=sha256:4457ea6774b5611f4bed5eaa5df55f70abde42364d498c5134b7ef4c6958e20e \
|
--hash=sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f \
|
||||||
--hash=sha256:44ba614de5361b3e5278e1241fda3dc1838deed864b50a10d7ce92983797fa76 \
|
--hash=sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1 \
|
||||||
--hash=sha256:4a8fcf28c05c1f6d7e177a9a46a1c52798bfe2ad80681d275b10dcf317deaf0b \
|
--hash=sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d \
|
||||||
--hash=sha256:4b0d02d7102dd0f997580b51edc4cebcf2ab6397a7edf89f1c73b586c614272c \
|
--hash=sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8 \
|
||||||
--hash=sha256:502218f52498a36d6bf5ea77081844017bf7982cdbe521ad85e64cabee1b608b \
|
--hash=sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017 \
|
||||||
--hash=sha256:503e65837c71b875ecdd733877d852adbc465bd82c768a067badd953bf1bc5a3 \
|
--hash=sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31 \
|
||||||
--hash=sha256:5995f0164fa7df59db4746112fec3f49c461dd6b31b841873443bdb077c13cfc \
|
--hash=sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7 \
|
||||||
--hash=sha256:59e5686dd847347e55dffcc191a96622f016bc0ad89105e24c14e0d6305acbc6 \
|
--hash=sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8 \
|
||||||
--hash=sha256:601f36512f9e28f029d9481bdaf8e89e5148ac5d89cffd3b05cd533eeb423b59 \
|
--hash=sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e \
|
||||||
--hash=sha256:608862a7bf6957f2333fc54ab4399e405baad0163dc9f8d99cb236816db169d4 \
|
--hash=sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14 \
|
||||||
--hash=sha256:62595ab75873d50d57323a91dd03e6966eb79c41fa834b7a1661ed043b2d404d \
|
--hash=sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd \
|
||||||
--hash=sha256:70990b9c51340e4044cfc394a81f614f3f90d41397104d226f21e66de668730d \
|
--hash=sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d \
|
||||||
--hash=sha256:71140351489970dfe5e60fc621ada3e0f41104a5eddaca47a7acb3c1b851d6d3 \
|
--hash=sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795 \
|
||||||
--hash=sha256:72966d1b297c741541ca8cf1223ff262a6febe52481af742036a0b296e35fa5a \
|
--hash=sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b \
|
||||||
--hash=sha256:74292fc76c905c0ef095fe11e188a32ebd03bc38f3f3e9bcb85e4e6db177b7ea \
|
--hash=sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b \
|
||||||
--hash=sha256:761e8904c07ad053d285670f36dd94e1b6ab7f16ce62b9805c475b7aa1cffde6 \
|
--hash=sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b \
|
||||||
--hash=sha256:772b87914ff1152b92a197ef4ea40efe27a378606c39446ded52c8f80f79702e \
|
--hash=sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203 \
|
||||||
--hash=sha256:79909e27e8e4fcc9db4addea88aa63f6423ebb171db091fb4373e3312cb6d603 \
|
--hash=sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f \
|
||||||
--hash=sha256:7e189e2e1d3ed2f4aebabd2d5b0f931e883676e51c7624826e0a4e5fe8a0bf24 \
|
--hash=sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19 \
|
||||||
--hash=sha256:7eb33a30d75562222b64f569c642ff3dc6689e09adda43a082208397f016c39a \
|
--hash=sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1 \
|
||||||
--hash=sha256:81d6741ab457d14fdedc215516665050f3822d3e56508921cc7239f8c8e66a58 \
|
--hash=sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a \
|
||||||
--hash=sha256:8499ca8f4502af841f68135133d8258f7b32a53a1d594aa98cc52013fff55678 \
|
--hash=sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac \
|
||||||
--hash=sha256:84c3990934bae40ea69a82034912ffe5a62c60bbf6ec5bc9691419641d7d5c9a \
|
--hash=sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9 \
|
||||||
--hash=sha256:87701167f2a5c930b403e9756fab1d31d4d4da52856143b609e30a1ce7160f3c \
|
--hash=sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0 \
|
||||||
--hash=sha256:88600c72ef7587fe1708fd242b385b6ed4b8904976d5da0893e31df8b3480cb6 \
|
--hash=sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137 \
|
||||||
--hash=sha256:8ac7b6a045b814cf0c47f3623d21ebd88b3e8cf216a14790b455ea7ff0135d18 \
|
--hash=sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f \
|
||||||
--hash=sha256:8b8af03d2e37866d023ad0ddea594edefc31e827fee64f8de5611a1dbc373174 \
|
--hash=sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6 \
|
||||||
--hash=sha256:8c7fe7afa480e3e82eed58e0ca89f751cd14d767638e2550c77a92a9e749c317 \
|
--hash=sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5 \
|
||||||
--hash=sha256:8eade758719add78ec36dc13201483f8e9b5d940329285edcd5f70c0a9edbd7f \
|
--hash=sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909 \
|
||||||
--hash=sha256:911d8a40b2bef5b8bbae2e36a0b103f142ac53557ab421dc16ac4aafee6f53dc \
|
--hash=sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f \
|
||||||
--hash=sha256:93ad6d87ac18e2a90b0fe89df7c65263b9a99a0eb98f0a3d2e079f12a0735837 \
|
--hash=sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0 \
|
||||||
--hash=sha256:95dea361dd73757c6f1c0a1480ac499952c16ac83f7f5f4f84f0658a01b8ef41 \
|
--hash=sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324 \
|
||||||
--hash=sha256:9ab77acb98eba3fd2a85cd160851816bfce6871d944d885febf012713f06659c \
|
--hash=sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755 \
|
||||||
--hash=sha256:9cb3032517f1627cc012dbc80a8ec976ae76d93ea2b5feaa9d2a5b8882597579 \
|
--hash=sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb \
|
||||||
--hash=sha256:9cf4e8ad252f7c38dd1f676b46514f92dc0ebeb0db5552f5f403509705e24753 \
|
--hash=sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854 \
|
||||||
--hash=sha256:9d9153257a3f70d5f69edf2325357251ed20f772b12e593f3b3377b5f78e7ef8 \
|
--hash=sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c \
|
||||||
--hash=sha256:a152f5f33d64a6be73f1d30c9cc82dfc73cec6477ec268e7c6e4c7d23c2d2291 \
|
--hash=sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60 \
|
||||||
--hash=sha256:a16418ecf1329f71df119e8a65f3aa68004a3f9383821edcb20f0702934d8087 \
|
--hash=sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84 \
|
||||||
--hash=sha256:a60332922359f920193b1d4826953c507a877b523b2395ad7bc716ddd386d866 \
|
--hash=sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0 \
|
||||||
--hash=sha256:a8d0fc946c784ff7f7c3742310cc8a57c5c6dc31631269876a88b809dbeff3d3 \
|
--hash=sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b \
|
||||||
--hash=sha256:ab5de034a886f616a5668aa5d098af2b5385ed70142090e2a31bcbd0af0fdb3d \
|
--hash=sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1 \
|
||||||
--hash=sha256:c22d3fe05ce11d3671297dc8973267daa0f938b93ec716e12e0f6dee81591dc1 \
|
--hash=sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531 \
|
||||||
--hash=sha256:c2ac1b08635a8cd4e0cbeaf6f5e922085908d48eb05d44c5ae9eabab148512ca \
|
--hash=sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1 \
|
||||||
--hash=sha256:c512accbd6ff0270939b9ac214b84fb5ada5f0409c44298361b2f5e13f9aed9e \
|
--hash=sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11 \
|
||||||
--hash=sha256:c75ffc45f25324e68ab238cb4b5c0a38cd1c3d7f1fb1f72b5541de469e2247db \
|
--hash=sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326 \
|
||||||
--hash=sha256:c95a03c79bbe30eec3ec2b7f076074f4281526724c8685a42872974ef4d36b72 \
|
--hash=sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df \
|
||||||
--hash=sha256:cadaeaba78750d58d3cc6ac4d1fd867da6fc73c88156b7a3212a3cd4819d679d \
|
--hash=sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab
|
||||||
--hash=sha256:cd6056167405314a4dc3c173943f11249fa0f1b204f8b51ed4bde1a9cd1834dc \
|
|
||||||
--hash=sha256:db72b07027db150f468fbada4d85b3b2729a3db39178abf5c543b784c1254539 \
|
|
||||||
--hash=sha256:df2c707231459e8a4028eabcd3cfc827befd635b3ef72eada84ab13b52e1574d \
|
|
||||||
--hash=sha256:e62164b50f84e20601c1ff8eb55620d2ad25fb81b59e3cd776a1902527a788af \
|
|
||||||
--hash=sha256:e696f0dd336161fca9adbb846875d40752e6eba585843c768935ba5c9960722b \
|
|
||||||
--hash=sha256:eaa379fcd227ca235d04152ca6704c7cb55564116f8bc52545ff357628e10602 \
|
|
||||||
--hash=sha256:ebea339af930f8ca5d7a699b921106c6e29c617fe9606fa7baa043c1cdae326f \
|
|
||||||
--hash=sha256:f4c39b0e3eac288fedc2b43055cfc2ca7a60362d0e5e87a637beac5d801ef478 \
|
|
||||||
--hash=sha256:f5057856d21e7586765171eac8b9fc3f7d44ef39425f85dbcccb13b3ebea806c \
|
|
||||||
--hash=sha256:f6f45710b4459401609ebebdbcfb34515da4fc2aa886f95107f556ac69a9147e \
|
|
||||||
--hash=sha256:f97e83fa6c25693c7a35de154681fcc257c1c41b38beb0304b9c4d2d9e164479 \
|
|
||||||
--hash=sha256:f9d0c5c045a3ca9bedfc35dca8526798eb91a07aa7a2c0fee134c6c6f321cbd7 \
|
|
||||||
--hash=sha256:ff6f3db31555657f3163b15a6b7c6938d08df7adbfc9dd13d9d19edad678f1e8
|
|
||||||
# via requests
|
# via requests
|
||||||
docutils==0.18.1 \
|
docutils==0.18.1 \
|
||||||
--hash=sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c \
|
--hash=sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c \
|
||||||
|
@ -124,9 +111,9 @@ imagesize==1.4.1 \
|
||||||
--hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \
|
--hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \
|
||||||
--hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a
|
--hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a
|
||||||
# via sphinx
|
# via sphinx
|
||||||
importlib-metadata==6.0.0 \
|
importlib-metadata==6.1.0 \
|
||||||
--hash=sha256:7efb448ec9a5e313a57655d35aa54cd3e01b7e1fbcf72dce1bf06119420f5bad \
|
--hash=sha256:43ce9281e097583d758c2c708c4376371261a02c34682491a8e98352365aad20 \
|
||||||
--hash=sha256:e354bedeb60efa6affdcc8ae121b73544a7aa74156d047311948f6d711cd378d
|
--hash=sha256:ff80f3b5394912eb1b108fcfd444dc78b7f1f3e16b16188054bd01cb9cb86f09
|
||||||
# via sphinx
|
# via sphinx
|
||||||
jinja2==3.1.2 \
|
jinja2==3.1.2 \
|
||||||
--hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \
|
--hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \
|
||||||
|
@ -200,9 +187,9 @@ mdurl==0.1.2 \
|
||||||
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
|
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
|
||||||
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
|
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
|
||||||
# via markdown-it-py
|
# via markdown-it-py
|
||||||
myst-parser==0.19.1 \
|
myst-parser==1.0.0 \
|
||||||
--hash=sha256:356b38aef29ed09144285ad222e5c3cb7a8e7fae8015d53dba40dbb8b9f73e2c \
|
--hash=sha256:502845659313099542bd38a2ae62f01360e7dd4b1310f025dd014dfc0439cdae \
|
||||||
--hash=sha256:f2dc168ed380e01d77973ad22a64fff1377cc72a3d1ac4bced423f28258d0a42
|
--hash=sha256:69fb40a586c6fa68995e6521ac0a525793935db7e724ca9bac1d33be51be9a4c
|
||||||
# via -r requirements/docs.in
|
# via -r requirements/docs.in
|
||||||
packaging==23.0 \
|
packaging==23.0 \
|
||||||
--hash=sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2 \
|
--hash=sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2 \
|
||||||
|
@ -212,9 +199,9 @@ pygments==2.14.0 \
|
||||||
--hash=sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297 \
|
--hash=sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297 \
|
||||||
--hash=sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717
|
--hash=sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717
|
||||||
# via sphinx
|
# via sphinx
|
||||||
pytz==2022.7.1 \
|
pytz==2023.3 \
|
||||||
--hash=sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0 \
|
--hash=sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588 \
|
||||||
--hash=sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a
|
--hash=sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb
|
||||||
# via babel
|
# via babel
|
||||||
pyyaml==6.0 \
|
pyyaml==6.0 \
|
||||||
--hash=sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf \
|
--hash=sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf \
|
||||||
|
@ -273,6 +260,7 @@ sphinx==6.1.3 \
|
||||||
# -r requirements/docs.in
|
# -r requirements/docs.in
|
||||||
# myst-parser
|
# myst-parser
|
||||||
# sphinx-rtd-theme
|
# sphinx-rtd-theme
|
||||||
|
# sphinxcontrib-jquery
|
||||||
sphinx-rtd-theme==1.2.0 \
|
sphinx-rtd-theme==1.2.0 \
|
||||||
--hash=sha256:a0d8bd1a2ed52e0b338cbe19c4b2eef3c5e7a048769753dac6a9f059c7b641b8 \
|
--hash=sha256:a0d8bd1a2ed52e0b338cbe19c4b2eef3c5e7a048769753dac6a9f059c7b641b8 \
|
||||||
--hash=sha256:f823f7e71890abe0ac6aaa6013361ea2696fc8d3e1fa798f463e82bdb77eeff2
|
--hash=sha256:f823f7e71890abe0ac6aaa6013361ea2696fc8d3e1fa798f463e82bdb77eeff2
|
||||||
|
@ -289,9 +277,9 @@ sphinxcontrib-htmlhelp==2.0.1 \
|
||||||
--hash=sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff \
|
--hash=sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff \
|
||||||
--hash=sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903
|
--hash=sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903
|
||||||
# via sphinx
|
# via sphinx
|
||||||
sphinxcontrib-jquery==2.0.0 \
|
sphinxcontrib-jquery==4.1 \
|
||||||
--hash=sha256:8fb65f6dba84bf7bcd1aea1f02ab3955ac34611d838bcc95d4983b805b234daa \
|
--hash=sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a \
|
||||||
--hash=sha256:ed47fa425c338ffebe3c37e1cdb56e30eb806116b85f01055b158c7057fdb995
|
--hash=sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae
|
||||||
# via sphinx-rtd-theme
|
# via sphinx-rtd-theme
|
||||||
sphinxcontrib-jsmath==1.0.1 \
|
sphinxcontrib-jsmath==1.0.1 \
|
||||||
--hash=sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178 \
|
--hash=sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178 \
|
||||||
|
@ -305,17 +293,11 @@ sphinxcontrib-serializinghtml==1.1.5 \
|
||||||
--hash=sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd \
|
--hash=sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd \
|
||||||
--hash=sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952
|
--hash=sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952
|
||||||
# via sphinx
|
# via sphinx
|
||||||
urllib3==1.26.14 \
|
urllib3==1.26.15 \
|
||||||
--hash=sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72 \
|
--hash=sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305 \
|
||||||
--hash=sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1
|
--hash=sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42
|
||||||
# via requests
|
# via requests
|
||||||
zipp==3.15.0 \
|
zipp==3.15.0 \
|
||||||
--hash=sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b \
|
--hash=sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b \
|
||||||
--hash=sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556
|
--hash=sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556
|
||||||
# via importlib-metadata
|
# via importlib-metadata
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
|
||||||
setuptools==67.4.0 \
|
|
||||||
--hash=sha256:e5fd0a713141a4a105412233c63dc4e17ba0090c8e8334594ac790ec97792330 \
|
|
||||||
--hash=sha256:f106dee1b506dee5102cc3f3e9e68137bbad6d47b616be7991714b0c62204251
|
|
||||||
# via sphinxcontrib-jquery
|
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
#
|
#
|
||||||
# For details, see requirements/README.md .
|
# For details, see requirements/README.md .
|
||||||
#
|
#
|
||||||
wheel==0.38.4 \
|
wheel==0.40.0 \
|
||||||
--hash=sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac \
|
--hash=sha256:cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873 \
|
||||||
--hash=sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8
|
--hash=sha256:d236b20e7cb522daf2390fa84c55eea81c5c30190f90f29ae2ca1ad8355bf247
|
||||||
# via -r requirements/pip.in
|
# via -r requirements/pip.in
|
||||||
|
|
||||||
# The following packages are considered to be unsafe in a requirements file:
|
# The following packages are considered to be unsafe in a requirements file:
|
||||||
|
@ -17,7 +17,7 @@ pip==20.3.4 \
|
||||||
--hash=sha256:217ae5161a0e08c0fb873858806e3478c9775caffce5168b50ec885e358c199d \
|
--hash=sha256:217ae5161a0e08c0fb873858806e3478c9775caffce5168b50ec885e358c199d \
|
||||||
--hash=sha256:6773934e5f5fc3eaa8c5a44949b5b924fc122daa0a8aa9f80c835b4ca2a543fc
|
--hash=sha256:6773934e5f5fc3eaa8c5a44949b5b924fc122daa0a8aa9f80c835b4ca2a543fc
|
||||||
# via -r requirements/pip.in
|
# via -r requirements/pip.in
|
||||||
setuptools==67.4.0 \
|
setuptools==67.6.1 \
|
||||||
--hash=sha256:e5fd0a713141a4a105412233c63dc4e17ba0090c8e8334594ac790ec97792330 \
|
--hash=sha256:257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a \
|
||||||
--hash=sha256:f106dee1b506dee5102cc3f3e9e68137bbad6d47b616be7991714b0c62204251
|
--hash=sha256:e728ca814a823bf7bf60162daf9db95b93d532948c4c0bea762ce62f60189078
|
||||||
# via -r requirements/pip.in
|
# via -r requirements/pip.in
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -48,4 +48,4 @@ API_FEATURE_LEVEL = 170
|
||||||
# historical commits sharing the same major version, in which case a
|
# historical commits sharing the same major version, in which case a
|
||||||
# minor version bump suffices.
|
# minor version bump suffices.
|
||||||
|
|
||||||
PROVISION_VERSION = (228, 0)
|
PROVISION_VERSION = (229, 0)
|
||||||
|
|
|
@ -27,9 +27,7 @@ class ZerverConfig(AppConfig):
|
||||||
# needs to be here (rather than e.g. at top-of-file) to avoid
|
# needs to be here (rather than e.g. at top-of-file) to avoid
|
||||||
# running that code too early in Django's setup process, but
|
# running that code too early in Django's setup process, but
|
||||||
# in any case, this is an intentionally unused import.
|
# in any case, this is an intentionally unused import.
|
||||||
import zerver.signals
|
import zerver.signals # noqa: F401
|
||||||
|
|
||||||
zerver.signals
|
|
||||||
|
|
||||||
if settings.POST_MIGRATION_CACHE_FLUSHING:
|
if settings.POST_MIGRATION_CACHE_FLUSHING:
|
||||||
post_migrate.connect(flush_cache, sender=self)
|
post_migrate.connect(flush_cache, sender=self)
|
||||||
|
|
|
@ -3,7 +3,7 @@ import re
|
||||||
import secrets
|
import secrets
|
||||||
from email.headerregistry import Address, AddressHeader
|
from email.headerregistry import Address, AddressHeader
|
||||||
from email.message import EmailMessage
|
from email.message import EmailMessage
|
||||||
from typing import Dict, List, Match, Optional, Tuple
|
from typing import Dict, List, Match, Optional, Tuple, cast
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
|
@ -231,15 +231,18 @@ def send_mm_reply_to_stream(
|
||||||
|
|
||||||
|
|
||||||
def get_message_part_by_type(message: EmailMessage, content_type: str) -> Optional[str]:
|
def get_message_part_by_type(message: EmailMessage, content_type: str) -> Optional[str]:
|
||||||
charsets = message.get_charsets()
|
charsets = cast( # https://github.com/python/typeshed/pull/9944
|
||||||
|
List[Optional[str]], message.get_charsets()
|
||||||
|
)
|
||||||
|
|
||||||
for idx, part in enumerate(message.walk()):
|
for idx, part in enumerate(message.walk()):
|
||||||
if part.get_content_type() == content_type:
|
if part.get_content_type() == content_type:
|
||||||
content = part.get_payload(decode=True)
|
content = part.get_payload(decode=True)
|
||||||
assert isinstance(content, bytes)
|
assert isinstance(content, bytes)
|
||||||
if charsets[idx]:
|
charset = charsets[idx]
|
||||||
|
if charset is not None:
|
||||||
try:
|
try:
|
||||||
return content.decode(charsets[idx], errors="ignore")
|
return content.decode(charset, errors="ignore")
|
||||||
except LookupError:
|
except LookupError:
|
||||||
# The RFCs do not define how to handle unknown
|
# The RFCs do not define how to handle unknown
|
||||||
# charsets, but treating as US-ASCII seems
|
# charsets, but treating as US-ASCII seems
|
||||||
|
|
|
@ -7,7 +7,7 @@ from django_bmemcached.memcached import BMemcached
|
||||||
|
|
||||||
@lru_cache(None)
|
@lru_cache(None)
|
||||||
def _get_bmemcached(location: str, params: bytes) -> BMemcached:
|
def _get_bmemcached(location: str, params: bytes) -> BMemcached:
|
||||||
return BMemcached(location, pickle.loads(params))
|
return BMemcached(location, pickle.loads(params)) # noqa: S301
|
||||||
|
|
||||||
|
|
||||||
def SingletonBMemcached(location: str, params: Dict[str, Any]) -> BMemcached:
|
def SingletonBMemcached(location: str, params: Dict[str, Any]) -> BMemcached:
|
||||||
|
|
|
@ -172,9 +172,9 @@ def render_markdown_path(
|
||||||
|
|
||||||
html = md_engine.convert(markdown_string)
|
html = md_engine.convert(markdown_string)
|
||||||
if context is None:
|
if context is None:
|
||||||
return mark_safe(html)
|
return mark_safe(html) # noqa: S308
|
||||||
|
|
||||||
return mark_safe(jinja.from_string(html).render(context))
|
return mark_safe(jinja.from_string(html).render(context)) # noqa: S308
|
||||||
|
|
||||||
|
|
||||||
def webpack_entry(entrypoint: str) -> List[str]:
|
def webpack_entry(entrypoint: str) -> List[str]:
|
||||||
|
|
|
@ -11,12 +11,9 @@ import re
|
||||||
from typing import Any, Dict, List, Mapping, Optional, Set, Tuple, Union
|
from typing import Any, Dict, List, Mapping, Optional, Set, Tuple, Union
|
||||||
|
|
||||||
import orjson
|
import orjson
|
||||||
from jsonschema.exceptions import ValidationError as JsonSchemaValidationError
|
from openapi_core import Spec, openapi_request_validator, openapi_response_validator
|
||||||
from openapi_core import Spec
|
|
||||||
from openapi_core.testing import MockRequest, MockResponse
|
from openapi_core.testing import MockRequest, MockResponse
|
||||||
from openapi_core.unmarshalling.schemas.exceptions import InvalidSchemaValue
|
from openapi_core.validation.exceptions import ValidationError as OpenAPIValidationError
|
||||||
from openapi_core.validation.request import openapi_request_validator
|
|
||||||
from openapi_core.validation.response import openapi_response_validator
|
|
||||||
|
|
||||||
OPENAPI_SPEC_PATH = os.path.abspath(
|
OPENAPI_SPEC_PATH = os.path.abspath(
|
||||||
os.path.join(os.path.dirname(__file__), "../openapi/zulip.yaml")
|
os.path.join(os.path.dirname(__file__), "../openapi/zulip.yaml")
|
||||||
|
@ -441,48 +438,9 @@ def validate_against_openapi_schema(
|
||||||
result = openapi_response_validator.validate(openapi_spec.spec(), mock_request, mock_response)
|
result = openapi_response_validator.validate(openapi_spec.spec(), mock_request, mock_response)
|
||||||
try:
|
try:
|
||||||
result.raise_for_errors()
|
result.raise_for_errors()
|
||||||
except InvalidSchemaValue as isv:
|
except OpenAPIValidationError as error:
|
||||||
schema_errors = list(isv.schema_errors)
|
message = f"Response validation error at {method} /api/v1{path} ({status_code}):"
|
||||||
message = f"{len(schema_errors)} response validation error(s) at {method} /api/v1{path} ({status_code}):"
|
message += f"\n\n{type(error).__name__}: {error}"
|
||||||
for error in schema_errors:
|
|
||||||
if display_brief_error and isinstance(error, JsonSchemaValidationError):
|
|
||||||
# display_brief_error is designed to avoid printing 1000 lines
|
|
||||||
# of output when the schema to validate is extremely large
|
|
||||||
# (E.g. the several dozen format variants for individual
|
|
||||||
# events returned by GET /events) and instead just display the
|
|
||||||
# specific variant we expect to match the response.
|
|
||||||
brief_error_validator_value = [
|
|
||||||
validator_value
|
|
||||||
for validator_value in error.validator_value
|
|
||||||
if not prune_schema_by_type(validator_value, error.instance["type"])
|
|
||||||
]
|
|
||||||
brief_error_display_schema = error.schema.copy()
|
|
||||||
if "oneOf" in brief_error_display_schema:
|
|
||||||
brief_error_display_schema["oneOf"] = [
|
|
||||||
i_schema
|
|
||||||
for i_schema in error.schema["oneOf"]
|
|
||||||
if not prune_schema_by_type(i_schema, error.instance["type"])
|
|
||||||
]
|
|
||||||
|
|
||||||
# Field list from https://python-jsonschema.readthedocs.io/en/stable/errors/
|
|
||||||
error = JsonSchemaValidationError(
|
|
||||||
message=error.message,
|
|
||||||
validator=error.validator,
|
|
||||||
path=error.path,
|
|
||||||
instance=error.instance,
|
|
||||||
schema_path=error.schema_path,
|
|
||||||
schema=brief_error_display_schema,
|
|
||||||
validator_value=brief_error_validator_value,
|
|
||||||
cause=error.cause,
|
|
||||||
)
|
|
||||||
# Some endpoints have long, descriptive OpenAPI schemas
|
|
||||||
# which, when printed to the console, do not assist with
|
|
||||||
# debugging, so we omit some of the error information.
|
|
||||||
if path in ["/register"] and isinstance(error, JsonSchemaValidationError):
|
|
||||||
error.schema = "OpenAPI schema omitted due to length of output."
|
|
||||||
if len(error.instance) > 100:
|
|
||||||
error.instance = "Error instance omitted due to length of output."
|
|
||||||
message += f"\n\n{type(error).__name__}: {error}"
|
|
||||||
message += (
|
message += (
|
||||||
"\n\nFor help debugging these errors see: "
|
"\n\nFor help debugging these errors see: "
|
||||||
"https://zulip.readthedocs.io/en/latest/documentation/api.html#debugging-schema-validation-errors"
|
"https://zulip.readthedocs.io/en/latest/documentation/api.html#debugging-schema-validation-errors"
|
||||||
|
|
|
@ -15,6 +15,7 @@ from django.test import override_settings
|
||||||
from django.utils.timezone import now as timezone_now
|
from django.utils.timezone import now as timezone_now
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
from urllib3 import encode_multipart_formdata
|
from urllib3 import encode_multipart_formdata
|
||||||
|
from urllib3.fields import RequestField
|
||||||
|
|
||||||
import zerver.lib.upload
|
import zerver.lib.upload
|
||||||
from zerver.actions.create_realm import do_create_realm
|
from zerver.actions.create_realm import do_create_realm
|
||||||
|
@ -34,21 +35,9 @@ from zerver.lib.realm_icon import realm_icon_url
|
||||||
from zerver.lib.realm_logo import get_realm_logo_url
|
from zerver.lib.realm_logo import get_realm_logo_url
|
||||||
from zerver.lib.retention import clean_archived_data
|
from zerver.lib.retention import clean_archived_data
|
||||||
from zerver.lib.test_classes import UploadSerializeMixin, ZulipTestCase
|
from zerver.lib.test_classes import UploadSerializeMixin, ZulipTestCase
|
||||||
from zerver.lib.test_helpers import (
|
from zerver.lib.test_helpers import avatar_disk_path, get_test_image_file, read_test_image_file
|
||||||
avatar_disk_path,
|
from zerver.lib.upload import delete_message_attachment, upload_message_attachment
|
||||||
get_test_image_file,
|
from zerver.lib.upload.base import BadImageError, ZulipUploadBackend, resize_emoji, sanitize_name
|
||||||
read_test_image_file,
|
|
||||||
)
|
|
||||||
from zerver.lib.upload import (
|
|
||||||
delete_message_attachment,
|
|
||||||
upload_message_attachment,
|
|
||||||
)
|
|
||||||
from zerver.lib.upload.base import (
|
|
||||||
BadImageError,
|
|
||||||
ZulipUploadBackend,
|
|
||||||
resize_emoji,
|
|
||||||
sanitize_name,
|
|
||||||
)
|
|
||||||
from zerver.lib.upload.local import LocalUploadBackend
|
from zerver.lib.upload.local import LocalUploadBackend
|
||||||
from zerver.lib.upload.s3 import S3UploadBackend
|
from zerver.lib.upload.s3 import S3UploadBackend
|
||||||
from zerver.lib.users import get_api_key
|
from zerver.lib.users import get_api_key
|
||||||
|
@ -163,13 +152,17 @@ class FileUploadTest(UploadSerializeMixin, ZulipTestCase):
|
||||||
Test coverage for files without content-type in the metadata;
|
Test coverage for files without content-type in the metadata;
|
||||||
in which case we try to guess the content-type from the filename.
|
in which case we try to guess the content-type from the filename.
|
||||||
"""
|
"""
|
||||||
data, content_type = encode_multipart_formdata({"file": ("somefile", b"zulip!", None)})
|
field = RequestField("file", b"zulip!", filename="somefile")
|
||||||
|
field.make_multipart()
|
||||||
|
data, content_type = encode_multipart_formdata([field])
|
||||||
result = self.api_post(
|
result = self.api_post(
|
||||||
self.example_user("hamlet"), "/api/v1/user_uploads", data, content_type=content_type
|
self.example_user("hamlet"), "/api/v1/user_uploads", data, content_type=content_type
|
||||||
)
|
)
|
||||||
self.assert_json_success(result)
|
self.assert_json_success(result)
|
||||||
|
|
||||||
data, content_type = encode_multipart_formdata({"file": ("somefile.txt", b"zulip!", None)})
|
field = RequestField("file", b"zulip!", filename="somefile.txt")
|
||||||
|
field.make_multipart()
|
||||||
|
data, content_type = encode_multipart_formdata([field])
|
||||||
result = self.api_post(
|
result = self.api_post(
|
||||||
self.example_user("hamlet"), "/api/v1/user_uploads", data, content_type=content_type
|
self.example_user("hamlet"), "/api/v1/user_uploads", data, content_type=content_type
|
||||||
)
|
)
|
||||||
|
|
|
@ -179,10 +179,11 @@ def update_realm(
|
||||||
if not user_profile.is_realm_owner:
|
if not user_profile.is_realm_owner:
|
||||||
raise OrganizationOwnerRequiredError
|
raise OrganizationOwnerRequiredError
|
||||||
realm.ensure_not_on_limited_plan()
|
realm.ensure_not_on_limited_plan()
|
||||||
message_retention_days = parse_message_retention_days(
|
message_retention_days = ( # noqa: F841 # used by locals() below
|
||||||
message_retention_days_raw, Realm.MESSAGE_RETENTION_SPECIAL_VALUES_MAP
|
parse_message_retention_days(
|
||||||
|
message_retention_days_raw, Realm.MESSAGE_RETENTION_SPECIAL_VALUES_MAP
|
||||||
|
)
|
||||||
)
|
)
|
||||||
message_retention_days # used by locals() below
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
invite_to_realm_policy is not None or invite_required is not None
|
invite_to_realm_policy is not None or invite_required is not None
|
||||||
|
|
Loading…
Reference in New Issue