summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Bruce Park <robert.park@canonical.com>2016-09-19 17:17:44 (GMT)
committerRobert Bruce Park <robert.park@canonical.com>2016-09-19 17:17:44 (GMT)
commitfcfeceabf35d4846404481dd48b9325feae03028 (patch)
tree348bf224a02157db91766fbffdc7030fe6874960
parent425190f8835d28c33f91d7dc9f911a5f8d8b1fe7 (diff)
Detect correct irc nick even when lp irc data is WRONG.
-rw-r--r--bileto/lplib.py6
-rw-r--r--tests/test_lplib.py12
2 files changed, 16 insertions, 2 deletions
diff --git a/bileto/lplib.py b/bileto/lplib.py
index e599e70..77e3c1e 100644
--- a/bileto/lplib.py
+++ b/bileto/lplib.py
@@ -11,6 +11,8 @@ from launchpadlib.launchpad import Launchpad
from bileto.settings import Config
+EMPTY = ''
+
class lp:
"""Trigger connections to launchpadlib only when needed."""
@@ -64,13 +66,13 @@ class lp:
"""Identify currently supported Ubuntu serieses."""
return [s.name for s in self.ubuntu.series if s.active]
- def get_irc_nick(self, user, network='irc.freenode.net'):
+ def get_irc_nick(self, user, network='freenode'):
"""Find the freenode irc nick for an LP user."""
ircs = []
with suppress(KeyError, TypeError):
ircs = lp.people[user].irc_nicknames
for irc in ircs:
- if irc.network == network:
+ if network in (irc.network or EMPTY).lower():
return irc.nickname
return user
diff --git a/tests/test_lplib.py b/tests/test_lplib.py
index 77dfb52..559f354 100644
--- a/tests/test_lplib.py
+++ b/tests/test_lplib.py
@@ -66,6 +66,18 @@ class LaunchpadTestCase(BiletoTestCase):
self.assertEqual(lp.get_irc_nick('fred'), 'freenode-nick')
@patch('bileto.lplib.lp.people', {})
+ def test_get_irc_nick_timo(self):
+ """Ensure that we handle BAD people with WRONG irc nick data."""
+ freenode = Mock()
+ freenode.network = 'Freenode'
+ freenode.nickname = 'freenode-nick'
+ quakenet = Mock()
+ quakenet.network = 'se.quakenet.org'
+ quakenet.nickname = 'quakenet-nick'
+ lp.people['timo'] = Mock(irc_nicknames=[freenode, quakenet])
+ self.assertEqual(lp.get_irc_nick('timo'), 'freenode-nick')
+
+ @patch('bileto.lplib.lp.people', {})
def test_no_freenode_nick(self):
"""Ensure that we have the lp user when there is no irc nick in lp."""
quakenet = Mock()