Skip to content

Commit

Permalink
Fix rebase issues and update requirements
Browse files Browse the repository at this point in the history
k# Please enter the commit message for your changes. Lines starting
  • Loading branch information
giovannicimolin committed Jun 25, 2020
1 parent 96bba7f commit d020659
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 94 deletions.
20 changes: 0 additions & 20 deletions lti_consumer/lti_1p3/consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -256,26 +256,6 @@ def get_public_keyset(self):
"""
Export Public JWK
"""
public_keys = jwk.KEYS()
public_keys.append(self.jwk)
return json.loads(public_keys.dump_jwks())

def _validate_preflight_response(self, response):
"""
Validates a preflight response to be used in a launch request
Raises ValueError in case of validation failure
:param response: the preflight response to be validated
"""
try:
assert response.get("nonce")
assert response.get("state")
assert response.get("client_id") == self.client_id
assert response.get("redirect_uri") == self.launch_url
except AssertionError:
raise ValueError("Preflight reponse failed validation")

return self.key_handler.get_public_jwk()

def access_token(self, token_request_data):
Expand Down
18 changes: 1 addition & 17 deletions lti_consumer/lti_1p3/tests/test_consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ def _decode_token(self, token):
def test_preflight_validation(self, preflight_response, success):
if success:
return self.lti_consumer._validate_preflight_response(preflight_response) # pylint: disable=protected-access
with self.assertRaises(ValueError):
with self.assertRaises(exceptions.PreflightRequestValidationFailure):
return self.lti_consumer._validate_preflight_response(preflight_response) # pylint: disable=protected-access

@ddt.data(
Expand Down Expand Up @@ -373,19 +373,3 @@ def test_access_token(self):

# Check if token is valid
self._decode_token(response.get('access_token'))

@ddt.data(
({"client_id": CLIENT_ID, "redirect_uri": LAUNCH_URL, "nonce": STATE, "state": STATE}, True),
({"client_id": "2", "redirect_uri": LAUNCH_URL, "nonce": STATE, "state": STATE}, False),
({"client_id": CLIENT_ID, "redirect_uri": LAUNCH_URL[::-1], "nonce": STATE, "state": STATE}, False),
({"redirect_uri": LAUNCH_URL, "nonce": NONCE, "state": STATE}, False),
({"client_id": CLIENT_ID, "nonce": NONCE, "state": STATE}, False),
({"client_id": CLIENT_ID, "redirect_uri": LAUNCH_URL, "state": STATE}, False),
({"client_id": CLIENT_ID, "redirect_uri": LAUNCH_URL, "nonce": NONCE}, False),
)
@ddt.unpack
def test_preflight_validation(self, preflight_response, success):
if success:
return self.lti_consumer._validate_preflight_response(preflight_response) # pylint: disable=protected-access
with self.assertRaises(exceptions.PreflightRequestValidationFailure):
return self.lti_consumer._validate_preflight_response(preflight_response) # pylint: disable=protected-access
3 changes: 2 additions & 1 deletion lti_consumer/lti_consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,8 @@ class LtiConsumerXBlock(StudioEditableXBlockMixin, XBlock):
"<br />This is a string that starts with '-----BEGIN PUBLIC KEY-----' and is required "
"so that the LMS can check if the messages and launch requests received have the signature "
"from the tool."
"<br /><b>This is not required when doing LTI 1.3 Launches without LTI Advantage nor Basic Outcomes requests.</b>"
"<br /><b>This is not required when doing LTI 1.3 Launches without LTI Advantage nor "
"Basic Outcomes requests.</b>"
),
)
# Client ID and block key
Expand Down
2 changes: 1 addition & 1 deletion lti_consumer/tests/unit/test_lti_consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1042,7 +1042,7 @@ def test_launch_callback_endpoint_fails(self, mock_url, mock_url_2):
self.assertEqual(response.status_code, 400)

response_body = response.body.decode('utf-8')
self.assertIn("There was an error launching the LTI 1.3 tool.", response_body)
self.assertIn("There was an error while launching the LTI 1.3 tool.", response_body)

def test_launch_callback_endpoint_when_using_lti_1p1(self):
"""
Expand Down
11 changes: 0 additions & 11 deletions requirements.txt

This file was deleted.

2 changes: 0 additions & 2 deletions requirements/base.in
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,3 @@ mako
lazy
XBlock
xblock-utils
pyjwkest
pycryptodome
12 changes: 1 addition & 11 deletions requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,21 @@
#
appdirs==1.4.4 # via fs
bleach==3.1.5 # via -r requirements/base.in
certifi==2020.4.5.1 # via requests
chardet==3.0.4 # via requests
django==2.2.13 # via -c requirements/constraints.txt, -r requirements/base.in
fs==2.4.11 # via xblock
future==0.18.2 # via pyjwkest
idna==2.9 # via requests
lazy==1.4 # via -r requirements/base.in
lxml==4.5.1 # via -r requirements/base.in, xblock
mako==1.1.3 # via -r requirements/base.in, xblock-utils
markupsafe==1.1.1 # via mako, xblock
oauthlib==3.1.0 # via -r requirements/base.in
packaging==20.4 # via bleach
pycryptodome==3.9.7 # via -r requirements/base.in
pycryptodomex==3.9.7 # via pyjwkest
pyjwkest==1.4.2 # via -r requirements/base.in
pyparsing==2.4.7 # via packaging
python-dateutil==2.8.1 # via xblock
pytz==2020.1 # via django, fs, xblock
pyyaml==5.3.1 # via xblock
requests==2.23.0 # via pyjwkest
simplejson==3.17.0 # via xblock-utils
six==1.15.0 # via bleach, fs, packaging, python-dateutil, xblock
sqlparse==0.3.1 # via django
typing==3.7.4.1 # via fs
six==1.14.0 # via bleach, fs, packaging, pyjwkest, python-dateutil, xblock
urllib3==1.25.9 # via requests
web-fragments==0.3.2 # via xblock, xblock-utils
webencodings==0.5.1 # via bleach
webob==1.8.6 # via xblock
Expand Down
16 changes: 5 additions & 11 deletions requirements/test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@
#
# make upgrade
#
-e git+https://github.com/edx/xblock-sdk.git#egg=xblock-sdk # via -r requirements/test.in
appdirs==1.4.4 # via -r requirements/base.txt, fs
astroid==2.3.3 # via pylint, pylint-celery
bleach==3.1.5 # via -r requirements/base.txt
boto3==1.14.1 # via fs-s3fs
botocore==1.17.1 # via boto3, s3transfer
certifi==2020.4.5.2 # via requests
boto3==1.14.10 # via fs-s3fs
botocore==1.17.10 # via boto3, s3transfer
certifi==2020.6.20 # via requests
chardet==3.0.4 # via requests
click-log==0.3.2 # via edx-lint
click==7.1.2 # via click-log, edx-lint
Expand All @@ -24,8 +23,7 @@ docutils==0.15.2 # via botocore
edx-lint==1.4.1 # via -r requirements/test.in
fs-s3fs==1.1.1 # via django-pyfs
fs==2.4.11 # via -r requirements/base.txt, django-pyfs, fs-s3fs, xblock
future==0.18.2 # via -r requirements/base.txt, pyjwkest
idna==2.9 # via -r requirements/base.txt, requests
idna==2.9 # via requests
isort==4.3.21 # via pylint
jmespath==0.10.0 # via boto3, botocore
lazy-object-proxy==1.4.3 # via astroid
Expand All @@ -39,9 +37,6 @@ nose==1.3.7 # via django-nose
oauthlib==3.1.0 # via -r requirements/base.txt
packaging==20.4 # via -r requirements/base.txt, bleach
pep8==1.7.1 # via -r requirements/test.in
pycryptodome==3.9.7 # via -r requirements/base.txt
pycryptodomex==3.9.7 # via -r requirements/base.txt, pyjwkest
pyjwkest==1.4.2 # via -r requirements/base.txt
pylint-celery==0.3 # via edx-lint
pylint-django==2.0.11 # via edx-lint
pylint-plugin-utils==0.6 # via pylint-celery, pylint-django
Expand All @@ -50,13 +45,12 @@ pyparsing==2.4.7 # via -r requirements/base.txt, packaging
python-dateutil==2.8.1 # via -r requirements/base.txt, botocore, xblock
pytz==2020.1 # via -r requirements/base.txt, django, fs, xblock
pyyaml==5.3.1 # via -r requirements/base.txt, xblock
requests==2.23.0 # via -r requirements/base.txt, coveralls, pyjwkest
requests==2.24.0 # via coveralls
s3transfer==0.3.3 # via boto3
simplejson==3.17.0 # via -r requirements/base.txt, xblock-utils
six==1.15.0 # via -r requirements/base.txt, astroid, bleach, django-pyfs, edx-lint, fs, fs-s3fs, mock, packaging, python-dateutil, xblock
sqlparse==0.3.1 # via -r requirements/base.txt, django
typed-ast==1.4.1 # via astroid
typing==3.7.4.1 # via -r requirements/base.txt, fs
urllib3==1.25.9 # via botocore, requests
web-fragments==0.3.2 # via -r requirements/base.txt, xblock, xblock-utils
webencodings==0.5.1 # via -r requirements/base.txt, bleach
Expand Down
10 changes: 5 additions & 5 deletions requirements/tox.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ appdirs==1.4.4 # via virtualenv
distlib==0.3.0 # via virtualenv
filelock==3.0.12 # via tox, virtualenv
importlib-metadata==1.6.1 # via importlib-resources, pluggy, tox, virtualenv
importlib-resources==1.5.0 # via virtualenv
importlib-resources==2.0.1 # via virtualenv
packaging==20.4 # via tox
pluggy==0.13.1 # via tox
py==1.8.1 # via tox
py==1.9.0 # via tox
pyparsing==2.4.7 # via packaging
six==1.15.0 # via packaging, tox, virtualenv
toml==0.10.1 # via tox
tox==3.15.0 # via -r requirements/tox.in
virtualenv==20.0.20 # via tox
zipp==1.1.1 # via -c requirements/constraints.txt, importlib-metadata
tox==3.15.2 # via -r requirements/tox.in
virtualenv==20.0.25 # via tox
zipp==1.1.1 # via -c requirements/constraints.txt, importlib-metadata, importlib-resources
27 changes: 12 additions & 15 deletions requirements/travis.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@
#
# make upgrade
#
-e git+https://github.com/edx/xblock-sdk.git#egg=xblock-sdk # via -r requirements/test.txt
appdirs==1.4.4 # via -r requirements/test.txt, -r requirements/tox.txt, fs, virtualenv
astroid==2.3.3 # via -r requirements/test.txt, pylint, pylint-celery
bleach==3.1.5 # via -r requirements/test.txt
boto3==1.13.10 # via -r requirements/test.txt, fs-s3fs
botocore==1.16.10 # via -r requirements/test.txt, boto3, s3transfer
certifi==2020.4.5.1 # via -r requirements/test.txt, requests
boto3==1.14.10 # via -r requirements/test.txt, fs-s3fs
botocore==1.17.10 # via -r requirements/test.txt, boto3, s3transfer
certifi==2020.6.20 # via -r requirements/test.txt, requests
chardet==3.0.4 # via -r requirements/test.txt, requests
click-log==0.3.2 # via -r requirements/test.txt, edx-lint
click==7.1.2 # via -r requirements/test.txt, click-log, edx-lint
Expand All @@ -27,9 +26,9 @@ edx-lint==1.4.1 # via -r requirements/test.txt
filelock==3.0.12 # via -r requirements/tox.txt, tox, virtualenv
fs-s3fs==1.1.1 # via -r requirements/test.txt, django-pyfs
fs==2.4.11 # via -r requirements/test.txt, django-pyfs, fs-s3fs, xblock
future==0.18.2 # via -r requirements/test.txt, pyjwkest
idna==2.9 # via -r requirements/test.txt, requests
importlib-metadata==1.6.0 # via -r requirements/tox.txt, pluggy, tox, virtualenv
importlib-metadata==1.6.1 # via -r requirements/tox.txt, importlib-resources, pluggy, tox, virtualenv
importlib-resources==2.0.1 # via -r requirements/tox.txt, virtualenv
isort==4.3.21 # via -r requirements/test.txt, pylint
jmespath==0.10.0 # via -r requirements/test.txt, boto3, botocore
lazy-object-proxy==1.4.3 # via -r requirements/test.txt, astroid
Expand All @@ -44,10 +43,7 @@ oauthlib==3.1.0 # via -r requirements/test.txt
packaging==20.4 # via -r requirements/test.txt, -r requirements/tox.txt, bleach, tox
pep8==1.7.1 # via -r requirements/test.txt
pluggy==0.13.1 # via -r requirements/tox.txt, tox
py==1.8.1 # via -r requirements/tox.txt, tox
pycryptodome==3.9.7 # via -r requirements/test.txt
pycryptodomex==3.9.7 # via -r requirements/test.txt, pyjwkest
pyjwkest==1.4.2 # via -r requirements/test.txt
py==1.9.0 # via -r requirements/tox.txt, tox
pylint-celery==0.3 # via -r requirements/test.txt, edx-lint
pylint-django==2.0.11 # via -r requirements/test.txt, edx-lint
pylint-plugin-utils==0.6 # via -r requirements/test.txt, pylint-celery, pylint-django
Expand All @@ -56,23 +52,24 @@ pyparsing==2.4.7 # via -r requirements/test.txt, -r requirements/tox.tx
python-dateutil==2.8.1 # via -r requirements/test.txt, botocore, xblock
pytz==2020.1 # via -r requirements/test.txt, django, fs, xblock
pyyaml==5.3.1 # via -r requirements/test.txt, xblock
requests==2.23.0 # via -r requirements/test.txt, coveralls, pyjwkest
requests==2.24.0 # via -r requirements/test.txt, coveralls
s3transfer==0.3.3 # via -r requirements/test.txt, boto3
simplejson==3.17.0 # via -r requirements/test.txt, xblock-utils
six==1.14.0 # via -r requirements/test.txt, -r requirements/tox.txt, -r requirements/travis.in, astroid, bleach, django-pyfs, edx-lint, fs, fs-s3fs, mock, packaging, pyjwkest, python-dateutil, tox, virtualenv, xblock
six==1.15.0 # via -r requirements/test.txt, -r requirements/tox.txt, -r requirements/travis.in, astroid, bleach, django-pyfs, edx-lint, fs, fs-s3fs, mock, packaging, python-dateutil, tox, virtualenv, xblock
sqlparse==0.3.1 # via -r requirements/test.txt, django
toml==0.10.1 # via -r requirements/tox.txt, tox
tox==3.15.0 # via -r requirements/tox.txt
tox==3.15.2 # via -r requirements/tox.txt
typed-ast==1.4.1 # via -r requirements/test.txt, astroid
urllib3==1.25.9 # via -r requirements/test.txt, botocore, requests
virtualenv==20.0.20 # via -r requirements/tox.txt, tox
virtualenv==20.0.25 # via -r requirements/tox.txt, tox
web-fragments==0.3.2 # via -r requirements/test.txt, xblock, xblock-utils
webencodings==0.5.1 # via -r requirements/test.txt, bleach
webob==1.8.6 # via -r requirements/test.txt, xblock
wrapt==1.11.2 # via -r requirements/test.txt, astroid
xblock-sdk==0.2.0 # via -r requirements/test.txt
xblock-utils==2.1.1 # via -r requirements/test.txt
xblock==1.3.1 # via -r requirements/test.txt, xblock-utils
zipp==1.1.1 # via -c requirements/constraints.txt, -r requirements/tox.txt, importlib-metadata
zipp==1.1.1 # via -c requirements/constraints.txt, -r requirements/tox.txt, importlib-metadata, importlib-resources

# The following packages are considered to be unsafe in a requirements file:
# setuptools

0 comments on commit d020659

Please sign in to comment.