Merge lp:~matiasb/canonical-identity-provider/add-openid-rp-config-command into lp:canonical-identity-provider/release

Proposed by Matias Bordese
Status: Merged
Approved by: Natalia Bidart
Approved revision: no longer in the source branch.
Merged at revision: 717
Proposed branch: lp:~matiasb/canonical-identity-provider/add-openid-rp-config-command
Merge into: lp:canonical-identity-provider/release
Diff against target: 79 lines (+70/-0)
2 files modified
identityprovider/management/commands/add_openid_rp_config.py (+25/-0)
identityprovider/tests/test_command_add_openid_rp_config.py (+45/-0)
To merge this branch: bzr merge lp:~matiasb/canonical-identity-provider/add-openid-rp-config-command
Reviewer Review Type Date Requested Status
Natalia Bidart (community) Approve
Review via email: mp+153150@code.launchpad.net

Commit message

Added helper management command to create openID RP configs.

Description of the change

Added helper management command to create openID RP configs.

To post a comment you must log in.
Revision history for this message
Natalia Bidart (nataliabidart) wrote :

Looks good!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'identityprovider/management/commands/add_openid_rp_config.py'
2--- identityprovider/management/commands/add_openid_rp_config.py 1970-01-01 00:00:00 +0000
3+++ identityprovider/management/commands/add_openid_rp_config.py 2013-03-13 16:10:27 +0000
4@@ -0,0 +1,25 @@
5+from optparse import make_option
6+
7+from django.core.management.base import BaseCommand, CommandError
8+
9+from identityprovider.models import OpenIDRPConfig
10+
11+
12+class Command(BaseCommand):
13+ args = '<trust_root>'
14+ option_list = BaseCommand.option_list + (
15+ make_option('--allow-unverified', action="store_true",
16+ default=False, dest='allow_unverified'),
17+ make_option('--allowed-sreg', action="store", dest='allowed_sreg'))
18+ help = "Create OpenID RP config entry."
19+
20+ def handle(self, *args, **kwargs):
21+ if len(args) < 1:
22+ raise CommandError("Need to specify trust_root")
23+
24+ trust_root = args[0]
25+ allow_unverified = kwargs.get('allow_unverified', False)
26+ allowed_sreg = kwargs.get('allowed_sreg', '')
27+ OpenIDRPConfig.objects.create(
28+ trust_root=trust_root, allow_unverified=allow_unverified,
29+ allowed_sreg=allowed_sreg)
30
31=== added file 'identityprovider/tests/test_command_add_openid_rp_config.py'
32--- identityprovider/tests/test_command_add_openid_rp_config.py 1970-01-01 00:00:00 +0000
33+++ identityprovider/tests/test_command_add_openid_rp_config.py 2013-03-13 16:10:27 +0000
34@@ -0,0 +1,45 @@
35+from StringIO import StringIO
36+
37+from django.core.management import call_command
38+from django.test import TestCase
39+
40+from mock import patch
41+
42+from identityprovider.models import OpenIDRPConfig
43+from identityprovider.utils import get_object_or_none
44+
45+
46+class AddOpenIDRPConfigCommandTestCase(TestCase):
47+
48+ @patch('sys.exit')
49+ def test_add_without_root(self, mock_sys_exit):
50+ stderr = StringIO()
51+ call_command('add_openid_rp_config', stderr=stderr)
52+ mock_sys_exit.assert_called_once_with(1)
53+ stderr.seek(0)
54+ output = stderr.read()
55+ self.assertIn('Error: Need to specify trust_root', output)
56+
57+ def test_add_default(self):
58+ root = 'http://localhost:8000'
59+ call_command('add_openid_rp_config', root)
60+ config = get_object_or_none(OpenIDRPConfig, trust_root=root)
61+ self.assertTrue(config)
62+ self.assertFalse(config.allow_unverified)
63+ self.assertEqual(config.allowed_sreg, '')
64+
65+ def test_add_with_allow_unverified(self):
66+ root = 'http://localhost:8000'
67+ call_command('add_openid_rp_config', root, allow_unverified=True)
68+ config = get_object_or_none(OpenIDRPConfig, trust_root=root)
69+ self.assertTrue(config)
70+ self.assertTrue(config.allow_unverified)
71+
72+ def test_add_with_sreg_value(self):
73+ root = 'http://localhost:8000'
74+ call_command(
75+ 'add_openid_rp_config', root, allowed_sreg='nickname,email')
76+ config = get_object_or_none(OpenIDRPConfig, trust_root=root)
77+ self.assertTrue(config)
78+ self.assertFalse(config.allow_unverified)
79+ self.assertEqual(config.allowed_sreg, 'nickname,email')