Skip to content

Commit de98400

Browse files
jeanbrand0ntomchop
andauthored
[ISSUE-1173] Add 'description' field to tags (#1255)
Co-authored-by: Thomas Chopitea <tomchop@gmail.com>
1 parent 6a38091 commit de98400

File tree

4 files changed

+13
-2
lines changed

4 files changed

+13
-2
lines changed

core/schemas/tag.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ class Tag(YetiModel, database_arango.ArangoYetiConnector):
3232
_type_filter: ClassVar[str | None] = None
3333

3434
name: str = Field(max_length=MAX_TAG_LENGTH)
35+
description: str | None = None
36+
3537
count: int = 0
3638
created: datetime.datetime = Field(default_factory=now)
3739
default_expiration: datetime.timedelta = DEFAULT_EXPIRATION

core/web/apiv2/tag.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class NewRequest(BaseModel):
1111
model_config = ConfigDict(extra="forbid")
1212

1313
name: str
14+
description: str | None = None
1415
default_expiration: datetime.timedelta = DEFAULT_EXPIRATION
1516
produces: list[str] = []
1617
replaces: list[str] = []
@@ -63,6 +64,7 @@ def new(request: NewRequest) -> Tag:
6364
"""Creates a new observable in the database."""
6465
tag = Tag(
6566
name=request.name,
67+
description=request.description,
6668
default_expiration=request.default_expiration,
6769
created=datetime.datetime.now(datetime.timezone.utc),
6870
produces=request.produces,
@@ -89,6 +91,7 @@ def update(tag_id: str, request: UpdateRequest) -> Tag:
8991
raise HTTPException(status_code=404, detail="Item not found")
9092

9193
tag.name = request.name
94+
tag.description = request.description
9295
tag.produces = request.produces
9396
tag.replaces = request.replaces
9497
tag.default_expiration = request.default_expiration

tests/apiv2/tags.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,17 @@ def test_create_tag(self):
4040
def test_update_tag(self):
4141
response = client.put(
4242
f"/api/v2/tags/{self.tag.id}",
43-
json={"name": "tag111", "default_expiration": "P10D"},
43+
json={
44+
"name": "tag111",
45+
"description": "krafta",
46+
"default_expiration": "P10D",
47+
},
4448
)
4549
data = response.json()
4650
self.assertEqual(response.status_code, 200, data)
4751
self.assertEqual(self.tag.id, data["id"])
4852
self.assertEqual(data["name"], "tag111")
53+
self.assertEqual(data["description"], "krafta")
4954
self.assertEqual(data["default_expiration"], "P10D") # 10 daysin ISO 8601
5055

5156
def test_tag_search(self):

tests/schemas/tag.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ def setUp(self) -> None:
1717

1818
def test_tag_create(self) -> None:
1919
"""Test that a tag can be created"""
20-
tag = Tag(name="test").save()
20+
tag = Tag(name="test", description="test-desc").save()
2121
self.assertEqual(tag.name, "test")
22+
self.assertEqual(tag.description, "test-desc")
2223
self.assertIsNotNone(tag.id)
2324

2425
def test_tags_persist(self) -> None:

0 commit comments

Comments
 (0)