OK sthen@ if someone would like to import www/py-jwt and devel/py-test-cov.
(Re-included in the tar.gz attached to this mail). Note that py-jwt (and
py-oauthlib) require py-cryptography (plus deps) from the port that
I already sent out, which is still awaiting OKs/import.

http://marc.info/?l=openbsd-ports&m=143219761119821&w=2

Slight tweak for py-oauthlib from that file, updated version attached,
also OK sthen@ to import.

I think it would be reasonable to defer handling the remaining oauthlib
test failures until we run into problems with real programs, they are
all of the "algorithm not supported" variety and with this version
there's nothing to suggest any major problem with the port.

--- Makefile.orig       Wed May 27 12:14:56 2015
+++ Makefile    Wed May 27 12:18:01 2015
@@ -6,22 +6,12 @@ V =           0.20150523
 GH_ACCOUNT =   idan
 GH_PROJECT =   oauthlib
 GH_COMMIT =    16cd3b255b2c86ec7da412357cad899c72d8dbf7
-DISTFILES =    master${EXTRACT_SUFX}
-DISTNAME =     ${GH_PROJECT}-${V}
-PKGNAME =      py-${GH_PROJECT}-${V}
+DISTNAME =     py-${GH_PROJECT}-$V
 CATEGORIES =   security
 MAINTAINER =   Johan Huldtgren <jhuldtg...@gmail.com>
 
-HOMEPAGE =     https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/
-
-MASTER_SITES = ${HOMEPAGE}archive/
-
 # BSD
 PERMIT_PACKAGE_CDROM =  Yes
-
-EXTRACT_SUFX = .zip
-
-WRKDIST =      ${WRKDIR}/${GH_PROJECT}-master
 
 MODULES =      lang/python
 MODPY_SETUPTOOLS = Yes
--- distinfo.orig       Wed May 27 12:20:27 2015
+++ distinfo    Wed May 27 12:17:30 2015
@@ -1,2 +1,2 @@
-SHA256 (master.zip) = vrdYFF1cw9EXt9DAVH+Rtx7D8Y6kCEpJ3kSTuEd8CLI=
-SIZE (master.zip) = 226775
+SHA256 (py-oauthlib-0.20150523.tar.gz) = 
G9lXPHw+EIF5/s2aTkz+jrPWb4IuO6PcnoDbY4A/whM=
+SIZE (py-oauthlib-0.20150523.tar.gz) = 142548


On 2015/05/26 19:26, Johan Huldtgren wrote:
> On 2015-05-20 04:43, Stuart Henderson wrote:
> >
> >The distfile unpacks with no group-readable permissions.
> >Simplest fix is probably
> >
> >post-extract:
> >     chmod -R o+rX ${WRKSRC}
> 
> fixed.
> 
> >So either we need an older PyJWT, or we need oauthlib head. I wouldn't be
> >averse to using head from a github checkout, but that is what needs
> >py-cryptography.
> 
> ok, using the py-crypotography and it's depends from the other thread, I
> cobbled together a new port of py-oauthlib head together with the latest
> py-jwt. It builds and packages, and I can use py-discogs-client together
> with beets (really my only way of testing functionality). However
> 'make test' still fails, albeit with different errors than before:
> 
> ===>  Regression tests for py-oauthlib-0.20150523
> cd /usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master &&
> /usr/local/bin/python2.7 -m unittest discover
> ............................E..............................E........................EE...............E................................................................................................EE..EE.....................................
> ======================================================================
> ERROR: test_rsa_signature
> (tests.oauth1.rfc5849.endpoints.test_base.SignatureVerificationTest)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/tests/oauth1/rfc5849/endpoints/test_base.py",
> line 388, in test_rsa_signature
>     self.assertTrue(self.e._check_signature(r))
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/endpoints/base.py",
> line 190, in _check_signature
>     valid_signature = signature.verify_rsa_sha1(request, rsa_key)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/signature.py",
> line 596, in verify_rsa_sha1
>     alg = _jwt_rs1_signing_algorithm()
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/signature.py",
> line 474, in _jwt_rs1_signing_algorithm
>     _jwtrs1 = jwtalgo.RSAAlgorithm(jwtalgo.hashes.SHA1)
> AttributeError: 'module' object has no attribute 'RSAAlgorithm'
> 
> ======================================================================
> ERROR: test_rsa_method
> (tests.oauth1.rfc5849.test_client.SignatureMethodTest)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/tests/oauth1/rfc5849/test_client.py",
> line 89, in test_rsa_method
>     u, h, b = client.sign('http://example.com')
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/__init__.py",
> line 306, in sign
>     ('oauth_signature', self.get_oauth_signature(request)))
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/__init__.py",
> line 153, in get_oauth_signature
>     sig = self.SIGNATURE_METHODS[self.signature_method](base_string, self)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/signature.py",
> line 503, in sign_rsa_sha1_with_client
>     return sign_rsa_sha1(base_string, client.rsa_key)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/signature.py",
> line 496, in sign_rsa_sha1
>     alg = _jwt_rs1_signing_algorithm()
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/signature.py",
> line 474, in _jwt_rs1_signing_algorithm
>     _jwtrs1 = jwtalgo.RSAAlgorithm(jwtalgo.hashes.SHA1)
> AttributeError: 'module' object has no attribute 'RSAAlgorithm'
> 
> ======================================================================
> ERROR: test_sign_rsa_sha1
> (tests.oauth1.rfc5849.test_signatures.SignatureTests)
> Verify RSA-SHA1 signature against one created by OpenSSL.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/tests/oauth1/rfc5849/test_signatures.py",
> line 311, in test_sign_rsa_sha1
>     sign = sign_rsa_sha1(base_string, private_key)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/signature.py",
> line 496, in sign_rsa_sha1
>     alg = _jwt_rs1_signing_algorithm()
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/signature.py",
> line 474, in _jwt_rs1_signing_algorithm
>     _jwtrs1 = jwtalgo.RSAAlgorithm(jwtalgo.hashes.SHA1)
> AttributeError: 'module' object has no attribute 'RSAAlgorithm'
> 
> ======================================================================
> ERROR: test_sign_rsa_sha1_with_client
> (tests.oauth1.rfc5849.test_signatures.SignatureTests)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/tests/oauth1/rfc5849/test_signatures.py",
> line 324, in test_sign_rsa_sha1_with_client
>     sign = sign_rsa_sha1_with_client(base_string, self.client)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/signature.py",
> line 503, in sign_rsa_sha1_with_client
>     return sign_rsa_sha1(base_string, client.rsa_key)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/signature.py",
> line 496, in sign_rsa_sha1
>     alg = _jwt_rs1_signing_algorithm()
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth1/rfc5849/signature.py",
> line 474, in _jwt_rs1_signing_algorithm
>     _jwtrs1 = jwtalgo.RSAAlgorithm(jwtalgo.hashes.SHA1)
> AttributeError: 'module' object has no attribute 'RSAAlgorithm'
> 
> ======================================================================
> ERROR: test_request_body 
> (tests.oauth2.rfc6749.clients.test_service_application.ServiceApplicationClientTest)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/site-packages/mock.py", line 1201, in
> patched
>     return func(*args, **keywargs)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/tests/oauth2/rfc6749/clients/test_service_application.py",
> line 90, in test_request_body
>     body=self.body)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/clients/service_application.py",
> line 169, in prepare_request_body
>     assertion = jwt.encode(claim, key, 'RS256')
>   File "/usr/local/lib/python2.7/site-packages/jwt/api_jwt.py", line 53, in
> encode
>     json_payload, key, algorithm, headers, json_encoder
>   File "/usr/local/lib/python2.7/site-packages/jwt/api_jws.py", line 101, in
> encode
>     raise NotImplementedError('Algorithm not supported')
> NotImplementedError: Algorithm not supported
> 
> ======================================================================
> ERROR: test_authorization_grant
> (tests.oauth2.rfc6749.test_server.SignedTokenEndpointTest)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/site-packages/mock.py", line 1201, in
> patched
>     return func(*args, **keywargs)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/tests/oauth2/rfc6749/test_server.py",
> line 234, in test_authorization_grant
>     '', body=body)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/endpoints/base.py",
> line 64, in wrapper
>     return f(endpoint, uri, *args, **kwargs)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/endpoints/token.py",
> line 100, in create_token_response
>     request, self.default_token_type)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/grant_types/authorization_code.py",
> line 240, in create_token_response
>     token = token_handler.create_token(request, refresh_token=True)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/tokens.py",
> line 256, in create_token
>     'access_token': self.token_generator(request),
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/tokens.py",
> line 217, in signed_token_generator
>     return common.generate_signed_token(private_pem, request)
>   File
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/common.py",
> line 243, in generate_signed_token
>     token = jwt.encode(claims, private_pem, 'RS256')
>   File "/usr/local/lib/python2.7/site-packages/jwt/api_jwt.py", line 53, in
> encode
>     json_payload, key, algorithm, headers, json_encoder
>   File "/usr/local/lib/python2.7/site-packages/jwt/api_jws.py", line 101, in
> encode
>     raise NotImplementedError('Algorithm not supported')
> NotImplementedError: Algorithm not supported
> 
> ======================================================================
> ERROR: test_client_grant
> (tests.oauth2.rfc6749.test_server.SignedTokenEndpointTest)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/site-packages/mock.py", line 1201, in
> patched
>     return func(*args, **keywargs)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/tests/oauth2/rfc6749/test_server.py",
> line 277, in test_client_grant
>     '', body=body)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/endpoints/base.py",
> line 64, in wrapper
>     return f(endpoint, uri, *args, **kwargs)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/endpoints/token.py",
> line 100, in create_token_response
>     request, self.default_token_type)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/grant_types/client_credentials.py",
> line 80, in create_token_response
>     token = token_handler.create_token(request, refresh_token=False)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/tokens.py",
> line 256, in create_token
>     'access_token': self.token_generator(request),
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/tokens.py",
> line 217, in signed_token_generator
>     return common.generate_signed_token(private_pem, request)
>   File
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/common.py",
> line 243, in generate_signed_token
>     token = jwt.encode(claims, private_pem, 'RS256')
>   File "/usr/local/lib/python2.7/site-packages/jwt/api_jwt.py", line 53, in
> encode
>     json_payload, key, algorithm, headers, json_encoder
>   File "/usr/local/lib/python2.7/site-packages/jwt/api_jws.py", line 101, in
> encode
>     raise NotImplementedError('Algorithm not supported')
> NotImplementedError: Algorithm not supported
> 
> ======================================================================
> ERROR: test_password_grant
> (tests.oauth2.rfc6749.test_server.SignedTokenEndpointTest)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/site-packages/mock.py", line 1201, in
> patched
>     return func(*args, **keywargs)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/tests/oauth2/rfc6749/test_server.py",
> line 249, in test_password_grant
>     '', body=body)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/endpoints/base.py",
> line 64, in wrapper
>     return f(endpoint, uri, *args, **kwargs)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/endpoints/token.py",
> line 100, in create_token_response
>     request, self.default_token_type)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/grant_types/resource_owner_password_credentials.py",
> line 113, in create_token_response
>     token = token_handler.create_token(request, self.refresh_token)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/tokens.py",
> line 256, in create_token
>     'access_token': self.token_generator(request),
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/tokens.py",
> line 217, in signed_token_generator
>     return common.generate_signed_token(private_pem, request)
>   File
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/common.py",
> line 243, in generate_signed_token
>     token = jwt.encode(claims, private_pem, 'RS256')
>   File "/usr/local/lib/python2.7/site-packages/jwt/api_jwt.py", line 53, in
> encode
>     json_payload, key, algorithm, headers, json_encoder
>   File "/usr/local/lib/python2.7/site-packages/jwt/api_jws.py", line 101, in
> encode
>     raise NotImplementedError('Algorithm not supported')
> NotImplementedError: Algorithm not supported
> 
> ======================================================================
> ERROR: test_scopes_and_user_id_stored_in_access_token
> (tests.oauth2.rfc6749.test_server.SignedTokenEndpointTest)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/site-packages/mock.py", line 1201, in
> patched
>     return func(*args, **keywargs)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/tests/oauth2/rfc6749/test_server.py",
> line 264, in test_scopes_and_user_id_stored_in_access_token
>     '', body=body)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/endpoints/base.py",
> line 64, in wrapper
>     return f(endpoint, uri, *args, **kwargs)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/endpoints/token.py",
> line 100, in create_token_response
>     request, self.default_token_type)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/grant_types/resource_owner_password_credentials.py",
> line 113, in create_token_response
>     token = token_handler.create_token(request, self.refresh_token)
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/tokens.py",
> line 256, in create_token
>     'access_token': self.token_generator(request),
>   File 
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/oauth2/rfc6749/tokens.py",
> line 217, in signed_token_generator
>     return common.generate_signed_token(private_pem, request)
>   File
> "/usr/ports/pobj/py-oauthlib-0.20150523/oauthlib-master/oauthlib/common.py",
> line 243, in generate_signed_token
>     token = jwt.encode(claims, private_pem, 'RS256')
>   File "/usr/local/lib/python2.7/site-packages/jwt/api_jwt.py", line 53, in
> encode
>     json_payload, key, algorithm, headers, json_encoder
>   File "/usr/local/lib/python2.7/site-packages/jwt/api_jws.py", line 101, in
> encode
>     raise NotImplementedError('Algorithm not supported')
> NotImplementedError: Algorithm not supported
> 
> ----------------------------------------------------------------------
> Ran 241 tests in 1.545s
> 
> FAILED (errors=9)
> *** Error 1 in . (Makefile:42 'do-test')
> *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2793
> '/usr/ports/pobj/py-oauthlib-0.20150523/.test_done')
> *** Error 1 in /usr/ports/mystuff/security/py-oauthlib
> (/usr/ports/infrastructure/mk/bsd.port.mk:2486 'test')
> 
> Any hints gratefully accepted. The attached file contains
> the latest py-oauthlib, plus it's depends.
> 
> thanks,
> 
> .jh


Attachment: py-oauthlib_plus_deps.2.tgz
Description: application/tar-gz

Reply via email to