1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-11-17 19:21:04 +00:00

python3Packages.matrix-nio: add withOlm flag

This commit is contained in:
Emily 2024-08-24 00:42:17 +01:00
parent 90b75a1f39
commit 343ad0ee4a
7 changed files with 169 additions and 64 deletions

View file

@ -109,8 +109,8 @@ import ../make-test-python.nix (
environment.systemPackages = [
(pkgs.writers.writePython3Bin "create_management_room_and_invite_mjolnir"
{ libraries = with pkgs.python3Packages; [
matrix-nio
] ++ matrix-nio.optional-dependencies.e2e;
(matrix-nio.override { withOlm = true; })
];
} ''
import asyncio

View file

@ -41,7 +41,7 @@ buildPythonApplication rec {
propagatedBuildInputs = [
cacert
setuptools
matrix-nio
(matrix-nio.override { withOlm = true; })
python-magic
markdown
pillow
@ -51,7 +51,7 @@ buildPythonApplication rec {
pyxdg
python-olm
emoji
] ++ matrix-nio.optional-dependencies.e2e;
];
meta = with lib; {
description = "Simple but convenient CLI-based Matrix client app for sending and receiving";

View file

@ -39,11 +39,10 @@ python3Packages.buildPythonApplication rec {
janus
keyring
logbook
matrix-nio
(matrix-nio.override { withOlm = true; })
peewee
prompt-toolkit
]
++ matrix-nio.optional-dependencies.e2e
++ lib.optionals enableDbusUi optional-dependencies.ui;
optional-dependencies.ui = with python3Packages; [

View file

@ -56,10 +56,10 @@ in buildPythonPackage {
attrs
logbook
pygments
matrix-nio
(matrix-nio.override { withOlm = true; })
aiohttp
requests
] ++ matrix-nio.optional-dependencies.e2e;
];
passthru.scripts = [ "matrix.py" ];

View file

@ -18,48 +18,45 @@ python3Packages.buildPythonPackage rec {
build-system = with python3Packages; [ setuptools ];
dependencies =
with python3Packages;
[
aiohttp
aiohttp-middlewares
aioredis
aiosqlite
appdirs
arrow
babel
bitstring
bleach
# botbuilder-core, connector for teams
certifi
click
# dialogflow, connector for Dialogflow
dnspython
emoji
get-video-properties
ibm-watson
matrix-nio
mattermostdriver
motor
multidict
nbconvert
nbformat
opsdroid-get-image-size
parse
puremagic
pycron
python-olm
pyyaml
regex
rich
slack-sdk
tailer
voluptuous
watchgod
webexteamssdk
wrapt
]
++ matrix-nio.optional-dependencies.e2e;
dependencies = with python3Packages; [
aiohttp
aiohttp-middlewares
aioredis
aiosqlite
appdirs
arrow
babel
bitstring
bleach
# botbuilder-core, connector for teams
certifi
click
# dialogflow, connector for Dialogflow
dnspython
emoji
get-video-properties
ibm-watson
(matrix-nio.override { withOlm = true; })
mattermostdriver
motor
multidict
nbconvert
nbformat
opsdroid-get-image-size
parse
puremagic
pycron
python-olm
pyyaml
regex
rich
slack-sdk
tailer
voluptuous
watchgod
webexteamssdk
wrapt
];
passthru.python = python3Packages.python;

View file

@ -0,0 +1,59 @@
diff --git a/tests/async_client_test.py b/tests/async_client_test.py
index 846c854a32..3a66af2baa 100644
--- a/tests/async_client_test.py
+++ b/tests/async_client_test.py
@@ -129,7 +129,10 @@
)
from nio.api import EventFormat, ResizingMethod, RoomPreset, RoomVisibility
from nio.client.async_client import connect_wrapper, on_request_chunk_sent
-from nio.crypto import OlmDevice, Session, decrypt_attachment
+try:
+ from nio.crypto import OlmDevice, Session, decrypt_attachment
+except ImportError:
+ pass
TEST_ROOM_ID = "!testroom:example.org"
diff --git a/tests/conftest.py b/tests/conftest.py
index ae37ca1169..e5f791a31e 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -9,11 +9,17 @@
async_client_pair,
async_client_pair_same_user,
)
-from olm import Account
+try:
+ from olm import Account
+except ImportError:
+ pass
from nio import Client, ClientConfig, HttpClient
-from nio.crypto import Olm, OlmDevice
-from nio.store import SqliteMemoryStore
+try:
+ from nio.crypto import Olm, OlmDevice
+ from nio.store import SqliteMemoryStore
+except ImportError:
+ pass
ALICE_ID = "@alice:example.org"
ALICE_DEVICE_ID = "JLAFKJWSCS"
diff --git a/tests/helpers.py b/tests/helpers.py
index 63445b605a..05096d1dc3 100644
--- a/tests/helpers.py
+++ b/tests/helpers.py
@@ -26,8 +26,11 @@
WindowUpdateFrame,
)
-from nio.crypto import OlmAccount, OlmDevice
-from nio.store import Ed25519Key
+try:
+ from nio.crypto import OlmAccount, OlmDevice
+ from nio.store import Ed25519Key
+except ImportError:
+ pass
SAMPLE_SETTINGS = {
SettingsFrame.HEADER_TABLE_SIZE: 4096,

View file

@ -38,6 +38,8 @@
pantalaimon,
weechatScripts,
zulip,
withOlm ? false,
}:
buildPythonPackage rec {
@ -52,9 +54,14 @@ buildPythonPackage rec {
hash = "sha256-XlswVHLvKOi1qr+I7Mbm4IBjn1DG7glgDsNY48NA5Ew=";
};
nativeBuildInputs = [ poetry-core ];
patches = [
# Ignore olm import failures when testing
./allow-tests-without-olm.patch
];
propagatedBuildInputs = [
build-system = [ poetry-core ];
dependencies = [
aiofiles
aiohttp
aiohttp-socks
@ -63,13 +70,9 @@ buildPythonPackage rec {
jsonschema
pycryptodome
unpaddedbase64
];
] ++ lib.optionals withOlm optional-dependencies.e2e;
pythonRelaxDeps = [
"aiohttp-socks" # Pending matrix-nio/matrix-nio#516
];
passthru.optional-dependencies = {
optional-dependencies = {
e2e = [
atomicwrites
cachetools
@ -78,6 +81,10 @@ buildPythonPackage rec {
];
};
pythonRelaxDeps = [
"aiohttp-socks" # Pending matrix-nio/matrix-nio#516
];
nativeCheckInputs = [
aioresponses
faker
@ -87,17 +94,60 @@ buildPythonPackage rec {
pytest-aiohttp
pytest-benchmark
pytestCheckHook
] ++ passthru.optional-dependencies.e2e;
];
pytestFlagsArray = [ "--benchmark-disable" ];
disabledTests = [
# touches network
"test_connect_wrapper"
# time dependent and flaky
"test_transfer_monitor_callbacks"
disabledTestPaths = lib.optionals (!withOlm) [
"tests/encryption_test.py"
"tests/key_export_test.py"
"tests/memory_store_test.py"
"tests/sas_test.py"
"tests/sessions_test.py"
"tests/store_test.py"
];
disabledTests =
[
# touches network
"test_connect_wrapper"
# time dependent and flaky
"test_transfer_monitor_callbacks"
]
++ lib.optionals (!withOlm) [
"test_client_account_sharing"
"test_client_key_query"
"test_client_login"
"test_client_protocol_error"
"test_client_restore_login"
"test_client_room_creation"
"test_device_store"
"test_e2e_sending"
"test_early_store_loading"
"test_encrypted_data_generator"
"test_http_client_keys_query"
"test_key_claiming"
"test_key_exports"
"test_key_invalidation"
"test_key_sharing"
"test_key_sharing_callbacks"
"test_key_sharing_cancellation"
"test_keys_query"
"test_keys_upload"
"test_marking_sessions_as_shared"
"test_message_sending"
"test_query_rule"
"test_room_devices"
"test_sas_verification"
"test_sas_verification_cancel"
"test_session_sharing"
"test_session_sharing_2"
"test_session_unwedging"
"test_storing_room_encryption_state"
"test_sync_forever"
"test_sync_token_restoring"
];
passthru.tests = {
inherit (nixosTests)
dendrite