Skip to content

Commit

Permalink
python3Packages.matrix-nio: add withOlm flag
Browse files Browse the repository at this point in the history
  • Loading branch information
emilazy committed Aug 25, 2024
1 parent 3e9049c commit 89d4919
Show file tree
Hide file tree
Showing 7 changed files with 139 additions and 34 deletions.
4 changes: 2 additions & 2 deletions nixos/tests/matrix/mjolnir.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ buildPythonApplication rec {
propagatedBuildInputs = [
cacert
setuptools
matrix-nio
(matrix-nio.override { withOlm = true; })
python-magic
markdown
pillow
Expand All @@ -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";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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; [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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" ];

Expand Down
5 changes: 2 additions & 3 deletions pkgs/applications/networking/opsdroid/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ python3Packages.buildPythonPackage rec {
emoji
get-video-properties
ibm-watson
matrix-nio
(matrix-nio.override { withOlm = true; })
mattermostdriver
motor
multidict
Expand All @@ -58,8 +58,7 @@ python3Packages.buildPythonPackage rec {
watchgod
webexteamssdk
wrapt
]
++ matrix-nio.optional-dependencies.e2e;
];

passthru.python = python3Packages.python;

Expand Down
Original file line number Diff line number Diff line change
@@ -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,
94 changes: 71 additions & 23 deletions pkgs/development/python-modules/matrix-nio/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@
pantalaimon,
weechatScripts,
zulip,

withOlm ? false,
}:

buildPythonPackage rec {
Expand All @@ -52,31 +54,34 @@ buildPythonPackage rec {
hash = "sha256-XlswVHLvKOi1qr+I7Mbm4IBjn1DG7glgDsNY48NA5Ew=";
};

nativeBuildInputs = [ poetry-core ];

propagatedBuildInputs = [
aiofiles
aiohttp
aiohttp-socks
h11
h2
jsonschema
pycryptodome
unpaddedbase64
patches = [
# Ignore olm import failures when testing
./allow-tests-without-olm.patch
];

pythonRelaxDeps = [
"aiohttp-socks" # Pending matrix-nio/matrix-nio#516
];
nativeBuildInputs = [ poetry-core ];

passthru.optional-dependencies = {
e2e = [
propagatedBuildInputs =
[
aiofiles
aiohttp
aiohttp-socks
h11
h2
jsonschema
pycryptodome
unpaddedbase64
]
++ lib.optionals withOlm [
atomicwrites
cachetools
python-olm
peewee
];
};

pythonRelaxDeps = [
"aiohttp-socks" # Pending matrix-nio/matrix-nio#516
];

nativeCheckInputs = [
aioresponses
Expand All @@ -87,17 +92,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
Expand Down

0 comments on commit 89d4919

Please sign in to comment.