Skip to content

Commit f42baed

Browse files
committed
🚑 partner_telegram: fix error on empty value
1 parent 193bc76 commit f42baed

File tree

3 files changed

+59
-6
lines changed

3 files changed

+59
-6
lines changed

partner_telegram/models/res_partner.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@ def _compute_telegram(self):
2929
def _inverse_telegram(self):
3030
for record in self:
3131
value = record.telegram
32-
if value.startswith("@"):
33-
value = value[1:]
34-
elif value.startswith("+"):
35-
value = value.replace("-", "").replace(" ", "")
32+
if not value:
33+
record.telegram_username = False
34+
record.telegram_mobile = False
35+
elif value.startswith("@"):
36+
record.telegram_username = value[1:]
3637
elif value.startswith("https://t.me/"):
37-
value = value[len("https://t.me/") :]
38-
record.telegram_mobile = value
38+
record.telegram_username = value[len("https://t.me/") :]
39+
elif value.startswith("+"):
40+
record.telegram_mobile = value.replace("-", "").replace(" ", "")

partner_telegram/tests/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# License MIT (https://opensource.org/licenses/MIT).
2+
from . import test_telegram
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Copyright 2024 Ivan Yelizariev <https://twitter.com/yelizariev>
2+
# License MIT (https://opensource.org/licenses/MIT).
3+
from odoo.tests.common import TransactionCase
4+
5+
6+
class TestResPartnerTelegram(TransactionCase):
7+
def setUp(self):
8+
super(TestResPartnerTelegram, self).setUp()
9+
self.ResPartner = self.env["res.partner"]
10+
# Create a partner without telegram information
11+
self.partner = self.ResPartner.create({"name": "Test"})
12+
13+
def test_telegram_set_username(self):
14+
# Set the telegram field with a username
15+
self.partner.telegram = "@testuser"
16+
17+
# Check the computed fields
18+
self.assertEqual(self.partner.telegram_username, "testuser")
19+
self.assertEqual(self.partner.telegram_url, "https://t.me/testuser")
20+
self.assertEqual(self.partner.telegram, "testuser")
21+
22+
def test_telegram_set_mobile(self):
23+
# Set the telegram field with a mobile number
24+
self.partner.telegram = "+1234567890"
25+
26+
# Check the computed fields
27+
self.assertEqual(self.partner.telegram_mobile, "+1234567890")
28+
self.assertEqual(self.partner.telegram_url, "https://t.me/+1234567890")
29+
self.assertEqual(self.partner.telegram, "+1234567890")
30+
31+
def test_telegram_set_url(self):
32+
# Set the telegram field with a URL
33+
self.partner.telegram = "https://t.me/testuser"
34+
35+
# Check the computed fields
36+
self.assertEqual(self.partner.telegram_username, "testuser")
37+
self.assertEqual(self.partner.telegram_url, "https://t.me/testuser")
38+
self.assertEqual(self.partner.telegram, "testuser")
39+
40+
def test_telegram_clear(self):
41+
# Set the telegram field and then clear it
42+
self.partner.telegram = "@testuser"
43+
self.partner.telegram = ""
44+
45+
# Check the computed fields
46+
self.assertFalse(self.partner.telegram_username)
47+
self.assertFalse(self.partner.telegram_mobile)
48+
self.assertFalse(self.partner.telegram_url)
49+
self.assertFalse(self.partner.telegram)

0 commit comments

Comments
 (0)