Daniel Brötzmann pushed to branch master at gajim / gajim


Commits:
fb0a92a9 by wurstsalat at 2024-07-08T22:24:59+02:00
fix: Fix nickname completion in group chats

Fixes #11895

- - - - -


2 changed files:

- gajim/common/storage/archive/storage.py
- test/gui/test_nick_completion.py


Changes:

=====================================
gajim/common/storage/archive/storage.py
=====================================
@@ -870,11 +870,11 @@ def get_first_message_meta_for_date(
     @timeit
     def get_recent_muc_nicks(
         self, session: Session, account: str, jid: JID
-    ) -> set[str]:
+    ) -> list[str]:
         fk_account_pk = self._get_account_pk(session, account)
         fk_remote_pk = self._get_jid_pk(session, jid)
 
-        recent = datetime.now(timezone.utc) - timedelta(days=90)
+        recent = datetime.now(timezone.utc) - timedelta(days=30)
 
         stmt = (
             select(Message.resource)
@@ -886,10 +886,11 @@ def get_recent_muc_nicks(
                 Message.resource.isnot(None),
                 Message.correction_id.is_(None),
             )
+            .order_by(sa.desc(Message.timestamp))
         )
 
         self._explain(session, stmt)
-        return set(session.scalars(stmt))
+        return list(session.scalars(stmt))
 
     @with_session
     @timeit


=====================================
test/gui/test_nick_completion.py
=====================================
@@ -10,10 +10,12 @@ class Test(unittest.TestCase):
 
     def test_generate_suggestions(self):
         participant_names = [
-            'aaaa',
-            'xaaaz',
-            'xxx',
-            'xxxxz'
+            'Hugo',
+            'Herbert',
+            'Robert',
+            'Daisy',
+            'xavier',
+            '7user',
         ]
 
         participants: list[MagicMock] = []
@@ -26,7 +28,7 @@ def test_generate_suggestions(self):
 
         app.storage.archive = MagicMock()
         app.storage.archive.get_recent_muc_nicks = MagicMock(
-            return_value=['fooo'])
+            return_value=['Daisy', 'Robert'])
 
         gen = GroupChatNickCompletion()
         contact = MagicMock()
@@ -34,13 +36,13 @@ def test_generate_suggestions(self):
 
         gen.switch_contact(contact)
 
-        r = gen._generate_suggestions(prefix='x')
-        self.assertEqual(r, ['xaaaz', 'xxx', 'xxxxz'])
+        r = gen._generate_suggestions(prefix='h')  # type: ignore
+        self.assertEqual(r, ['Herbert', 'Hugo'])
 
-        r = gen._generate_suggestions(prefix='')
-        self.assertEqual(r, ['fooo', 'aaaa', 'xaaaz', 'xxx', 'xxxxz'])
+        r = gen._generate_suggestions(prefix='')  # type: ignore
+        self.assertEqual(r, ['Daisy', 'Robert', '7user', 'Herbert', 'Hugo', 
'xavier'])
 
-        r = gen._generate_suggestions(prefix='m')
+        r = gen._generate_suggestions(prefix='m')  # type: ignore
         self.assertEqual(r, [])
 
 



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/fb0a92a94f6602de42f84e88d2206f550e46d6fb

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/fb0a92a94f6602de42f84e88d2206f550e46d6fb
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- commits@gajim.org
To unsubscribe send an email to commits-le...@gajim.org

Reply via email to