Skip to content

Commit d1ac3fa

Browse files
tarekbadrshafrittoli
authored andcommitted
add artifact obj
1 parent 7da3dbc commit d1ac3fa

File tree

5 files changed

+74
-50
lines changed

5 files changed

+74
-50
lines changed

cli/cdevents/cli/artifact.py

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
"""Module for cli artifact commands."""
22
from __future__ import annotations
33

4-
import os
54
from typing import List
6-
75
import click
86

97
from cdevents.cli.utils import add_disclaimer_text, print_function_args
108
from cdevents.cli.cdevents_command import CDeventsCommand
119

12-
from cdevents.core.events import Events
13-
from cdevents.core import event_type
10+
from cdevents.core.artifact import Artifact, ArtifactType
1411

1512
# pylint: disable=unused-argument
1613
def common_artifact_options(function):
@@ -57,10 +54,10 @@ def packaged(
5754
data: List[str] = None,
5855
):
5956
print_function_args()
60-
e = Events()
61-
new_event = e.create_artifact_event(event_type.ArtifactPackagedEventV1, id, name, version, data)
57+
artifact = Artifact(ArtifactType.ArtifactPackagedEventV1, id, name, version)
58+
artifact_event = artifact.create_event(data)
6259
cdevents_command = CDeventsCommand()
63-
cdevents_command.run(new_event)
60+
cdevents_command.run(artifact_event)
6461

6562

6663
@click.command(help=add_disclaimer_text("Artifact Published CloudEvent."))
@@ -72,8 +69,7 @@ def published(
7269
data: List[str] = None,
7370
):
7471
print_function_args()
75-
76-
e = Events()
77-
new_event = e.create_artifact_event(event_type.ArtifactPublishedEventV1, id, name, version, data)
72+
artifact = Artifact(ArtifactType.ArtifactPublishedEventV1, id, name, version)
73+
artifact_event = artifact.create_event(data)
7874
cdevents_command = CDeventsCommand()
79-
cdevents_command.run(new_event)
75+
cdevents_command.run(artifact_event)

core/cdevents/core/artifact.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
"""artifact"""
2+
3+
from enum import Enum
4+
from cdevents.core.events import Events
5+
6+
class ArtifactType(Enum):
7+
ArtifactPackagedEventV1: str = "cd.artifact.packaged.v1"
8+
ArtifactPublishedEventV1: str = "cd.artifact.published.v1"
9+
10+
11+
class Artifact(Events):
12+
"""Events."""
13+
14+
def __init__(self, artifact_type: ArtifactType, id: str, name: str, version: str):
15+
"""Initializes class.
16+
"""
17+
self._event_type = artifact_type
18+
self._id = id
19+
self._name = name
20+
self._version = version
21+
22+
def create_extensions(self):
23+
"""Create extensions.
24+
"""
25+
extensions = {
26+
"artifactid": self._id,
27+
"artifactname": self._name,
28+
"artifactversion": self._version,
29+
}
30+
return extensions
31+
32+
def create_event(self, data: dict={}):
33+
"""Create artifact event.
34+
"""
35+
extensions = self.create_extensions()
36+
event = super().create_event(event_type=self._event_type.value, extensions=extensions, data=data)
37+
return event

core/cdevents/core/event_type.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
"""Constants Event types."""
22

3-
# Artifact Events
4-
ArtifactPackagedEventV1 :str = "cd.artifact.packaged.v1"
5-
ArtifactPublishedEventV1 :str = "cd.artifact.published.v1"
3+
# pylint: TODO:
4+
5+
# # Artifact Events
6+
# ArtifactPackagedEventV1 :str = "cd.artifact.packaged.v1"
7+
# ArtifactPublishedEventV1 :str = "cd.artifact.published.v1"
68

79
# Branch Events
810
BranchCreatedEventV1 :str = "cd.repository.branch.created.v1"

core/cdevents/core/events.py

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -22,31 +22,18 @@ def create_event(self, event_type: str, extensions:dict, data = {}) -> CloudEven
2222

2323
return event
2424

25-
def create_artifact_event(self, event_type: str , id: str, name: str, version: str, data = {}) -> CloudEvent:
26-
"""Create artifact event.
27-
"""
28-
29-
extensions = {
30-
"artifactid": id,
31-
"artifactname": name,
32-
"artifactversion": version,
33-
}
34-
event = self.create_event(event_type, extensions, data)
35-
36-
return event
37-
38-
def create_branch_event(self, event_type: str , id: str, name: str, repoid: str, data = {}) -> CloudEvent:
39-
"""Create branch event.
40-
"""
25+
# def create_branch_event(self, event_type: str , id: str, name: str, repoid: str, data = {}) -> CloudEvent:
26+
# """Create branch event.
27+
# """
4128

42-
extensions = {
43-
"branchid": id,
44-
"branchname": name,
45-
"branchrepositoryid": repoid,
46-
}
47-
event = self.create_event(event_type, extensions, data)
48-
49-
return event
29+
# extensions = {
30+
# "branchid": id,
31+
# "branchname": name,
32+
# "branchrepositoryid": repoid,
33+
# }
34+
# event = self.create_event(event_type, extensions, data)
35+
36+
# return event
5037

5138

5239
def create_build_event(self, event_type: str , id: str, name: str, artifact: str, data = {}) -> CloudEvent:

core/tests/test_artifact.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
1-
from cdevents.core import event_type
21
import pytest
32

4-
from cdevents.core.events import Events
3+
from cdevents.core.artifact import Artifact, ArtifactType
54

65
@pytest.mark.unit
76
def test_artifact_packaged_v1():
8-
event = Events().create_artifact_event(event_type.ArtifactPackagedEventV1, id="_id", name="_name", version="_version", data={"artifact": "_artifact"})
9-
assert event is not None
10-
assert event._attributes["type"] == event_type.ArtifactPackagedEventV1
11-
assert event._attributes["extensions"] == {"artifactid": "_id", "artifactname": "_name", "artifactversion": "_version"}
12-
assert event.data == {"artifact": "_artifact"}
7+
artifact = Artifact(artifact_type=ArtifactType.ArtifactPackagedEventV1, id="_id", name="_name", version="_version")
8+
artifact_event = artifact.create_event(data={"key1": "value1"})
9+
assert artifact_event is not None
10+
assert artifact_event._attributes["type"] == "cd.artifact.packaged.v1"
11+
assert artifact_event._attributes["extensions"] == {"artifactid": "_id", "artifactname": "_name", "artifactversion": "_version"}
12+
assert artifact_event.data == {"key1": "value1"}
1313

1414
@pytest.mark.unit
1515
def test_artifact_published_v1():
16-
event = Events().create_artifact_event(event_type.ArtifactPublishedEventV1, id="_id", name="_name", version="_version", data={"artifact": "_artifact"})
17-
assert event is not None
18-
assert event._attributes["type"] == event_type.ArtifactPublishedEventV1
19-
assert event._attributes["extensions"] == {"artifactid": "_id", "artifactname": "_name", "artifactversion": "_version"}
20-
assert event.data == {"artifact": "_artifact"}
16+
artifact = Artifact(artifact_type=ArtifactType.ArtifactPublishedEventV1, id="_id", name="_name", version="_version")
17+
artifact_event = artifact.create_event(data={"key1": "value1"})
18+
assert artifact_event is not None
19+
assert artifact_event._attributes["type"] == "cd.artifact.published.v1"
20+
assert artifact_event._attributes["extensions"] == {"artifactid": "_id", "artifactname": "_name", "artifactversion": "_version"}
21+
assert artifact_event.data == {"key1": "value1"}
22+

0 commit comments

Comments
 (0)