diff options
| author | Robert Bruce Park <robert.park@canonical.com> | 2016-09-19 17:17:44 (GMT) |
|---|---|---|
| committer | Robert Bruce Park <robert.park@canonical.com> | 2016-09-19 17:17:44 (GMT) |
| commit | fcfeceabf35d4846404481dd48b9325feae03028 (patch) | |
| tree | 348bf224a02157db91766fbffdc7030fe6874960 | |
| parent | 425190f8835d28c33f91d7dc9f911a5f8d8b1fe7 (diff) | |
Detect correct irc nick even when lp irc data is WRONG.
| -rw-r--r-- | bileto/lplib.py | 6 | ||||
| -rw-r--r-- | tests/test_lplib.py | 12 |
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() |
