Skip to content

Commit 38466ff

Browse files
committed
Improve max file path setting
1 parent 6244ebf commit 38466ff

3 files changed

Lines changed: 7 additions & 3 deletions

File tree

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
# TODO: Implement history cleanup?
22
FEATURE_FLAG_CODE_REFERENCES_RETENTION_DAYS = 30
3+
4+
# Linux maximum file path length, as per limits.h/PATH_MAX
5+
MAX_FILE_PATH_LENGTH = 4096

api/projects/code_references/serializers.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from rest_framework import serializers
22

3+
from projects.code_references.constants import MAX_FILE_PATH_LENGTH
34
from projects.code_references.models import FeatureFlagCodeReferencesScan
45
from projects.code_references.types import (
56
CodeReference,
@@ -10,7 +11,7 @@
1011

1112

1213
class _BaseCodeReferenceSerializer(serializers.Serializer[CodeReference]):
13-
file_path = serializers.CharField(max_length=260) # Windows' MAX_PATH
14+
file_path = serializers.CharField(max_length=MAX_FILE_PATH_LENGTH)
1415
line_number = serializers.IntegerField(min_value=1)
1516

1617

api/tests/unit/projects/code_references/test_unit_projects_code_references_views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ def test_CodeReferenceCreateAPIView__responds_400_when_file_path_too_long(
146146
"code_references": [
147147
{
148148
"feature_name": "feature-1",
149-
"file_path": "windows/limit/" * 100 + "file.py",
149+
"file_path": "would/you/even/" * 1000 + "file.py",
150150
"line_number": 10,
151151
},
152152
],
@@ -158,7 +158,7 @@ def test_CodeReferenceCreateAPIView__responds_400_when_file_path_too_long(
158158
assert response.status_code == 400
159159
assert response.data == {
160160
"code_references": [
161-
{"file_path": ["Ensure this field has no more than 260 characters."]}
161+
{"file_path": ["Ensure this field has no more than 4096 characters."]}
162162
],
163163
}
164164
assert not FeatureFlagCodeReferencesScan.objects.exists()

0 commit comments

Comments
 (0)