deltachat-rpc-client 2.35.0__tar.gz → 2.37.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {deltachat_rpc_client-2.35.0/src/deltachat_rpc_client.egg-info → deltachat_rpc_client-2.37.0}/PKG-INFO +1 -1
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/pyproject.toml +1 -1
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0/src/deltachat_rpc_client.egg-info}/PKG-INFO +1 -1
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_calls.py +45 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_securejoin.py +1 -1
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_something.py +99 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/LICENSE +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/README.md +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/setup.cfg +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/__init__.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/_utils.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/account.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/chat.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/client.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/const.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/contact.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/deltachat.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/events.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/message.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/py.typed +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/pytestplugin.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/rpc.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client.egg-info/SOURCES.txt +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client.egg-info/dependency_links.txt +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client.egg-info/entry_points.txt +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client.egg-info/top_level.txt +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_account_events.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_chatlist_events.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_cross_core.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_folders.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_iroh_webxdc.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_key_transfer.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_multidevice.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_multitransport.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_vcard.py +0 -0
- {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/tests/test_webxdc.py +0 -0
|
@@ -107,3 +107,48 @@ def test_no_contact_request_call(acfactory) -> None:
|
|
|
107
107
|
msg = bob.get_message_by_id(event.msg_id)
|
|
108
108
|
if msg.get_snapshot().text == "Hello!":
|
|
109
109
|
break
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def test_who_can_call_me_nobody(acfactory) -> None:
|
|
113
|
+
alice, bob = acfactory.get_online_accounts(2)
|
|
114
|
+
|
|
115
|
+
# Bob sets "who can call me" to "nobody" (2)
|
|
116
|
+
bob.set_config("who_can_call_me", "2")
|
|
117
|
+
|
|
118
|
+
# Bob even accepts Alice in advance so the chat does not appear as contact request.
|
|
119
|
+
bob.create_chat(alice)
|
|
120
|
+
|
|
121
|
+
alice_chat_bob = alice.create_chat(bob)
|
|
122
|
+
alice_chat_bob.place_outgoing_call("offer")
|
|
123
|
+
alice_chat_bob.send_text("Hello!")
|
|
124
|
+
|
|
125
|
+
# Notification for "Hello!" message should arrive
|
|
126
|
+
# without the call ringing.
|
|
127
|
+
while True:
|
|
128
|
+
event = bob.wait_for_event()
|
|
129
|
+
|
|
130
|
+
# There should be no incoming call notification.
|
|
131
|
+
assert event.kind != EventType.INCOMING_CALL
|
|
132
|
+
|
|
133
|
+
if event.kind == EventType.INCOMING_MSG:
|
|
134
|
+
msg = bob.get_message_by_id(event.msg_id)
|
|
135
|
+
if msg.get_snapshot().text == "Hello!":
|
|
136
|
+
break
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def test_who_can_call_me_everybody(acfactory) -> None:
|
|
140
|
+
"""Test that if "who can call me" setting is set to "everybody", calls arrive even in contact request chats."""
|
|
141
|
+
alice, bob = acfactory.get_online_accounts(2)
|
|
142
|
+
|
|
143
|
+
# Bob sets "who can call me" to "nobody" (0)
|
|
144
|
+
bob.set_config("who_can_call_me", "0")
|
|
145
|
+
|
|
146
|
+
alice_chat_bob = alice.create_chat(bob)
|
|
147
|
+
alice_chat_bob.place_outgoing_call("offer")
|
|
148
|
+
incoming_call_event = bob.wait_for_event(EventType.INCOMING_CALL)
|
|
149
|
+
|
|
150
|
+
incoming_call_message = Message(bob, incoming_call_event.msg_id)
|
|
151
|
+
|
|
152
|
+
# Even with the call arriving, the chat is still in the contact request mode.
|
|
153
|
+
incoming_chat = incoming_call_message.get_snapshot().chat
|
|
154
|
+
assert incoming_chat.get_basic_snapshot().is_contact_request
|
|
@@ -696,6 +696,6 @@ def test_withdraw_securejoin_qr(acfactory):
|
|
|
696
696
|
event = alice.wait_for_event()
|
|
697
697
|
if (
|
|
698
698
|
event.kind == EventType.WARNING
|
|
699
|
-
and "Ignoring
|
|
699
|
+
and "Ignoring RequestWithAuth message because of invalid auth code." in event.msg
|
|
700
700
|
):
|
|
701
701
|
break
|
|
@@ -340,9 +340,11 @@ def test_receive_imf_failure(acfactory) -> None:
|
|
|
340
340
|
msg_id = event.msg_id
|
|
341
341
|
message = bob.get_message_by_id(msg_id)
|
|
342
342
|
snapshot = message.get_snapshot()
|
|
343
|
+
version = bob.get_info()["deltachat_core_version"]
|
|
343
344
|
assert (
|
|
344
345
|
snapshot.text == "❌ Failed to receive a message:"
|
|
345
346
|
" Condition failed: `!context.get_config_bool(Config::FailOnReceivingFullMsg).await?`."
|
|
347
|
+
f" Core version {version}."
|
|
346
348
|
" Please report this bug to delta@merlinux.eu or https://support.delta.chat/."
|
|
347
349
|
)
|
|
348
350
|
|
|
@@ -505,6 +507,103 @@ def test_import_export_backup(acfactory, tmp_path) -> None:
|
|
|
505
507
|
assert alice2.manager.get_system_info()
|
|
506
508
|
|
|
507
509
|
|
|
510
|
+
def test_import_export_online_all(acfactory, tmp_path, data, log) -> None:
|
|
511
|
+
(ac1, some1) = acfactory.get_online_accounts(2)
|
|
512
|
+
|
|
513
|
+
log.section("create some chat content")
|
|
514
|
+
some1_addr = some1.get_config("addr")
|
|
515
|
+
chat1 = ac1.create_contact(some1).create_chat()
|
|
516
|
+
chat1.send_text("msg1")
|
|
517
|
+
assert len(ac1.get_contacts()) == 1
|
|
518
|
+
|
|
519
|
+
original_image_path = data.get_path("image/avatar64x64.png")
|
|
520
|
+
chat1.send_file(str(original_image_path))
|
|
521
|
+
|
|
522
|
+
# Add another 100KB file that ensures that the progress is smooth enough
|
|
523
|
+
path = tmp_path / "attachment.txt"
|
|
524
|
+
with path.open("w") as file:
|
|
525
|
+
file.truncate(100000)
|
|
526
|
+
chat1.send_file(str(path))
|
|
527
|
+
|
|
528
|
+
def assert_account_is_proper(ac):
|
|
529
|
+
contacts = ac.get_contacts()
|
|
530
|
+
assert len(contacts) == 1
|
|
531
|
+
contact2 = contacts[0]
|
|
532
|
+
assert contact2.get_snapshot().address == some1_addr
|
|
533
|
+
chat2 = contact2.create_chat()
|
|
534
|
+
messages = chat2.get_messages()
|
|
535
|
+
assert len(messages) == 3 + E2EE_INFO_MSGS
|
|
536
|
+
assert messages[0 + E2EE_INFO_MSGS].get_snapshot().text == "msg1"
|
|
537
|
+
snapshot = messages[1 + E2EE_INFO_MSGS].get_snapshot()
|
|
538
|
+
assert snapshot.file_mime == "image/png"
|
|
539
|
+
assert os.stat(snapshot.file).st_size == os.stat(original_image_path).st_size
|
|
540
|
+
ac.set_config("displayname", "new displayname")
|
|
541
|
+
assert ac.get_config("displayname") == "new displayname"
|
|
542
|
+
|
|
543
|
+
assert_account_is_proper(ac1)
|
|
544
|
+
|
|
545
|
+
backupdir = tmp_path / "backup"
|
|
546
|
+
backupdir.mkdir()
|
|
547
|
+
|
|
548
|
+
log.section(f"export all to {backupdir}")
|
|
549
|
+
ac1.stop_io()
|
|
550
|
+
ac1.export_backup(backupdir)
|
|
551
|
+
progress = 0
|
|
552
|
+
files_written = []
|
|
553
|
+
while True:
|
|
554
|
+
event = ac1.wait_for_event()
|
|
555
|
+
if event.kind == EventType.IMEX_PROGRESS:
|
|
556
|
+
assert event.progress > 0 # Progress 0 indicates error.
|
|
557
|
+
assert event.progress < progress + 250
|
|
558
|
+
progress = event.progress
|
|
559
|
+
if progress == 1000:
|
|
560
|
+
break
|
|
561
|
+
elif event.kind == EventType.IMEX_FILE_WRITTEN:
|
|
562
|
+
files_written.append(event.path)
|
|
563
|
+
else:
|
|
564
|
+
logging.info(event)
|
|
565
|
+
assert len(files_written) == 1
|
|
566
|
+
assert os.path.exists(files_written[0])
|
|
567
|
+
ac1.start_io()
|
|
568
|
+
|
|
569
|
+
log.section("get fresh empty account")
|
|
570
|
+
ac2 = acfactory.get_unconfigured_account()
|
|
571
|
+
|
|
572
|
+
log.section("import backup and check it's proper")
|
|
573
|
+
ac2.import_backup(files_written[0])
|
|
574
|
+
progress = 0
|
|
575
|
+
while True:
|
|
576
|
+
event = ac2.wait_for_event()
|
|
577
|
+
if event.kind == EventType.IMEX_PROGRESS:
|
|
578
|
+
assert event.progress > 0 # Progress 0 indicates error.
|
|
579
|
+
assert event.progress < progress + 250
|
|
580
|
+
progress = event.progress
|
|
581
|
+
if progress == 1000:
|
|
582
|
+
break
|
|
583
|
+
else:
|
|
584
|
+
logging.info(event)
|
|
585
|
+
assert_account_is_proper(ac1)
|
|
586
|
+
assert_account_is_proper(ac2)
|
|
587
|
+
|
|
588
|
+
log.section(f"Second-time export all to {backupdir}")
|
|
589
|
+
ac1.stop_io()
|
|
590
|
+
ac1.export_backup(backupdir)
|
|
591
|
+
while True:
|
|
592
|
+
event = ac1.wait_for_event()
|
|
593
|
+
if event.kind == EventType.IMEX_PROGRESS:
|
|
594
|
+
assert event.progress > 0
|
|
595
|
+
if event.progress == 1000:
|
|
596
|
+
break
|
|
597
|
+
elif event.kind == EventType.IMEX_FILE_WRITTEN:
|
|
598
|
+
files_written.append(event.path)
|
|
599
|
+
else:
|
|
600
|
+
logging.info(event)
|
|
601
|
+
assert len(files_written) == 2
|
|
602
|
+
assert os.path.exists(files_written[1])
|
|
603
|
+
assert files_written[1] != files_written[0]
|
|
604
|
+
assert len(list(backupdir.glob("*.tar"))) == 2
|
|
605
|
+
|
|
606
|
+
|
|
508
607
|
def test_import_export_keys(acfactory, tmp_path) -> None:
|
|
509
608
|
alice, bob = acfactory.get_online_accounts(2)
|
|
510
609
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/__init__.py
RENAMED
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/_utils.py
RENAMED
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/account.py
RENAMED
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/chat.py
RENAMED
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/client.py
RENAMED
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/const.py
RENAMED
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/contact.py
RENAMED
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/deltachat.py
RENAMED
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/events.py
RENAMED
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/message.py
RENAMED
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/py.typed
RENAMED
|
File without changes
|
{deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.37.0}/src/deltachat_rpc_client/pytestplugin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|