+
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion component_catalog/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,10 @@ def test_component_admin_form_clean(self):
del data["name"]
response = self.client.post(url, data)
self.assertContains(response, '<p class="errornote">Please correct the error below.</p>')
self.assertContains(response, '<ul class="errorlist"><li>This field is required.</li>')
self.assertContains(
response,
'<ul class="errorlist" id="id_name_error"><li>This field is required.</li></ul>',
)

@override_settings(REFERENCE_DATASPACE="Dataspace")
def test_component_admin_form_clean_validate_against_reference_data(self):
Expand Down
5 changes: 2 additions & 3 deletions dejacode/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -658,9 +658,8 @@ def get_fake_redis_connection(config, use_strict_redis):
AXES_FAILURE_LIMIT = env.int("AXES_FAILURE_LIMIT", default=5)
# If set, specifies a template to render when a user is locked out.
AXES_LOCKOUT_TEMPLATE = env.str("AXES_LOCKOUT_TEMPLATE", default="axes_lockout.html")
# If True, only lock based on username, and never lock based on IP
# if attempts to exceed the limit.
AXES_ONLY_USER_FAILURES = True
# Lock based on username
AXES_LOCKOUT_PARAMETERS = ["username"]
# If True, a successful login will reset the number of failed logins.
AXES_RESET_ON_SUCCESS = True
# If True, disable writing login and logout access logs to database,
Expand Down
8 changes: 4 additions & 4 deletions dje/tests/test_access.py
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ def test_user_locked_out_on_unsuccessful_login_attempts(self):
self.assertEqual(1, attempt.failures_since_start)

response = self.client.post(login_url, data=credentials)
self.assertContains(response, "Account locked", status_code=403)
self.assertContains(response, "Account locked", status_code=429)
attempt = AccessAttempt.objects.get(username=credentials["username"])
self.assertEqual(2, attempt.failures_since_start)

Expand All @@ -434,7 +434,7 @@ def test_user_locked_out_on_unsuccessful_login_attempts(self):
self.assertEqual(1, attempt.failures_since_start)

response = self.client.post(login_url, data=credentials)
self.assertContains(response, "Account locked", status_code=403)
self.assertContains(response, "Account locked", status_code=429)
attempt = AccessAttempt.objects.get(username=credentials["username"])
self.assertEqual(2, attempt.failures_since_start)

Expand All @@ -457,7 +457,7 @@ def test_notification_on_unsuccessful_login_attempts(self, method_mock):
}
self.client.post(login_url, data=credentials)
response = self.client.post(login_url, data=credentials)
self.assertEqual(403, response.status_code)
self.assertEqual(429, response.status_code)

subject = "[DejaCode] Login attempt on locked account requires review!"
self.assertEqual(1, len(mail.outbox))
Expand Down Expand Up @@ -487,7 +487,7 @@ def test_notification_on_unsuccessful_login_attempts(self, method_mock):
response = self.client.post(login_url, data=credentials)
self.assertEqual(200, response.status_code)
response = self.client.post(login_url, data=credentials)
self.assertEqual(403, response.status_code)
self.assertEqual(429, response.status_code)
self.assertIn(
'"real_user" is an existing DejaCode user in Dataspace "nexB"', mail.outbox[2].body
)
Expand Down
4 changes: 0 additions & 4 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,6 @@ services:
condition: service_started
clamav:
condition: service_started
chown:
condition: service_completed_successfully

worker:
build: .
Expand All @@ -65,7 +63,6 @@ services:
- redis
- db
- web
- chown

scheduler:
build: .
Expand All @@ -81,7 +78,6 @@ services:
- redis
- db
- web
- chown

nginx:
image: nginx:alpine
Expand Down
85 changes: 42 additions & 43 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -47,24 +47,24 @@ include_package_data = true
zip_safe = false
install_requires =
# Base configuration tools
setuptools==75.8.0
setuptools==80.9.0
wheel==0.45.1
pip==25.0.1
pip==25.1.1
# Django
Django==5.1.9
Django==5.2.1
asgiref==3.8.1
typing_extensions==4.12.2
typing_extensions==4.13.2
sqlparse==0.5.3
# Django apps
django-crispy-forms==2.4
crispy_bootstrap5==2025.4
django-grappelli==4.0.1
django-grappelli==4.0.2
django-filter==24.3
django-registration==3.4
confusable_homoglyphs==3.3.1
django-guardian==2.4.0
django-guardian==3.0.0
django-environ==0.12.0
django-debug-toolbar==5.1.0
django-debug-toolbar==5.2.0
# CAPTCHA
altcha==0.1.9
django_altcha==0.1.3
Expand All @@ -77,21 +77,19 @@ install_requires =
itypes==1.2.0
Jinja2==3.1.6
uritemplate==4.1.1
# Access log
django-axes==5.35.0
django-appconf==1.1.0
django-ipware==7.0.1
# Track failed login attempts
django-axes==8.0.0
# Multi-factor authentication
django-otp==1.5.4
qrcode==8.0
django-otp==1.6.0
qrcode==8.2
pypng==0.20220715.0
# Database
psycopg==3.2.6
psycopg==3.2.9
# Cache
redis==6.2.0
# redis dependencies:
packaging==24.2
pyparsing==3.2.1
packaging==25.0
pyparsing==3.2.3
async-timeout==5.0.1
Deprecated==1.2.18
wrapt==1.17.2
Expand All @@ -100,30 +98,30 @@ install_requires =
# Testing
model_bakery==1.10.1
# Task queue
rq==2.3.2
django-rq==3.0.0
fakeredis==2.27.0
rq==2.3.3
django-rq==3.0.1
fakeredis==2.29.0
# Scheduler
rq-scheduler==0.14.0
crontab==1.0.4
freezegun==1.5.1
freezegun==1.5.2
# Libs
certifi==2025.1.31
urllib3==2.3.0
certifi==2025.4.26
urllib3==2.4.0
python-dateutil==2.9.0.post0
python-mimeparse==2.0.0
PyJWT==2.10.1
natsort==8.4.0
six==1.17.0
requests==2.32.3
idna==3.10
charset-normalizer==3.4.1
charset-normalizer==3.4.2
PyYAML==6.0.2
Cython==3.0.12
zipp==3.21.0
XlsxWriter==3.2.2
cython==3.1.1
zipp==3.22.0
XlsxWriter==3.2.3
# Markdown
Markdown==3.7
markdown==3.8
bleach==6.2.0
bleach_allowlist==1.0.3
webencodings==0.5.1
Expand All @@ -135,13 +133,13 @@ install_requires =
# LDAP Auth
python-ldap==3.4.4
pyasn1==0.6.1
pyasn1-modules==0.4.1
django-auth-ldap==5.1.0
pyasn1-modules==0.4.2
django-auth-ldap==5.2.0
# LDAP Testing
mockldap==0.3.0.post1
funcparserlib==0.3.6
# license expressions
boolean.py==4.0
boolean.py==5.0
license-expression==30.4.1
# Webhooks
django-rest-hooks==1.6.1
Expand All @@ -151,7 +149,7 @@ install_requires =
swapper==1.4.0
# AboutCode Toolkit
aboutcode_toolkit==11.1.1
click==8.1.8
click==8.2.1
saneyaml==0.6.1
openpyxl==3.1.5
et-xmlfile==2.0.0
Expand All @@ -160,14 +158,14 @@ install_requires =
# Gunicorn
gunicorn==23.0.0
# SPDX validation
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jsonschema==4.24.0
jsonschema-specifications==2025.4.1
referencing==0.36.2
rpds-py==0.22.3
attrs==25.1.0
rpds-py==0.25.1
attrs==25.3.0
pyrsistent==0.20.0
# CycloneDX
cyclonedx-python-lib==9.1.0
cyclonedx-python-lib==10.0.2
sortedcontainers==2.4.0
toml==0.10.2
py-serializable==2.0.0
Expand All @@ -176,26 +174,27 @@ install_requires =
gitdb==4.0.12
smmap==5.0.2
# CSAF
pydantic==2.10.6
pydantic-core==2.27.2
maturin==1.8.1
setuptools-rust==1.10.2
pydantic==2.11.5
pydantic-core==2.33.2
typing-inspection==0.4.1
maturin==1.8.6
setuptools-rust==1.11.1
annotated-types==0.7.0
semantic-version==2.10.0

[options.extras_require]
dev =
# Linter and Validation
ruff==0.9.6
ruff==0.11.12
# Documentation
doc8==1.1.2
stevedore==5.4.0
stevedore==5.4.1
Pygments==2.19.1
docutils==0.21.2
restructuredtext-lint==1.4.0
pbr==6.1.1
# Parallel testing
tblib==3.0.0
tblib==3.1.0

[options.entry_points]
console_scripts =
Expand Down
Binary file not shown.
Binary file removed thirdparty/dist/Cython-3.0.12-py2.py3-none-any.whl
Binary file not shown.
15 changes: 0 additions & 15 deletions thirdparty/dist/Cython-3.0.12-py2.py3-none-any.whl.ABOUT

This file was deleted.

14 changes: 0 additions & 14 deletions thirdparty/dist/Markdown-3.7-py3-none-any.whl.ABOUT

This file was deleted.

Binary file removed thirdparty/dist/XlsxWriter-3.2.2-py3-none-any.whl
Binary file not shown.
17 changes: 0 additions & 17 deletions thirdparty/dist/XlsxWriter-3.2.2-py3-none-any.whl.ABOUT

This file was deleted.

Binary file not shown.
17 changes: 17 additions & 0 deletions thirdparty/dist/XlsxWriter-3.2.3-py3-none-any.whl.ABOUT
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
about_resource: XlsxWriter-3.2.3-py3-none-any.whl
name: xlsxwriter
version: 3.2.3
download_url: https://files.pythonhosted.org/packages/37/b1/a252d499f2760b314fcf264d2b36fcc4343a1ecdb25492b210cb0db70a68/XlsxWriter-3.2.3-py3-none-any.whl
package_url: pkg:pypi/xlsxwriter@3.2.3
license_expression: bsd-new AND bsd-simplified
copyright: Copyright xlsxwriter project contributors
attribute: yes
checksum_md5: 2416f460806540f3ec1e1ecee99f693e
checksum_sha1: 2e151e81854299dd9599601d64eee3c03efcd5fe
licenses:
- key: bsd-simplified
name: BSD-2-Clause
file: bsd-simplified.LICENSE
- key: bsd-new
name: BSD-3-Clause
file: bsd-new.LICENSE
Binary file removed thirdparty/dist/attrs-25.1.0-py3-none-any.whl
Binary file not shown.
17 changes: 0 additions & 17 deletions thirdparty/dist/attrs-25.1.0-py3-none-any.whl.ABOUT

This file was deleted.

Binary file added thirdparty/dist/attrs-25.3.0-py3-none-any.whl
Binary file not shown.
17 changes: 17 additions & 0 deletions thirdparty/dist/attrs-25.3.0-py3-none-any.whl.ABOUT
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
about_resource: attrs-25.3.0-py3-none-any.whl
name: attrs
version: 25.3.0
download_url: https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl
package_url: pkg:pypi/attrs@25.3.0
license_expression: mit AND unknown-license-reference
copyright: Copyright attrs project contributors
attribute: yes
checksum_md5: a14ebc7e5f8ba18887b09460ada729e6
checksum_sha1: b5f8661d64a8a4b81c262f668436641ecbbd56e2
licenses:
- key: mit
name: MIT License
file: mit.LICENSE
- key: unknown-license-reference
name: Unknown License file reference
file: unknown-license-reference.LICENSE
Binary file removed thirdparty/dist/boolean.py-4.0-py3-none-any.whl
Binary file not shown.
16 changes: 0 additions & 16 deletions thirdparty/dist/boolean.py-4.0-py3-none-any.whl.ABOUT

This file was deleted.

Binary file not shown.
Loading
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载