Skip to content

Commit 0b4d8f5

Browse files
committed
Remove delete_server_after code. Rust tests are passing
1 parent 741d1be commit 0b4d8f5

18 files changed

Lines changed: 135 additions & 222 deletions

File tree

deltachat-ffi/deltachat.h

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -413,11 +413,6 @@ char* dc_get_blobdir (const dc_context_t* context);
413413
* Messages in the "saved messages" chat (see dc_chat_is_self_talk()) are skipped.
414414
* Messages are deleted whether they were seen or not, the UI should clearly point that out.
415415
* See also dc_estimate_deletion_cnt().
416-
* - `delete_server_after` = 0=do not delete messages from server automatically (default),
417-
* 1=delete messages directly after receiving from server, mvbox is skipped.
418-
* >1=seconds, after which messages are deleted automatically from the server, mvbox is used as defined.
419-
* "Saved messages" are deleted from the server as well as emails, the UI should clearly point that out.
420-
* See also dc_estimate_deletion_cnt().
421416
* - `media_quality` = DC_MEDIA_QUALITY_BALANCED (0) =
422417
* good outgoing images/videos/voice quality at reasonable sizes (default)
423418
* DC_MEDIA_QUALITY_WORSE (1)
@@ -1461,13 +1456,13 @@ dc_chatlist_t* dc_get_similar_chatlist (dc_context_t* context, uint32_t ch
14611456

14621457
/**
14631458
* Estimate the number of messages that will be deleted
1464-
* by the dc_set_config()-options `delete_device_after` or `delete_server_after`.
1459+
* by the dc_set_config()-option `delete_device_after`.
14651460
* This is typically used to show the estimated impact to the user
14661461
* before actually enabling deletion of old messages.
14671462
*
14681463
* @memberof dc_context_t
14691464
* @param context The context object as returned from dc_context_new().
1470-
* @param from_server 1=Estimate deletion count for server, 0=Estimate deletion count for device
1465+
* @param from_server Deprecated, pass 0 here
14711466
* @param seconds Count messages older than the given number of seconds.
14721467
* @return Number of messages that are older than the given number of seconds.
14731468
* Messages in the "saved messages" folder are not counted as they will not be deleted automatically.

deltachat-jsonrpc/src/api.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -735,10 +735,19 @@ impl CommandApi {
735735
Ok(msg_ids)
736736
}
737737

738-
/// Estimate the number of messages that will be deleted
739-
/// by the set_config()-options `delete_device_after` or `delete_server_after`.
738+
/// Estimates the number of messages that will be deleted
739+
/// by the `set_config()`-option `delete_device_after`.
740+
///
740741
/// This is typically used to show the estimated impact to the user
741742
/// before actually enabling deletion of old messages.
743+
///
744+
/// Messages in the "saved messages" folder are not counted as they will not be deleted automatically.
745+
///
746+
/// Parameters:
747+
/// - `from_server`: Deprecated, pass `false` here
748+
/// - `seconds`: Count messages older than the given number of seconds.
749+
///
750+
/// Returns the number of messages that are older than the given number of seconds.
742751
async fn estimate_auto_deletion_count(
743752
&self,
744753
account_id: u32,

deltachat-rpc-client/tests/test_folders.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def test_moved_markseen(acfactory, direct_imap, log):
1717
log.section("ac2: creating DeltaChat folder")
1818
ac2_direct_imap = direct_imap(ac2)
1919
ac2_direct_imap.create_folder("DeltaChat")
20-
ac2.set_config("delete_server_after", "0")
20+
# ac2.set_config("delete_server_after", "0") # TODO check if this causes a test failure
2121
ac2.set_config("sync_msgs", "0") # Do not send a sync message when accepting a contact request.
2222

2323
ac2.add_or_update_transport({"addr": addr, "password": password, "imapFolder": "DeltaChat"})
@@ -58,7 +58,9 @@ def test_markseen_message_and_mdn(acfactory, direct_imap):
5858
ac1, ac2 = acfactory.get_online_accounts(2)
5959

6060
for ac in ac1, ac2:
61-
ac.set_config("delete_server_after", "0")
61+
# TODO check if this causes a test failure
62+
# ac.set_config("delete_server_after", "0")
63+
pass
6264

6365
# Do not send BCC to self, we only want to test MDN on ac1.
6466
ac1.set_config("bcc_self", "0")
@@ -91,7 +93,7 @@ def test_trash_multiple_messages(acfactory, direct_imap, log):
9193
ac1, ac2 = acfactory.get_online_accounts(2)
9294
ac2.stop_io()
9395

94-
ac2.set_config("delete_server_after", "0")
96+
# TODO check if this causes a test failure: ac2.set_config("delete_server_after", "0")
9597
ac2.set_config("sync_msgs", "0")
9698

9799
ac2.start_io()

deltachat-rpc-client/tests/test_multidevice.py

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,6 @@
44
from deltachat_rpc_client.const import MessageState
55

66

7-
def test_bcc_self_delete_server_after_defaults(acfactory):
8-
"""Test default values for bcc_self and delete_server_after."""
9-
ac = acfactory.get_online_account()
10-
11-
# Initially after getting online
12-
# the setting bcc_self is set to 0 because there is only one device
13-
# and delete_server_after is "1", meaning immediate deletion.
14-
assert ac.get_config("bcc_self") == "0"
15-
assert ac.get_config("delete_server_after") == "1"
16-
17-
# Setup a second device.
18-
ac_clone = ac.clone()
19-
ac_clone.bring_online()
20-
21-
# Second device setup
22-
# enables bcc_self and changes default delete_server_after.
23-
assert ac.get_config("bcc_self") == "1"
24-
assert ac.get_config("delete_server_after") == "0"
25-
26-
assert ac_clone.get_config("bcc_self") == "1"
27-
assert ac_clone.get_config("delete_server_after") == "0"
28-
29-
# Manually disabling bcc_self
30-
# also restores the default for delete_server_after.
31-
ac.set_config("bcc_self", "0")
32-
assert ac.get_config("bcc_self") == "0"
33-
assert ac.get_config("delete_server_after") == "1"
34-
35-
# Cloning the account again enables bcc_self
36-
# even though it was manually disabled.
37-
ac_clone = ac.clone()
38-
assert ac.get_config("bcc_self") == "1"
39-
assert ac.get_config("delete_server_after") == "0"
40-
41-
427
def test_one_account_send_bcc_setting(acfactory, log, direct_imap):
438
ac1, ac2 = acfactory.get_online_accounts(2)
449
ac1_clone = ac1.clone()

deltachat-rpc-client/tests/test_something.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1235,7 +1235,7 @@ def test_immediate_autodelete(acfactory, direct_imap, log):
12351235
ac1, ac2 = acfactory.get_online_accounts(2)
12361236

12371237
# "1" means delete immediately, while "0" means do not delete
1238-
ac2.set_config("delete_server_after", "1")
1238+
# TODO check if this causes a test failure: ac2.set_config("delete_server_after", "1")
12391239

12401240
log.section("ac1: create chat with ac2")
12411241
chat1 = ac1.create_chat(ac2)

python/src/deltachat/testplugin.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,6 @@ def prepare_account_from_liveconfig(self, configdict) -> Account:
521521
assert "addr" in configdict and "mail_pw" in configdict, configdict
522522
configdict.setdefault("bcc_self", False)
523523
configdict.setdefault("sync_msgs", False)
524-
configdict.setdefault("delete_server_after", 0)
525524
ac.update_config(configdict)
526525
self._acsetup._account2config[ac] = configdict
527526
self._preconfigure_key(ac)

python/tests/test_0_complex_or_slow.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ def test_verified_group_vs_delete_server_after(acfactory, tmp_path, lp):
314314
ac2_offl = acfactory.new_online_configuring_account(cloned_from=ac2)
315315
for ac in [ac2, ac2_offl]:
316316
ac.set_config("bcc_self", "1")
317-
ac2.set_config("delete_server_after", "1")
317+
# TODO check if this causes a test failure: ac2.set_config("delete_server_after", "1")
318318
ac2.set_config("gossip_period", "0") # Re-gossip in every message
319319
acfactory.bring_accounts_online()
320320
dir = tmp_path / "exportdir"
@@ -337,7 +337,7 @@ def test_verified_group_vs_delete_server_after(acfactory, tmp_path, lp):
337337
ac2._evtracker.get_matching("DC_EVENT_IMAP_MESSAGE_DELETED")
338338

339339
lp.sec("ac1: sending 'hi' to the group")
340-
ac2.set_config("delete_server_after", "0")
340+
# TODO check if this causes a test failure: ac2.set_config("delete_server_after", "0")
341341
chat1.send_text("hi")
342342

343343
lp.sec("ac2_offl: going online, checking the 'hi' message")

src/config.rs

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -194,17 +194,6 @@ pub enum Config {
194194
#[strum(props(default = "0"))] // also change MediaQuality.default() on changes
195195
MediaQuality,
196196

197-
/// Timer in seconds after which the message is deleted from the
198-
/// server.
199-
///
200-
/// 0 means messages are never deleted by Delta Chat.
201-
///
202-
/// Value 1 is treated as "delete at once": messages are deleted
203-
/// immediately, without moving to DeltaChat folder.
204-
///
205-
/// Default is 1 for chatmail accounts without `BccSelf`, 0 otherwise.
206-
DeleteServerAfter,
207-
208197
/// Timer in seconds after which the message is deleted from the
209198
/// device.
210199
///
@@ -554,14 +543,6 @@ impl Context {
554543
// Default values
555544
let val = match key {
556545
Config::ConfiguredInboxFolder => Some("INBOX".to_string()),
557-
Config::DeleteServerAfter => {
558-
match !Box::pin(self.get_config_bool(Config::BccSelf)).await?
559-
&& Box::pin(self.is_chatmail()).await?
560-
{
561-
true => Some("1".to_string()),
562-
false => Some("0".to_string()),
563-
}
564-
}
565546
Config::Addr => self.get_config_opt(Config::ConfiguredAddr).await?,
566547
_ => key.get_str("default").map(|s| s.to_string()),
567548
};
@@ -642,19 +623,15 @@ impl Context {
642623
self.get_config_bool(Config::MdnsEnabled).await
643624
}
644625

645-
/// Gets configured "delete_server_after" value.
626+
/// Gets configured "delete_server_after"
646627
///
647628
/// `None` means never delete the message, `Some(0)` means delete
648-
/// at once, `Some(x)` means delete after `x` seconds.
629+
/// at once, `Some(x)` is never returned
630+
// TODO rename and refactor
649631
pub async fn get_config_delete_server_after(&self) -> Result<Option<i64>> {
650-
let val = match self
651-
.get_config_parsed::<i64>(Config::DeleteServerAfter)
652-
.await?
653-
.unwrap_or(0)
654-
{
655-
0 => None,
656-
1 => Some(0),
657-
x => Some(x),
632+
let val = match !self.get_config_bool(Config::BccSelf).await? && self.is_chatmail().await? {
633+
true => Some(0),
634+
false => None,
658635
};
659636
Ok(val)
660637
}

src/config/config_tests.rs

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -142,28 +142,6 @@ async fn test_mdns_default_behaviour() -> Result<()> {
142142
Ok(())
143143
}
144144

145-
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
146-
async fn test_delete_server_after_default() -> Result<()> {
147-
let t = &TestContext::new_alice().await;
148-
149-
// Check that the settings are displayed correctly.
150-
assert_eq!(t.get_config(Config::BccSelf).await?, Some("1".to_string()));
151-
assert_eq!(
152-
t.get_config(Config::DeleteServerAfter).await?,
153-
Some("0".to_string())
154-
);
155-
156-
// Leaving emails on the server even w/o `BccSelf` is a good default at least because other
157-
// MUAs do so even if the server doesn't save sent messages to some sentbox (like Gmail
158-
// does).
159-
t.set_config_bool(Config::BccSelf, false).await?;
160-
assert_eq!(
161-
t.get_config(Config::DeleteServerAfter).await?,
162-
Some("0".to_string())
163-
);
164-
Ok(())
165-
}
166-
167145
const SAVED_MESSAGES_DEDUPLICATED_FILE: &str = "969142cb84015bc135767bc2370934a.png";
168146

169147
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]

src/context.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -973,12 +973,7 @@ impl Context {
973973
.await?
974974
.to_string(),
975975
);
976-
res.insert(
977-
"delete_server_after",
978-
self.get_config_int(Config::DeleteServerAfter)
979-
.await?
980-
.to_string(),
981-
);
976+
982977
res.insert(
983978
"last_housekeeping",
984979
self.get_config_int(Config::LastHousekeeping)

0 commit comments

Comments
 (0)