summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmmanuel Raviart <eraviart@entrouvert.com>2004-08-27 14:41:09 +0000
committerEmmanuel Raviart <eraviart@entrouvert.com>2004-08-27 14:41:09 +0000
commit497181fc6a44388a91af7f08dbe411977e75c083 (patch)
treead6b587bf01cce9f2718270061c75ee0f020eafe
parenteaa4b813fcd0f7aa1152d98998afe5b59556142f (diff)
downloadlasso-497181fc6a44388a91af7f08dbe411977e75c083.tar.gz
lasso-497181fc6a44388a91af7f08dbe411977e75c083.tar.xz
lasso-497181fc6a44388a91af7f08dbe411977e75c083.zip
Corrected SWIG binding.
Corrected Python tests.
-rw-r--r--python/lasso.py11
-rw-r--r--python/tests/login_tests.py21
-rw-r--r--swig/Lasso.i10
3 files changed, 31 insertions, 11 deletions
diff --git a/python/lasso.py b/python/lasso.py
index cd03230a..6d1a4e73 100644
--- a/python/lasso.py
+++ b/python/lasso.py
@@ -187,13 +187,16 @@ class _ObjectMixin(object):
def _setRegisteredClass(instance):
- cls = _registeredClasses.get(instance.__class__, None)
- if cls is None and instance.__class__.__name__.endswith('Ptr'):
- cls = _registeredClasses.get(instance.__class__.__bases__[0], None)
+ try:
+ instanceClass = instance.__class__
+ except AttributeError:
+ return
+ cls = _registeredClasses.get(instanceClass, None)
+ if cls is None and instanceClass.__name__.endswith('Ptr'):
+ cls = _registeredClasses.get(instanceClass.__bases__[0], None)
if cls is not None:
object.__setattr__(instance, '__class__', cls)
-
def registerClass(cls):
assert cls.lassomodClass
_registeredClasses[cls.lassomodClass] = cls
diff --git a/python/tests/login_tests.py b/python/tests/login_tests.py
index 4ecb7b25..614ea4cc 100644
--- a/python/tests/login_tests.py
+++ b/python/tests/login_tests.py
@@ -43,7 +43,24 @@ except NameError:
class LoginTestCase(unittest.TestCase):
- pass
+ def test01(self):
+ """SP login; testing access to authentication request."""
+
+ lassoServer = lasso.Server(
+ os.path.join(dataDir, 'sp1-la/metadata.xml'),
+ None, # os.path.join(dataDir, 'sp1-la/public-key.pem') is no more used
+ os.path.join(dataDir, 'sp1-la/private-key-raw.pem'),
+ os.path.join(dataDir, 'sp1-la/certificate.pem'),
+ lasso.signatureMethodRsaSha1)
+ lassoServer.add_provider(
+ os.path.join(dataDir, 'idp1-la/metadata.xml'),
+ os.path.join(dataDir, 'idp1-la/public-key.pem'),
+ os.path.join(dataDir, 'idp1-la/certificate.pem'))
+ login = lasso.Login(lassoServer)
+ login.init_authn_request(lasso.httpMethodRedirect)
+ self.failUnlessEqual(login.request_type, lasso.messageTypeAuthnRequest)
+ login.authn_request
+ login.authn_request.set_protocolProfile(lasso.libProtocolProfileBrwsArt)
class LogoutTestCase(unittest.TestCase):
@@ -107,7 +124,7 @@ class DefederationTestCase(unittest.TestCase):
except lasso.Error, error:
pass
else:
- fail('Defederation process_notification_msg should have failed.')
+ self.fail('Defederation process_notification_msg should have failed.')
suite1 = unittest.makeSuite(LoginTestCase, 'test')
diff --git a/swig/Lasso.i b/swig/Lasso.i
index cf2ec05a..4aa33bcd 100644
--- a/swig/Lasso.i
+++ b/swig/Lasso.i
@@ -518,7 +518,7 @@ gchar* lasso_session_get_authentication_method(LassoSession *session, gchar *rem
***********************************************************************/
-%{
+%inline %{
/* Dirty hack because otherwise SWIG doesn't recognize attributes defined in extend */
/* below as read-only arguments. */
typedef LassoAuthnRequest *LassoAuthnRequestPtr;
@@ -555,28 +555,28 @@ typedef struct _LassoProfile {
/* Implementations */
%{
- LassoAuthnRequest* LassoProfile_authn_request_get(LassoProfile *profile) {
+ LassoAuthnRequestPtr LassoProfile_authn_request_get(LassoProfile *profile) {
if (profile->request_type == lassoMessageTypeAuthnRequest)
return LASSO_AUTHN_REQUEST(profile->request);
else
return NULL;
}
- LassoAuthnResponse* LassoProfile_authn_response_get(LassoProfile *profile) {
+ LassoAuthnResponsePtr LassoProfile_authn_response_get(LassoProfile *profile) {
if (profile->response_type == lassoMessageTypeAuthnResponse)
return LASSO_AUTHN_RESPONSE(profile->response);
else
return NULL;
}
- LassoRequest* LassoProfile_request_get(LassoProfile *profile) {
+ LassoRequestPtr LassoProfile_request_get(LassoProfile *profile) {
if (profile->request_type == lassoMessageTypeRequest)
return LASSO_REQUEST(profile->request);
else
return NULL;
}
- LassoResponse* LassoProfile_response_get(LassoProfile *profile) {
+ LassoResponsePtr LassoProfile_response_get(LassoProfile *profile) {
if (profile->response_type == lassoMessageTypeResponse)
return LASSO_RESPONSE(profile->response);
else