deltachat-rpc-client 2.35.0__tar.gz → 2.36.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.
Files changed (36) hide show
  1. {deltachat_rpc_client-2.35.0/src/deltachat_rpc_client.egg-info → deltachat_rpc_client-2.36.0}/PKG-INFO +1 -1
  2. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/pyproject.toml +1 -1
  3. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0/src/deltachat_rpc_client.egg-info}/PKG-INFO +1 -1
  4. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_something.py +99 -0
  5. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/LICENSE +0 -0
  6. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/README.md +0 -0
  7. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/setup.cfg +0 -0
  8. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/__init__.py +0 -0
  9. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/_utils.py +0 -0
  10. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/account.py +0 -0
  11. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/chat.py +0 -0
  12. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/client.py +0 -0
  13. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/const.py +0 -0
  14. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/contact.py +0 -0
  15. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/deltachat.py +0 -0
  16. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/events.py +0 -0
  17. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/message.py +0 -0
  18. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/py.typed +0 -0
  19. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/pytestplugin.py +0 -0
  20. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client/rpc.py +0 -0
  21. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client.egg-info/SOURCES.txt +0 -0
  22. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client.egg-info/dependency_links.txt +0 -0
  23. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client.egg-info/entry_points.txt +0 -0
  24. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/src/deltachat_rpc_client.egg-info/top_level.txt +0 -0
  25. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_account_events.py +0 -0
  26. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_calls.py +0 -0
  27. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_chatlist_events.py +0 -0
  28. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_cross_core.py +0 -0
  29. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_folders.py +0 -0
  30. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_iroh_webxdc.py +0 -0
  31. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_key_transfer.py +0 -0
  32. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_multidevice.py +0 -0
  33. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_multitransport.py +0 -0
  34. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_securejoin.py +0 -0
  35. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_vcard.py +0 -0
  36. {deltachat_rpc_client-2.35.0 → deltachat_rpc_client-2.36.0}/tests/test_webxdc.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deltachat-rpc-client
3
- Version: 2.35.0
3
+ Version: 2.36.0
4
4
  Summary: Python client for Delta Chat core JSON-RPC interface
5
5
  License-Expression: MPL-2.0
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "deltachat-rpc-client"
7
- version = "2.35.0"
7
+ version = "2.36.0"
8
8
  license = "MPL-2.0"
9
9
  description = "Python client for Delta Chat core JSON-RPC interface"
10
10
  classifiers = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deltachat-rpc-client
3
- Version: 2.35.0
3
+ Version: 2.36.0
4
4
  Summary: Python client for Delta Chat core JSON-RPC interface
5
5
  License-Expression: MPL-2.0
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -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