From 25ce7db75a0bd9cc54df7b67c197cf7dea0a13fe Mon Sep 17 00:00:00 2001 From: Erik Sternerson Date: Tue, 4 Oct 2022 16:05:47 +0200 Subject: [PATCH 1/3] Fix formatting --- .gitignore | 2 +- cli/cdevents/cli/__main__.py | 6 +- cli/cdevents/cli/artifact.py | 7 +- cli/cdevents/cli/branch.py | 7 +- cli/cdevents/cli/build.py | 9 +- cli/cdevents/cli/cdevents_command.py | 14 +- cli/cdevents/cli/configuration_handler.py | 11 +- cli/cdevents/cli/configuration_reader.py | 1 - cli/cdevents/cli/env.py | 13 +- cli/cdevents/cli/pipelinerun.py | 26 ++- cli/cdevents/cli/repository.py | 12 +- cli/cdevents/cli/service.py | 15 +- cli/cdevents/cli/taskrun.py | 9 +- cli/tests/test_artifact.py | 12 +- cli/tests/test_branch.py | 11 +- cli/tests/test_build.py | 15 +- cli/tests/test_configuration_handler.py | 1 - cli/tests/test_configuration_reader.py | 1 - cli/tests/test_constants.py | 7 +- cli/tests/test_env.py | 15 +- cli/tests/test_main.py | 2 +- cli/tests/test_pipelinerun.py | 16 +- cli/tests/test_repository.py | 16 +- cli/tests/test_service.py | 27 +-- cli/tests/test_taskrun.py | 13 +- cli/tests/test_utils.py | 2 +- cli/tests/test_version.py | 1 - core/cdevents/core/__init__.py | 1 - core/cdevents/core/artifact.py | 59 ++++-- core/cdevents/core/branch.py | 50 +++-- core/cdevents/core/build.py | 67 +++++-- core/cdevents/core/env.py | 60 +++--- core/cdevents/core/event.py | 10 +- core/cdevents/core/event_sender.py | 11 +- core/cdevents/core/event_type.py | 39 ++-- .../core/extensions/artifact_extension.py | 20 +- .../core/extensions/service_extension.py | 20 +- core/cdevents/core/http_handlar.py | 181 ++++++++++-------- core/cdevents/core/pipelinerun.py | 113 ++++++++--- core/cdevents/core/repository.py | 58 +++--- core/cdevents/core/service.py | 97 +++++++--- core/cdevents/core/taskrun.py | 64 +++++-- core/tests/test_artifact.py | 45 ++++- core/tests/test_branch.py | 42 +++- core/tests/test_build.py | 56 +++++- core/tests/test_environment.py | 44 ++++- core/tests/test_events.py | 2 +- core/tests/test_pipelinerun.py | 81 +++++++- core/tests/test_repository.py | 57 ++++-- core/tests/test_service.py | 65 +++++-- core/tests/test_taskrun.py | 42 +++- core/tests/test_version.py | 1 - receiver/cdevents/api/app.py | 5 +- 53 files changed, 1071 insertions(+), 490 deletions(-) diff --git a/.gitignore b/.gitignore index 58710ec..46147bb 100644 --- a/.gitignore +++ b/.gitignore @@ -129,4 +129,4 @@ dmypy.json .pyre/ # VS Code -.vscode \ No newline at end of file +.vscode diff --git a/cli/cdevents/cli/__main__.py b/cli/cdevents/cli/__main__.py index 686348c..d0dd612 100644 --- a/cli/cdevents/cli/__main__.py +++ b/cli/cdevents/cli/__main__.py @@ -5,13 +5,11 @@ import click import yaml - -from cdevents.cli.constants import LOGGING_CONFIGURATION_FILE - from cdevents.cli.artifact import packaged, published from cdevents.cli.branch import created as branch_created from cdevents.cli.branch import deleted as branch_deleted from cdevents.cli.build import finished, queued, started +from cdevents.cli.constants import LOGGING_CONFIGURATION_FILE from cdevents.cli.env import created as env_created from cdevents.cli.env import deleted as env_deleted from cdevents.cli.env import modified as env_modified @@ -84,10 +82,12 @@ def pipelinerun(): pipelinerun.add_command(pipe_finished) pipelinerun.add_command(pipe_queued) + @click.group(help=add_disclaimer_text("""Commands Repository related CloudEvent.""")) def repository(): """Click group for command 'repository'.""" + repository.add_command(repo_created) repository.add_command(repo_modified) repository.add_command(repo_deleted) diff --git a/cli/cdevents/cli/artifact.py b/cli/cdevents/cli/artifact.py index 7febb6f..6914192 100644 --- a/cli/cdevents/cli/artifact.py +++ b/cli/cdevents/cli/artifact.py @@ -1,13 +1,14 @@ """Module for cli artifact commands.""" from __future__ import annotations + from typing import List -import click -from cdevents.cli.utils import add_disclaimer_text, print_function_args +import click from cdevents.cli.cdevents_command import CDeventsCommand - +from cdevents.cli.utils import add_disclaimer_text, print_function_args from cdevents.core.artifact import ArtifactPackagedEvent, ArtifactPublishedEvent + # pylint: disable=unused-argument def common_artifact_options(function): """Decorator for common cli options for artifact.""" diff --git a/cli/cdevents/cli/branch.py b/cli/cdevents/cli/branch.py index 22cc5db..bee6958 100644 --- a/cli/cdevents/cli/branch.py +++ b/cli/cdevents/cli/branch.py @@ -1,13 +1,14 @@ """Module for cli branch commands.""" from __future__ import annotations + from typing import List -import click -from cdevents.cli.utils import add_disclaimer_text, print_function_args +import click from cdevents.cli.cdevents_command import CDeventsCommand - +from cdevents.cli.utils import add_disclaimer_text, print_function_args from cdevents.core.branch import BranchCreatedEvent, BranchDeletedEvent + # pylint: disable=unused-argument def common_branch_options(function): """Decorator for common cli options for branch.""" diff --git a/cli/cdevents/cli/build.py b/cli/cdevents/cli/build.py index f850e4b..be7d449 100644 --- a/cli/cdevents/cli/build.py +++ b/cli/cdevents/cli/build.py @@ -1,12 +1,13 @@ """Module for cli build commands.""" from __future__ import annotations + from typing import List -import click -from cdevents.cli.utils import add_disclaimer_text, print_function_args +import click from cdevents.cli.cdevents_command import CDeventsCommand +from cdevents.cli.utils import add_disclaimer_text, print_function_args +from cdevents.core.build import BuildFinishedEvent, BuildQueuedEvent, BuildStartedEvent -from cdevents.core.build import BuildStartedEvent, BuildQueuedEvent, BuildFinishedEvent # pylint: disable=unused-argument def common_build_options(function): @@ -58,6 +59,7 @@ def started( cdevents_command = CDeventsCommand() cdevents_command.run(build_event) + @click.command(help=add_disclaimer_text("Build Finished CloudEvent.")) @common_build_options def finished( @@ -71,6 +73,7 @@ def finished( cdevents_command = CDeventsCommand() cdevents_command.run(build_event) + @click.command(help=add_disclaimer_text("PipelineRun Queued CloudEvent.")) @common_build_options def queued( diff --git a/cli/cdevents/cli/cdevents_command.py b/cli/cdevents/cli/cdevents_command.py index 633226d..dfaa353 100644 --- a/cli/cdevents/cli/cdevents_command.py +++ b/cli/cdevents/cli/cdevents_command.py @@ -2,12 +2,12 @@ import logging from abc import ABC -from cloudevents.http import CloudEvent - +from cdevents.cli.configuration_handler import ( + ConfigurationHandler, + new_default_configuration_handler, +) from cdevents.core.event_sender import EventSender - -from cdevents.cli.configuration_handler import ConfigurationHandler -from cdevents.cli.configuration_handler import new_default_configuration_handler +from cloudevents.http import CloudEvent class CDeventsCommand(ABC): @@ -25,12 +25,10 @@ def __init__(self, config_handler: ConfigurationHandler = None): self._config_handler = new_default_configuration_handler() def run(self, event: CloudEvent): - """run command. - """ + """run command.""" e = EventSender(cde_link=self.config_handler.client.host) e.send(event) - @property def config_handler(self) -> ConfigurationHandler: """Property for configuration handler.""" diff --git a/cli/cdevents/cli/configuration_handler.py b/cli/cdevents/cli/configuration_handler.py index 2ab089b..d608e1d 100644 --- a/cli/cdevents/cli/configuration_handler.py +++ b/cli/cdevents/cli/configuration_handler.py @@ -16,6 +16,7 @@ def get_default_configuration_file() -> str: """Returns the default configuration file path.""" return DEFAULT_CONFIGURATION_FILE + def new_default_configuration_handler() -> ConfigurationHandler: """Returnes a configuration handler with the default configuration file""" config_handler: ConfigurationHandler = ConfigurationHandler.create_new( @@ -25,13 +26,10 @@ def new_default_configuration_handler() -> ConfigurationHandler: return config_handler -def new_configuration_handler_with_override( - client_host, source_name -) -> ConfigurationHandler: +def new_configuration_handler_with_override(client_host, source_name) -> ConfigurationHandler: """Returnes a configuration handler where args override configuration file.""" args_as_config = ConfigurationHandler.create_override_config( - client_host=client_host, - source_name=source_name + client_host=client_host, source_name=source_name ) config_handler: ConfigurationHandler = ConfigurationHandler.create_new( @@ -45,7 +43,7 @@ class ConfigurationHandler: """Class for providing configuration.""" def __init__(self, configuration: dict): - """Initializes the configuration. + """Initializes the configuration. Args: configuration (dict): The configuration. @@ -117,6 +115,7 @@ def create_new( class _ClientConfig: host: str + @dataclass class _SourceConfig: name: str diff --git a/cli/cdevents/cli/configuration_reader.py b/cli/cdevents/cli/configuration_reader.py index e8f0c63..1ca252c 100644 --- a/cli/cdevents/cli/configuration_reader.py +++ b/cli/cdevents/cli/configuration_reader.py @@ -7,7 +7,6 @@ from typing import Union import yaml - from cdevents.cli.utils import DictUtils diff --git a/cli/cdevents/cli/env.py b/cli/cdevents/cli/env.py index 1d63481..6fdb871 100644 --- a/cli/cdevents/cli/env.py +++ b/cli/cdevents/cli/env.py @@ -1,12 +1,17 @@ """Module for cli environment commands.""" from __future__ import annotations + from typing import List -import click -from cdevents.cli.utils import add_disclaimer_text, print_function_args +import click from cdevents.cli.cdevents_command import CDeventsCommand +from cdevents.cli.utils import add_disclaimer_text, print_function_args +from cdevents.core.env import ( + EnvEventCreatedEvent, + EnvEventDeletedEvent, + EnvEventModifiedEvent, +) -from cdevents.core.env import EnvEventCreatedEvent, EnvEventModifiedEvent, EnvEventDeletedEvent # pylint: disable=unused-argument def common_env_options(function): @@ -57,6 +62,7 @@ def created( cdevents_command = CDeventsCommand() cdevents_command.run(env_event) + @click.command(help=add_disclaimer_text("Environment Deleted CloudEvent.")) @common_env_options def deleted( @@ -70,6 +76,7 @@ def deleted( cdevents_command = CDeventsCommand() cdevents_command.run(env_event) + @click.command(help=add_disclaimer_text("Environment Modified CloudEvent.")) @common_env_options def modified( diff --git a/cli/cdevents/cli/pipelinerun.py b/cli/cdevents/cli/pipelinerun.py index dd732aa..87fc470 100644 --- a/cli/cdevents/cli/pipelinerun.py +++ b/cli/cdevents/cli/pipelinerun.py @@ -1,12 +1,17 @@ """Module for cli pipelinerun commands.""" from __future__ import annotations + from typing import List -import click -from cdevents.cli.utils import add_disclaimer_text, print_function_args +import click from cdevents.cli.cdevents_command import CDeventsCommand +from cdevents.cli.utils import add_disclaimer_text, print_function_args +from cdevents.core.pipelinerun import ( + PipelinerunFinishedEvent, + PipelinerunQueuedEvent, + PipelinerunStartedEvent, +) -from cdevents.core.pipelinerun import PipelinerunStartedEvent, PipelinerunFinishedEvent, PipelinerunQueuedEvent # pylint: disable=unused-argument def common_pipelinerun_options(function): @@ -69,10 +74,13 @@ def started( data: List[str] = None, ): print_function_args() - pipelinerun_event = PipelinerunStartedEvent(id=id, name=name, status=status, url=url, errors=errors, data=data) + pipelinerun_event = PipelinerunStartedEvent( + id=id, name=name, status=status, url=url, errors=errors, data=data + ) cdevents_command = CDeventsCommand() cdevents_command.run(pipelinerun_event) + @click.command(help=add_disclaimer_text("PipelineRun Finished CloudEvent.")) @common_pipelinerun_options def finished( @@ -84,7 +92,9 @@ def finished( data: List[str] = None, ): print_function_args() - pipelinerun_event = PipelinerunFinishedEvent(id=id, name=name, status=status, url=url, errors=errors, data=data) + pipelinerun_event = PipelinerunFinishedEvent( + id=id, name=name, status=status, url=url, errors=errors, data=data + ) cdevents_command = CDeventsCommand() cdevents_command.run(pipelinerun_event) @@ -100,8 +110,8 @@ def queued( data: List[str] = None, ): print_function_args() - pipelinerun_event = PipelinerunQueuedEvent(id=id, name=name, status=status, url=url, errors=errors, data=data) + pipelinerun_event = PipelinerunQueuedEvent( + id=id, name=name, status=status, url=url, errors=errors, data=data + ) cdevents_command = CDeventsCommand() cdevents_command.run(pipelinerun_event) - - diff --git a/cli/cdevents/cli/repository.py b/cli/cdevents/cli/repository.py index 96404d4..90e7dec 100644 --- a/cli/cdevents/cli/repository.py +++ b/cli/cdevents/cli/repository.py @@ -1,12 +1,17 @@ """Module for cli repository commands.""" from __future__ import annotations + from typing import List -import click -from cdevents.cli.utils import add_disclaimer_text, print_function_args +import click from cdevents.cli.cdevents_command import CDeventsCommand +from cdevents.cli.utils import add_disclaimer_text, print_function_args +from cdevents.core.repository import ( + RepositoryCreatedEvent, + RepositoryDeletedEvent, + RepositoryModifiedEvent, +) -from cdevents.core.repository import RepositoryCreatedEvent, RepositoryModifiedEvent, RepositoryDeletedEvent # pylint: disable=unused-argument def common_repository_options(function): @@ -84,4 +89,3 @@ def deleted( repository_event = RepositoryDeletedEvent(id=id, name=name, url=url, data=data) cdevents_command = CDeventsCommand() cdevents_command.run(repository_event) - diff --git a/cli/cdevents/cli/service.py b/cli/cdevents/cli/service.py index 6085200..73c8fa2 100644 --- a/cli/cdevents/cli/service.py +++ b/cli/cdevents/cli/service.py @@ -1,12 +1,18 @@ """Module for cli service commands.""" from __future__ import annotations + from typing import List -import click -from cdevents.cli.utils import add_disclaimer_text, print_function_args +import click from cdevents.cli.cdevents_command import CDeventsCommand +from cdevents.cli.utils import add_disclaimer_text, print_function_args +from cdevents.core.service import ( + ServiceDeployedEvent, + ServiceRemovedEvent, + ServiceRolledbackEvent, + ServiceUpgradedEvent, +) -from cdevents.core.service import ServiceDeployedEvent, ServiceUpgradedEvent, ServiceRolledbackEvent, ServiceRemovedEvent # pylint: disable=unused-argument def common_service_options(function): @@ -57,6 +63,7 @@ def deployed( cdevents_command = CDeventsCommand() cdevents_command.run(service_event) + @click.command(help=add_disclaimer_text("Service Upgraded CloudEvent.")) @common_service_options def upgraded( @@ -70,6 +77,7 @@ def upgraded( cdevents_command = CDeventsCommand() cdevents_command.run(service_event) + @click.command(help=add_disclaimer_text("Service Rolledback CloudEvent.")) @common_service_options def rolledback( @@ -83,6 +91,7 @@ def rolledback( cdevents_command = CDeventsCommand() cdevents_command.run(service_event) + @click.command(help=add_disclaimer_text("Service Removed CloudEvent.")) @common_service_options def removed( diff --git a/cli/cdevents/cli/taskrun.py b/cli/cdevents/cli/taskrun.py index 50757c0..3971e90 100644 --- a/cli/cdevents/cli/taskrun.py +++ b/cli/cdevents/cli/taskrun.py @@ -1,12 +1,13 @@ """Module for cli taskrun commands.""" from __future__ import annotations + from typing import List -import click -from cdevents.cli.utils import add_disclaimer_text, print_function_args +import click from cdevents.cli.cdevents_command import CDeventsCommand +from cdevents.cli.utils import add_disclaimer_text, print_function_args +from cdevents.core.taskrun import TaskRunFinishedEvent, TaskRunStartedEvent -from cdevents.core.taskrun import TaskRunStartedEvent, TaskRunFinishedEvent # pylint: disable=unused-argument def common_taskrun_options(function): @@ -57,6 +58,7 @@ def started( cdevents_command = CDeventsCommand() cdevents_command.run(taskrun_event) + @click.command(help=add_disclaimer_text("TaskRun Finished CloudEvent.")) @common_taskrun_options def finished( @@ -69,4 +71,3 @@ def finished( taskrun_event = TaskRunFinishedEvent(id=id, name=name, pipelineid=pipelineid, data=data) cdevents_command = CDeventsCommand() cdevents_command.run(taskrun_event) - diff --git a/cli/tests/test_artifact.py b/cli/tests/test_artifact.py index 4ed109e..b20b220 100644 --- a/cli/tests/test_artifact.py +++ b/cli/tests/test_artifact.py @@ -1,13 +1,14 @@ """Unit tests for artifact.""" -import pytest from unittest.mock import patch -from click.testing import CliRunner +import pytest from cdevents.cli.artifact import packaged, published from cdevents.cli.cdevents_command import CDeventsCommand +from click.testing import CliRunner # pylint: disable=missing-function-docstring, protected-access, missing-class-docstring + @pytest.fixture def runner() -> CliRunner: return CliRunner() @@ -18,6 +19,7 @@ def runner() -> CliRunner: VERSION_ARG = "version" DATA_ARG = "data" + @pytest.mark.unit def test_packaged(runner: CliRunner): """Test packaging of an artifact.""" @@ -27,7 +29,7 @@ def test_packaged(runner: CliRunner): expected_version = "MyArtifact" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( packaged, [ @@ -48,7 +50,6 @@ def test_packaged(runner: CliRunner): assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout - @pytest.mark.unit def test_published(runner: CliRunner): """Test published of an artifact.""" @@ -58,7 +59,7 @@ def test_published(runner: CliRunner): expected_version = "MyArtifact" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( published, [ @@ -77,4 +78,3 @@ def test_published(runner: CliRunner): assert f"{NAME_ARG}={expected_name}" in result.stdout assert f"{VERSION_ARG}={expected_version}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout - diff --git a/cli/tests/test_branch.py b/cli/tests/test_branch.py index c2f8cfd..2a5be69 100644 --- a/cli/tests/test_branch.py +++ b/cli/tests/test_branch.py @@ -1,13 +1,14 @@ """Unit tests for branch.""" -import pytest from unittest.mock import patch -from click.testing import CliRunner +import pytest from cdevents.cli.branch import created, deleted from cdevents.cli.cdevents_command import CDeventsCommand +from click.testing import CliRunner # pylint: disable=missing-function-docstring, protected-access, missing-class-docstring + @pytest.fixture def runner() -> CliRunner: return CliRunner() @@ -18,6 +19,7 @@ def runner() -> CliRunner: REPOID_ARG = "repoid" DATA_ARG = "data" + @pytest.mark.unit def test_created(runner: CliRunner): """Test created of a branch.""" @@ -27,7 +29,7 @@ def test_created(runner: CliRunner): expected_repoid = "repo1" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( created, [ @@ -47,6 +49,7 @@ def test_created(runner: CliRunner): assert f"{REPOID_ARG}={expected_repoid}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout + @pytest.mark.unit def test_deleted(runner: CliRunner): """Test deleted of a branch.""" @@ -56,7 +59,7 @@ def test_deleted(runner: CliRunner): expected_repoid = "repo1" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( deleted, [ diff --git a/cli/tests/test_build.py b/cli/tests/test_build.py index 9c6380d..7f0e0d6 100644 --- a/cli/tests/test_build.py +++ b/cli/tests/test_build.py @@ -1,10 +1,11 @@ """Unit tests for build.""" -import pytest from unittest.mock import patch -from click.testing import CliRunner -from cdevents.cli.build import started, finished, queued +import pytest +from cdevents.cli.build import finished, queued, started from cdevents.cli.cdevents_command import CDeventsCommand +from click.testing import CliRunner + # pylint: disable=missing-function-docstring, protected-access, missing-class-docstring @pytest.fixture @@ -17,6 +18,7 @@ def runner() -> CliRunner: ARTIFACT_ARG = "artifact" DATA_ARG = "data" + @pytest.mark.unit def test_started(runner: CliRunner): """Test started of a build.""" @@ -26,7 +28,7 @@ def test_started(runner: CliRunner): expected_artifact = "artifact1" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( started, [ @@ -56,7 +58,7 @@ def test_finished(runner: CliRunner): expected_artifact = "artifact1" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( finished, [ @@ -86,7 +88,7 @@ def test_queued(runner: CliRunner): expected_artifact = "artifact1" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( queued, [ @@ -105,4 +107,3 @@ def test_queued(runner: CliRunner): assert f"{NAME_ARG}={expected_name}" in result.stdout assert f"{ARTIFACT_ARG}={expected_artifact}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout - diff --git a/cli/tests/test_configuration_handler.py b/cli/tests/test_configuration_handler.py index 8d36bc5..c69bdc0 100644 --- a/cli/tests/test_configuration_handler.py +++ b/cli/tests/test_configuration_handler.py @@ -3,7 +3,6 @@ from pathlib import Path import pytest - from cdevents.cli.configuration_handler import ConfigurationHandler # pylint: disable=missing-function-docstring, protected-access, missing-class-docstring diff --git a/cli/tests/test_configuration_reader.py b/cli/tests/test_configuration_reader.py index c0fce6f..47ed346 100644 --- a/cli/tests/test_configuration_reader.py +++ b/cli/tests/test_configuration_reader.py @@ -6,7 +6,6 @@ import pytest import yaml - from cdevents.cli.configuration_reader import ConfigurationReader # pylint: disable=missing-function-docstring, protected-access, missing-class-docstring diff --git a/cli/tests/test_constants.py b/cli/tests/test_constants.py index 085e21f..96fe01c 100644 --- a/cli/tests/test_constants.py +++ b/cli/tests/test_constants.py @@ -2,11 +2,14 @@ from pathlib import Path import pytest - -from cdevents.cli.constants import DEFAULT_CONFIGURATION_FILE, LOGGING_CONFIGURATION_FILE +from cdevents.cli.constants import ( + DEFAULT_CONFIGURATION_FILE, + LOGGING_CONFIGURATION_FILE, +) # pylint: disable=missing-function-docstring, missing-class-docstring + @pytest.mark.unit def test_default_config_exist(): assert Path(DEFAULT_CONFIGURATION_FILE).exists() diff --git a/cli/tests/test_env.py b/cli/tests/test_env.py index ca293f8..19fc03b 100644 --- a/cli/tests/test_env.py +++ b/cli/tests/test_env.py @@ -1,10 +1,11 @@ """Unit tests for env.""" -import pytest from unittest.mock import patch -from click.testing import CliRunner -from cdevents.cli.env import created, deleted, modified +import pytest from cdevents.cli.cdevents_command import CDeventsCommand +from cdevents.cli.env import created, deleted, modified +from click.testing import CliRunner + # pylint: disable=missing-function-docstring, protected-access, missing-class-docstring @pytest.fixture @@ -17,6 +18,7 @@ def runner() -> CliRunner: REPO_ARG = "repo" DATA_ARG = "data" + @pytest.mark.unit def test_started(runner: CliRunner): """Test started of an env.""" @@ -26,7 +28,7 @@ def test_started(runner: CliRunner): expected_repo = "my-repo" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( created, [ @@ -56,7 +58,7 @@ def test_started(runner: CliRunner): expected_repo = "my-repo" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( deleted, [ @@ -86,7 +88,7 @@ def test_started(runner: CliRunner): expected_repo = "my-repo" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( modified, [ @@ -105,4 +107,3 @@ def test_started(runner: CliRunner): assert f"{NAME_ARG}={expected_name}" in result.stdout assert f"{REPO_ARG}={expected_repo}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout - diff --git a/cli/tests/test_main.py b/cli/tests/test_main.py index 8fdb00e..a596a9c 100644 --- a/cli/tests/test_main.py +++ b/cli/tests/test_main.py @@ -1,7 +1,7 @@ import pytest +from cdevents.cli.__main__ import cli from click.testing import CliRunner -from cdevents.cli.__main__ import cli @pytest.fixture def runner() -> CliRunner: diff --git a/cli/tests/test_pipelinerun.py b/cli/tests/test_pipelinerun.py index b90ac8f..f093b7a 100644 --- a/cli/tests/test_pipelinerun.py +++ b/cli/tests/test_pipelinerun.py @@ -1,10 +1,11 @@ """Unit tests for pipelinerun.""" -import pytest from unittest.mock import patch -from click.testing import CliRunner -from cdevents.cli.pipelinerun import started, finished, queued +import pytest from cdevents.cli.cdevents_command import CDeventsCommand +from cdevents.cli.pipelinerun import finished, queued, started +from click.testing import CliRunner + # pylint: disable=missing-function-docstring, protected-access, missing-class-docstring @pytest.fixture @@ -19,6 +20,7 @@ def runner() -> CliRunner: ERRORS_ARG = "errors" DATA_ARG = "data" + @pytest.mark.unit def test_started(runner: CliRunner): """Test started of an env.""" @@ -30,7 +32,7 @@ def test_started(runner: CliRunner): expected_errors = "my-errors" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( started, [ @@ -68,7 +70,7 @@ def test_finished(runner: CliRunner): expected_errors = "my-errors" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( finished, [ @@ -94,6 +96,7 @@ def test_finished(runner: CliRunner): assert f"{ERRORS_ARG}={expected_errors}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout + @pytest.mark.unit def test_queued(runner: CliRunner): """Test queued of an env.""" @@ -105,7 +108,7 @@ def test_queued(runner: CliRunner): expected_errors = "my-errors" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( queued, [ @@ -130,4 +133,3 @@ def test_queued(runner: CliRunner): assert f"{URL_ARG}={expected_url}" in result.stdout assert f"{ERRORS_ARG}={expected_errors}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout - diff --git a/cli/tests/test_repository.py b/cli/tests/test_repository.py index bd13089..7a0974a 100644 --- a/cli/tests/test_repository.py +++ b/cli/tests/test_repository.py @@ -1,10 +1,11 @@ """Unit tests for repository.""" -import pytest from unittest.mock import patch -from click.testing import CliRunner -from cdevents.cli.repository import created, deleted, modified +import pytest from cdevents.cli.cdevents_command import CDeventsCommand +from cdevents.cli.repository import created, deleted, modified +from click.testing import CliRunner + # pylint: disable=missing-function-docstring, protected-access, missing-class-docstring @pytest.fixture @@ -17,6 +18,7 @@ def runner() -> CliRunner: URL_ARG = "url" DATA_ARG = "data" + @pytest.mark.unit def test_created(runner: CliRunner): """Test created of an repository.""" @@ -26,7 +28,7 @@ def test_created(runner: CliRunner): expected_url = "https://my-url.com" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( created, [ @@ -46,6 +48,7 @@ def test_created(runner: CliRunner): assert f"{URL_ARG}={expected_url}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout + @pytest.mark.unit def test_modified(runner: CliRunner): """Test modified of an repository.""" @@ -55,7 +58,7 @@ def test_modified(runner: CliRunner): expected_url = "https://my-url.com" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( modified, [ @@ -75,6 +78,7 @@ def test_modified(runner: CliRunner): assert f"{URL_ARG}={expected_url}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout + @pytest.mark.unit def test_deleted(runner: CliRunner): """Test deleted of an repository.""" @@ -84,7 +88,7 @@ def test_deleted(runner: CliRunner): expected_url = "https://my-url.com" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( deleted, [ diff --git a/cli/tests/test_service.py b/cli/tests/test_service.py index cb9bca0..a28966a 100644 --- a/cli/tests/test_service.py +++ b/cli/tests/test_service.py @@ -1,10 +1,11 @@ """Unit tests for service.""" -import pytest from unittest.mock import patch -from click.testing import CliRunner -from cdevents.cli.service import deployed, upgraded, removed, rolledback +import pytest from cdevents.cli.cdevents_command import CDeventsCommand +from cdevents.cli.service import deployed, removed, rolledback, upgraded +from click.testing import CliRunner + # pylint: disable=missing-function-docstring, protected-access, missing-class-docstring @pytest.fixture @@ -17,16 +18,17 @@ def runner() -> CliRunner: VERSION_ARG = "version" DATA_ARG = "data" + @pytest.mark.unit def test_deployed(runner: CliRunner): """Test deployed of an service.""" expected_id = "task1" expected_name = "My Task Run" - expected_version = "1.0.0" + expected_version = "1.0.0" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( deployed, [ @@ -46,16 +48,17 @@ def test_deployed(runner: CliRunner): assert f"{VERSION_ARG}={expected_version}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout + @pytest.mark.unit def test_upgraded(runner: CliRunner): """Test upgraded of an service.""" expected_id = "task1" expected_name = "My Task Run" - expected_version = "1.0.0" + expected_version = "1.0.0" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( upgraded, [ @@ -75,16 +78,17 @@ def test_upgraded(runner: CliRunner): assert f"{VERSION_ARG}={expected_version}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout + @pytest.mark.unit def test_removed(runner: CliRunner): """Test removed of an service.""" expected_id = "task1" expected_name = "My Task Run" - expected_version = "1.0.0" + expected_version = "1.0.0" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( removed, [ @@ -104,16 +108,17 @@ def test_removed(runner: CliRunner): assert f"{VERSION_ARG}={expected_version}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout + @pytest.mark.unit def test_rolledback(runner: CliRunner): """Test rolledback of an service.""" expected_id = "task1" expected_name = "My Task Run" - expected_version = "1.0.0" + expected_version = "1.0.0" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( rolledback, [ diff --git a/cli/tests/test_taskrun.py b/cli/tests/test_taskrun.py index ba134d2..c3725bb 100644 --- a/cli/tests/test_taskrun.py +++ b/cli/tests/test_taskrun.py @@ -1,10 +1,11 @@ """Unit tests for taskrun.""" -import pytest from unittest.mock import patch -from click.testing import CliRunner -from cdevents.cli.taskrun import started, finished +import pytest from cdevents.cli.cdevents_command import CDeventsCommand +from cdevents.cli.taskrun import finished, started +from click.testing import CliRunner + # pylint: disable=missing-function-docstring, protected-access, missing-class-docstring @pytest.fixture @@ -17,6 +18,7 @@ def runner() -> CliRunner: PIPLINEID_ARG = "pipelineid" DATA_ARG = "data" + @pytest.mark.unit def test_started(runner: CliRunner): """Test started of an taskrun.""" @@ -26,7 +28,7 @@ def test_started(runner: CliRunner): expected_pipelineid = "pipeline1" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( started, [ @@ -46,6 +48,7 @@ def test_started(runner: CliRunner): assert f"{PIPLINEID_ARG}={expected_pipelineid}" in result.stdout assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout + @pytest.mark.unit def test_finished(runner: CliRunner): """Test finished of an taskrun.""" @@ -55,7 +58,7 @@ def test_finished(runner: CliRunner): expected_pipelineid = "pipeline1" expected_data = ["key1", "value1"] - with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): + with patch.object(CDeventsCommand, "run", spec=CDeventsCommand): result = runner.invoke( finished, [ diff --git a/cli/tests/test_utils.py b/cli/tests/test_utils.py index a65d0b0..8f2bdc0 100644 --- a/cli/tests/test_utils.py +++ b/cli/tests/test_utils.py @@ -3,9 +3,9 @@ from unittest import mock import pytest - from cdevents.cli.utils import DictUtils, time_stamp + # pylint: disable=missing-function-docstring, protected-access, missing-class-docstring @pytest.mark.unit def test_merge_dicts_1(): diff --git a/cli/tests/test_version.py b/cli/tests/test_version.py index 5bd0a1e..11b11fe 100644 --- a/cli/tests/test_version.py +++ b/cli/tests/test_version.py @@ -1,7 +1,6 @@ import re import pytest - from cdevents.cli import __version__ # From https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string diff --git a/core/cdevents/core/__init__.py b/core/cdevents/core/__init__.py index b6c803e..8bc3d2a 100644 --- a/core/cdevents/core/__init__.py +++ b/core/cdevents/core/__init__.py @@ -1,4 +1,3 @@ """CDEvents CLI provides command-line interaction with Cd-Event client functionality.""" __version__ = "0.0.1" - diff --git a/core/cdevents/core/artifact.py b/core/cdevents/core/artifact.py index 554b1cb..2806a9d 100644 --- a/core/cdevents/core/artifact.py +++ b/core/cdevents/core/artifact.py @@ -3,21 +3,33 @@ from cdevents.core.event import Event from cdevents.core.event_type import EventType + class ArtifactEvent(Event): """Artifact Event.""" - def __init__(self, artifact_type: EventType, id: str=None, name: str=None, version: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, + artifact_type: EventType, + id: str = None, + name: str = None, + version: str = None, + attrs=None, + data: dict = {}, + ): + """Initializes class.""" self._event_type = artifact_type self._id = id self._name = name self._version = version - super().__init__(event_type=self._event_type.value, extensions=self.create_extensions(), attrs=attrs, data=data) + super().__init__( + event_type=self._event_type.value, + extensions=self.create_extensions(), + attrs=attrs, + data=data, + ) def create_extensions(self) -> dict: - """Create extensions. - """ + """Create extensions.""" extensions = { "artifactid": self._id, "artifactname": self._name, @@ -25,21 +37,36 @@ def create_extensions(self) -> dict: } return extensions + class ArtifactPackagedEvent(ArtifactEvent): - - def __init__(self, id: str=None, name: str=None, version: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.ArtifactPackagedEventV1 - super().__init__(artifact_type=self._event_type, id=id, name=name, version=version, attrs=attrs, data=data) + super().__init__( + artifact_type=self._event_type, + id=id, + name=name, + version=version, + attrs=attrs, + data=data, + ) class ArtifactPublishedEvent(ArtifactEvent): - - def __init__(self, id: str=None, name: str=None, version: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.ArtifactPublishedEventV1 - super().__init__(artifact_type=self._event_type, id=id, name=name, version=version, attrs=attrs, data=data) + super().__init__( + artifact_type=self._event_type, + id=id, + name=name, + version=version, + attrs=attrs, + data=data, + ) diff --git a/core/cdevents/core/branch.py b/core/cdevents/core/branch.py index f8d3b41..21a1c15 100644 --- a/core/cdevents/core/branch.py +++ b/core/cdevents/core/branch.py @@ -3,21 +3,33 @@ from cdevents.core.event import Event from cdevents.core.event_type import EventType + class BranchEvent(Event): """Branch Event.""" - def __init__(self, branch_type: EventType, id: str=None, name: str=None, repoid: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, + branch_type: EventType, + id: str = None, + name: str = None, + repoid: str = None, + attrs=None, + data: dict = {}, + ): + """Initializes class.""" self._event_type = branch_type self._id = id self._name = name self._repoid = repoid - super().__init__(event_type=self._event_type.value, extensions=self.create_extensions(), attrs=attrs, data=data) + super().__init__( + event_type=self._event_type.value, + extensions=self.create_extensions(), + attrs=attrs, + data=data, + ) def create_extensions(self) -> dict: - """Create extensions. - """ + """Create extensions.""" extensions = { "branchid": self._id, "branchname": self._name, @@ -25,20 +37,26 @@ def create_extensions(self) -> dict: } return extensions + class BranchCreatedEvent(BranchEvent): - - def __init__(self, id: str=None, name: str=None, repoid: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, repoid: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.BranchCreatedEventV1 - super().__init__(branch_type=self._event_type, id=id, name=name, repoid=repoid, attrs=attrs, data=data) + super().__init__( + branch_type=self._event_type, id=id, name=name, repoid=repoid, attrs=attrs, data=data + ) + class BranchDeletedEvent(BranchEvent): - - def __init__(self, id: str=None, name: str=None, repoid: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, repoid: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.BranchDeletedEventV1 - super().__init__(branch_type=self._event_type, id=id, name=name, repoid=repoid, attrs=attrs, data=data) + super().__init__( + branch_type=self._event_type, id=id, name=name, repoid=repoid, attrs=attrs, data=data + ) diff --git a/core/cdevents/core/build.py b/core/cdevents/core/build.py index 0746c33..062e4dd 100644 --- a/core/cdevents/core/build.py +++ b/core/cdevents/core/build.py @@ -1,23 +1,35 @@ """build""" -from cdevents.core.event import Event +from cdevents.core.event import Event from cdevents.core.event_type import EventType + class BuildEvent(Event): """Build Event.""" - def __init__(self, build_type: EventType, id: str=None, name: str=None, artifact: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, + build_type: EventType, + id: str = None, + name: str = None, + artifact: str = None, + attrs=None, + data: dict = {}, + ): + """Initializes class.""" self._event_type = build_type self._id = id self._name = name self._artifact = artifact - super().__init__(event_type=self._event_type.value, extensions=self.create_extensions(), attrs=attrs, data=data) + super().__init__( + event_type=self._event_type.value, + extensions=self.create_extensions(), + attrs=attrs, + data=data, + ) def create_extensions(self) -> dict: - """Create extensions. - """ + """Create extensions.""" extensions = { "buildid": self._id, "buildname": self._name, @@ -25,29 +37,44 @@ def create_extensions(self) -> dict: } return extensions + class BuildStartedEvent(BuildEvent): """Build Started Event.""" - def __init__(self, id: str=None, name: str=None, artifact: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + + def __init__( + self, id: str = None, name: str = None, artifact: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.BuildStartedEventV1 - super().__init__(build_type=self._event_type, id=id, name=name, artifact=artifact, attrs=attrs, data=data) - + super().__init__( + build_type=self._event_type, id=id, name=name, artifact=artifact, attrs=attrs, data=data + ) + + class BuildQueuedEvent(BuildEvent): """Build Queued Event.""" - def __init__(self, id: str=None, name: str=None, artifact: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + + def __init__( + self, id: str = None, name: str = None, artifact: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.BuildQueuedEventV1 - super().__init__(build_type=self._event_type, id=id, name=name, artifact=artifact, attrs=attrs, data=data) + super().__init__( + build_type=self._event_type, id=id, name=name, artifact=artifact, attrs=attrs, data=data + ) + class BuildFinishedEvent(BuildEvent): """Build Finished Event.""" - def __init__(self, id: str=None, name: str=None, artifact: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + + def __init__( + self, id: str = None, name: str = None, artifact: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.BuildFinishedEventV1 - super().__init__(build_type=self._event_type, id=id, name=name, artifact=artifact, attrs=attrs, data=data) + super().__init__( + build_type=self._event_type, id=id, name=name, artifact=artifact, attrs=attrs, data=data + ) diff --git a/core/cdevents/core/env.py b/core/cdevents/core/env.py index d013dd4..7c70db2 100644 --- a/core/cdevents/core/env.py +++ b/core/cdevents/core/env.py @@ -3,21 +3,27 @@ from cdevents.core.event import Event from cdevents.core.event_type import EventType + class EnvEvent(Event): """Env Event.""" - def __init__(self, env_type: EventType, id: str, name: str, repo: str, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, env_type: EventType, id: str, name: str, repo: str, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type = env_type self._id = id self._name = name self._repo = repo - super().__init__(event_type=self._event_type.value, extensions=self.create_extensions(), attrs=attrs, data=data) - + super().__init__( + event_type=self._event_type.value, + extensions=self.create_extensions(), + attrs=attrs, + data=data, + ) + def create_extensions(self) -> dict: - """Create extensions. - """ + """Create extensions.""" extensions = { "envId": self._id, "envname": self._name, @@ -25,30 +31,38 @@ def create_extensions(self) -> dict: } return extensions + class EnvEventCreatedEvent(EnvEvent): - - def __init__(self, id: str=None, name: str=None, repo: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, repo: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.EnvironmentCreatedEventV1 - super().__init__(env_type=self._event_type, id=id, name=name, repo=repo, attrs=attrs, data=data) + super().__init__( + env_type=self._event_type, id=id, name=name, repo=repo, attrs=attrs, data=data + ) + class EnvEventModifiedEvent(EnvEvent): - - def __init__(self, id: str=None, name: str=None, repo: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, repo: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.EnvironmentModifiedEventV1 - super().__init__(env_type=self._event_type, id=id, name=name, repo=repo, attrs=attrs, data=data) + super().__init__( + env_type=self._event_type, id=id, name=name, repo=repo, attrs=attrs, data=data + ) + class EnvEventDeletedEvent(EnvEvent): - - def __init__(self, id: str=None, name: str=None, repo: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, repo: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.EnvironmentDeletedEventV1 - super().__init__(env_type=self._event_type, id=id, name=name, repo=repo, attrs=attrs, data=data) - + super().__init__( + env_type=self._event_type, id=id, name=name, repo=repo, attrs=attrs, data=data + ) diff --git a/core/cdevents/core/event.py b/core/cdevents/core/event.py index 4217e43..90c84f1 100644 --- a/core/cdevents/core/event.py +++ b/core/cdevents/core/event.py @@ -1,14 +1,15 @@ """Core events.""" from abc import abstractmethod + from cloudevents.http import CloudEvent + class Event(CloudEvent): """Event.""" - def __init__(self, event_type: str, extensions: dict, attrs=None, data = {}): - """Initializes class. - """ + def __init__(self, event_type: str, extensions: dict, attrs=None, data={}): + """Initializes class.""" if attrs: super().__init__(attributes=attrs, data=data) else: @@ -25,7 +26,6 @@ def __init__(self, event_type: str, extensions: dict, attrs=None, data = {}): @abstractmethod def create_extensions(self) -> dict: - """Create extensions. - """ + """Create extensions.""" extensions = {} return extensions diff --git a/core/cdevents/core/event_sender.py b/core/cdevents/core/event_sender.py index 6ac55f6..3a17e84 100644 --- a/core/cdevents/core/event_sender.py +++ b/core/cdevents/core/event_sender.py @@ -1,23 +1,20 @@ """Core events sender.""" import requests - from cloudevents.http import CloudEvent, to_structured -class EventSender(): + +class EventSender: """Events Sender.""" def __init__(self, cde_link: str = None): - """Initializes class. - """ + """Initializes class.""" self._cde_link = cde_link if cde_link is None: self._cde_link = "http://localhost:8080" - def send(self, event: CloudEvent): - """send events. - """ + """send events.""" headers, body = to_structured(event) # send and print event diff --git a/core/cdevents/core/event_type.py b/core/cdevents/core/event_type.py index 6b43dd1..bd4aa5a 100644 --- a/core/cdevents/core/event_type.py +++ b/core/cdevents/core/event_type.py @@ -2,7 +2,7 @@ from enum import Enum -# pylint: TODO: +# pylint: TODO: # # Change Events # ChangeCreatedEventV1 :str = "cd.repository.change.created.v1" @@ -21,6 +21,7 @@ # TestSuiteQueuedEventV1 :str = "cd.test.suite.queued.v1" # TestSuiteFinishedEventV1 :str = "cd.test.suite.finished.v1" + class EventType(Enum): """Constants Event types.""" @@ -33,31 +34,31 @@ class EventType(Enum): BranchDeletedEventV1: str = "cd.repository.branch.deleted.v1" # Build Events - BuildStartedEventV1 :str = "cd.build.started.v1" - BuildQueuedEventV1 :str = "cd.build.queued.v1" - BuildFinishedEventV1 :str = "cd.build.finished.v1" + BuildStartedEventV1: str = "cd.build.started.v1" + BuildQueuedEventV1: str = "cd.build.queued.v1" + BuildFinishedEventV1: str = "cd.build.finished.v1" # Environment Events - EnvironmentCreatedEventV1 :str = "cd.environment.created.v1" - EnvironmentModifiedEventV1 :str = "cd.environment.modified.v1" - EnvironmentDeletedEventV1 :str = "cd.environment.deleted.v1" + EnvironmentCreatedEventV1: str = "cd.environment.created.v1" + EnvironmentModifiedEventV1: str = "cd.environment.modified.v1" + EnvironmentDeletedEventV1: str = "cd.environment.deleted.v1" # PipelineRun Events - PipelineRunStartedEventV1 :str = "cd.pipelinerun.started.v1" - PipelineRunFinishedEventV1 :str = "cd.pipelinerun.finished.v1" - PipelineRunQueuedEventV1 :str = "cd.pipelinerun.queued.v1" + PipelineRunStartedEventV1: str = "cd.pipelinerun.started.v1" + PipelineRunFinishedEventV1: str = "cd.pipelinerun.finished.v1" + PipelineRunQueuedEventV1: str = "cd.pipelinerun.queued.v1" # Repository Events - RepositoryCreatedEventV1 :str = "cd.repository.created.v1" - RepositoryModifiedEventV1 :str = "cd.repository.modified.v1" - RepositoryDeletedEventV1 :str = "cd.repository.deleted.v1" + RepositoryCreatedEventV1: str = "cd.repository.created.v1" + RepositoryModifiedEventV1: str = "cd.repository.modified.v1" + RepositoryDeletedEventV1: str = "cd.repository.deleted.v1" # Service Events - ServiceDeployedEventV1 :str = "cd.service.deployed.v1" - ServiceUpgradedEventV1 :str = "cd.service.upgraded.v1" - ServiceRolledbackEventV1 :str = "cd.service.rolledback.v1" - ServiceRemovedEventV1 :str = "cd.service.removed.v1" + ServiceDeployedEventV1: str = "cd.service.deployed.v1" + ServiceUpgradedEventV1: str = "cd.service.upgraded.v1" + ServiceRolledbackEventV1: str = "cd.service.rolledback.v1" + ServiceRemovedEventV1: str = "cd.service.removed.v1" # TaskRun Events - TaskRunStartedEventV1 :str = "cd.taskrun.started.v1" - TaskRunFinishedEventV1 :str = "cd.taskrun.finished.v1" + TaskRunStartedEventV1: str = "cd.taskrun.started.v1" + TaskRunFinishedEventV1: str = "cd.taskrun.finished.v1" diff --git a/core/cdevents/core/extensions/artifact_extension.py b/core/cdevents/core/extensions/artifact_extension.py index 80a0426..42777a9 100644 --- a/core/cdevents/core/extensions/artifact_extension.py +++ b/core/cdevents/core/extensions/artifact_extension.py @@ -2,13 +2,14 @@ from cloudevents.http import CloudEvent -ArtifactIdExtension = "artifactid" -ArtifactNameExtension = "artifactname" +ArtifactIdExtension = "artifactid" +ArtifactNameExtension = "artifactname" ArtifactVersionExtension = "artifactversion" -class ArtifactExtension(): +class ArtifactExtension: """Artifact Extension.""" + def __init__(self) -> None: pass @@ -19,10 +20,15 @@ def read_transformer(): def write_transformer(event: CloudEvent, extensions: dict) -> CloudEvent: """Write transformer.""" if event._attributes["extensions"].get(ArtifactIdExtension): - event._attributes["extensions"].set(ArtifactIdExtension, extensions.get(ArtifactIdExtension)) + event._attributes["extensions"].set( + ArtifactIdExtension, extensions.get(ArtifactIdExtension) + ) if event._attributes["extensions"].get(ArtifactNameExtension): - event._attributes["extensions"].set(ArtifactNameExtension, extensions.get(ArtifactNameExtension)) + event._attributes["extensions"].set( + ArtifactNameExtension, extensions.get(ArtifactNameExtension) + ) if event._attributes["extensions"].get(ArtifactVersionExtension): - event._attributes["extensions"].set(ArtifactVersionExtension, extensions.get(ArtifactVersionExtension)) + event._attributes["extensions"].set( + ArtifactVersionExtension, extensions.get(ArtifactVersionExtension) + ) return event - diff --git a/core/cdevents/core/extensions/service_extension.py b/core/cdevents/core/extensions/service_extension.py index 23474db..c75758f 100644 --- a/core/cdevents/core/extensions/service_extension.py +++ b/core/cdevents/core/extensions/service_extension.py @@ -2,13 +2,14 @@ from cloudevents.http import CloudEvent -ServiceEnvIdExtension = "serviceenvid" -ServiceNameExtension = "servicename" +ServiceEnvIdExtension = "serviceenvid" +ServiceNameExtension = "servicename" ServiceVersionExtension = "serviceversion" -class ServiceExtension(): +class ServiceExtension: """Service Extension.""" + def __init__(self) -> None: pass @@ -19,10 +20,15 @@ def read_transformer(): def write_transformer(event: CloudEvent, extensions: dict) -> CloudEvent: """Write transformer.""" if event._attributes["extensions"].get(ServiceEnvIdExtension): - event._attributes["extensions"].set(ServiceEnvIdExtension, extensions.get(ServiceEnvIdExtension)) + event._attributes["extensions"].set( + ServiceEnvIdExtension, extensions.get(ServiceEnvIdExtension) + ) if event._attributes["extensions"].get(ServiceNameExtension): - event._attributes["extensions"].set(ServiceNameExtension, extensions.get(ServiceNameExtension)) + event._attributes["extensions"].set( + ServiceNameExtension, extensions.get(ServiceNameExtension) + ) if event._attributes["extensions"].get(ServiceVersionExtension): - event._attributes["extensions"].set(ServiceVersionExtension, extensions.get(ServiceVersionExtension)) + event._attributes["extensions"].set( + ServiceVersionExtension, extensions.get(ServiceVersionExtension) + ) return event - diff --git a/core/cdevents/core/http_handlar.py b/core/cdevents/core/http_handlar.py index 3e9351c..7c3389d 100644 --- a/core/cdevents/core/http_handlar.py +++ b/core/cdevents/core/http_handlar.py @@ -1,8 +1,35 @@ -import typing import json +import typing # from cloudevents.http import from_http import cloudevents.exceptions as cloud_exceptions +from cdevents.core.artifact import ArtifactPackagedEvent, ArtifactPublishedEvent +from cdevents.core.branch import BranchCreatedEvent, BranchDeletedEvent +from cdevents.core.build import BuildFinishedEvent, BuildQueuedEvent, BuildStartedEvent +from cdevents.core.env import ( + EnvEventCreatedEvent, + EnvEventDeletedEvent, + EnvEventModifiedEvent, +) +from cdevents.core.event import Event +from cdevents.core.event_type import EventType +from cdevents.core.pipelinerun import ( + PipelinerunFinishedEvent, + PipelinerunQueuedEvent, + PipelinerunStartedEvent, +) +from cdevents.core.repository import ( + RepositoryCreatedEvent, + RepositoryDeletedEvent, + RepositoryModifiedEvent, +) +from cdevents.core.service import ( + ServiceDeployedEvent, + ServiceRemovedEvent, + ServiceRolledbackEvent, + ServiceUpgradedEvent, +) +from cdevents.core.taskrun import TaskRunFinishedEvent, TaskRunStartedEvent from cloudevents.http.event import CloudEvent from cloudevents.http.event_type import is_binary from cloudevents.http.mappings import _obj_by_version @@ -10,107 +37,91 @@ from cloudevents.sdk import marshaller, types -from cdevents.core.event import Event -from cdevents.core.event_type import EventType - -from cdevents.core.artifact import ArtifactPackagedEvent, ArtifactPublishedEvent -from cdevents.core.branch import BranchCreatedEvent, BranchDeletedEvent -from cdevents.core.build import BuildStartedEvent, BuildFinishedEvent, BuildQueuedEvent -from cdevents.core.env import EnvEventCreatedEvent, EnvEventModifiedEvent, EnvEventDeletedEvent -from cdevents.core.pipelinerun import PipelinerunStartedEvent, PipelinerunFinishedEvent, PipelinerunQueuedEvent -from cdevents.core.repository import RepositoryCreatedEvent, RepositoryModifiedEvent, RepositoryDeletedEvent -from cdevents.core.service import ServiceDeployedEvent, ServiceUpgradedEvent, ServiceRolledbackEvent, ServiceRemovedEvent -from cdevents.core.taskrun import TaskRunStartedEvent, TaskRunFinishedEvent - -class HttpHandlar(): +class HttpHandlar: """Http Handlar.""" def get_attrs( - headers: typing.Dict[str, str], - data: typing.Union[str, bytes, None], - data_unmarshaller: types.UnmarshallerType = None, - ): - """ - Unwrap a CD_evnets (binary or structured) from an HTTP request. - :param headers: the HTTP headers - :type headers: typing.Dict[str, str] - :param data: the HTTP request body. If set to None, "" or b'', the returned - event's data field will be set to None - :type data: typing.IO - :param data_unmarshaller: Callable function to map data to a python object - e.g. lambda x: x or lambda x: json.loads(x) - :type data_unmarshaller: types.UnmarshallerType - """ - if data is None or data == b"": - # Empty string will cause data to be marshalled into None - data = "" - - if not isinstance(data, (str, bytes, bytearray)): - raise cloud_exceptions.InvalidStructuredJSON( - "Expected json of type (str, bytes, bytearray), " - f"but instead found type {type(data)}" - ) - - headers = {key.lower(): value for key, value in headers.items()} - if data_unmarshaller is None: - data_unmarshaller = _json_or_string + headers: typing.Dict[str, str], + data: typing.Union[str, bytes, None], + data_unmarshaller: types.UnmarshallerType = None, + ): + """ + Unwrap a CD_evnets (binary or structured) from an HTTP request. + :param headers: the HTTP headers + :type headers: typing.Dict[str, str] + :param data: the HTTP request body. If set to None, "" or b'', the returned + event's data field will be set to None + :type data: typing.IO + :param data_unmarshaller: Callable function to map data to a python object + e.g. lambda x: x or lambda x: json.loads(x) + :type data_unmarshaller: types.UnmarshallerType + """ + if data is None or data == b"": + # Empty string will cause data to be marshalled into None + data = "" + + if not isinstance(data, (str, bytes, bytearray)): + raise cloud_exceptions.InvalidStructuredJSON( + "Expected json of type (str, bytes, bytearray), " + f"but instead found type {type(data)}" + ) - marshall = marshaller.NewDefaultHTTPMarshaller() + headers = {key.lower(): value for key, value in headers.items()} + if data_unmarshaller is None: + data_unmarshaller = _json_or_string - if is_binary(headers): - specversion = headers.get("ce-specversion", None) - else: - try: - raw_ce = json.loads(data) - except json.decoder.JSONDecodeError: - raise cloud_exceptions.MissingRequiredFields( - "Failed to read specversion from both headers and data. " - f"The following can not be parsed as json: {data}" - ) - if hasattr(raw_ce, "get"): - specversion = raw_ce.get("specversion", None) - else: - raise cloud_exceptions.MissingRequiredFields( - "Failed to read specversion from both headers and data. " - f"The following deserialized data has no 'get' method: {raw_ce}" - ) + marshall = marshaller.NewDefaultHTTPMarshaller() - if specversion is None: + if is_binary(headers): + specversion = headers.get("ce-specversion", None) + else: + try: + raw_ce = json.loads(data) + except json.decoder.JSONDecodeError: raise cloud_exceptions.MissingRequiredFields( - "Failed to find specversion in HTTP request" + "Failed to read specversion from both headers and data. " + f"The following can not be parsed as json: {data}" ) - - event_handler = _obj_by_version.get(specversion, None) - - if event_handler is None: - raise cloud_exceptions.InvalidRequiredFields( - f"Found invalid specversion {specversion}" + if hasattr(raw_ce, "get"): + specversion = raw_ce.get("specversion", None) + else: + raise cloud_exceptions.MissingRequiredFields( + "Failed to read specversion from both headers and data. " + f"The following deserialized data has no 'get' method: {raw_ce}" ) - event = marshall.FromRequest( - event_handler(), headers, data, data_unmarshaller=data_unmarshaller + if specversion is None: + raise cloud_exceptions.MissingRequiredFields( + "Failed to find specversion in HTTP request" ) - # if event.data == "" or event.data == b"": - # # TODO: Check binary unmarshallers to debug why setting data to "" - # # returns an event with data set to None, but structured will return "" - # data = None - attrs = event.Properties() - return attrs - - def event_from_http(headers: typing.Dict[str, str], - data: typing.Union[str, bytes, None], - data_unmarshaller: types.UnmarshallerType = None - ): + event_handler = _obj_by_version.get(specversion, None) + + if event_handler is None: + raise cloud_exceptions.InvalidRequiredFields(f"Found invalid specversion {specversion}") + + event = marshall.FromRequest( + event_handler(), headers, data, data_unmarshaller=data_unmarshaller + ) + # if event.data == "" or event.data == b"": + # # TODO: Check binary unmarshallers to debug why setting data to "" + # # returns an event with data set to None, but structured will return "" + # data = None + attrs = event.Properties() + return attrs + + def event_from_http( + headers: typing.Dict[str, str], + data: typing.Union[str, bytes, None], + data_unmarshaller: types.UnmarshallerType = None, + ): attrs = HttpHandlar.get_attrs(headers, data, data_unmarshaller) - event_data=attrs.pop("data", None) + event_data = attrs.pop("data", None) etype = EventType(attrs.get("type")) if etype.value == "" or etype.value is None: - raise cloud_exceptions.MissingRequiredFields( - "Failed to find type in HTTP request" - ) + raise cloud_exceptions.MissingRequiredFields("Failed to find type in HTTP request") elif etype.value == EventType.ArtifactPackagedEventV1.value: return ArtifactPackagedEvent(attrs=attrs, data=event_data) elif etype.value == EventType.ArtifactPublishedEventV1.value: diff --git a/core/cdevents/core/pipelinerun.py b/core/cdevents/core/pipelinerun.py index def4f0a..c875ae3 100644 --- a/core/cdevents/core/pipelinerun.py +++ b/core/cdevents/core/pipelinerun.py @@ -3,23 +3,37 @@ from cdevents.core.event import Event from cdevents.core.event_type import EventType + class PipelinerunEvent(Event): """Pipelinerun Event.""" - def __init__(self, pipelinerun_type: EventType, id: str, name: str, status: str, url: str, errors: str, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, + pipelinerun_type: EventType, + id: str, + name: str, + status: str, + url: str, + errors: str, + attrs=None, + data: dict = {}, + ): + """Initializes class.""" self._event_type = pipelinerun_type self._id = id self._name = name self._status = status self._url = url self._errors = errors - super().__init__(event_type=self._event_type.value, extensions=self.create_extensions(), attrs=attrs, data=data) - + super().__init__( + event_type=self._event_type.value, + extensions=self.create_extensions(), + attrs=attrs, + data=data, + ) + def create_extensions(self) -> dict: - """Create extensions. - """ + """Create extensions.""" extensions = { "pipelinerunid": self._id, "pipelinerunname": self._name, @@ -28,30 +42,81 @@ def create_extensions(self) -> dict: "pipelinerunerrors": self._errors, } return extensions - + + class PipelinerunStartedEvent(PipelinerunEvent): - - def __init__(self, id: str=None, name: str=None, status: str=None, url: str=None, errors: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, + id: str = None, + name: str = None, + status: str = None, + url: str = None, + errors: str = None, + attrs=None, + data: dict = {}, + ): + """Initializes class.""" self._event_type: str = EventType.PipelineRunStartedEventV1 - super().__init__(pipelinerun_type=self._event_type, id=id, name=name, status=status, url=url, errors=errors, attrs=attrs, data=data) + super().__init__( + pipelinerun_type=self._event_type, + id=id, + name=name, + status=status, + url=url, + errors=errors, + attrs=attrs, + data=data, + ) + class PipelinerunFinishedEvent(PipelinerunEvent): - - def __init__(self, id: str=None, name: str=None, status: str=None, url: str=None, errors: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, + id: str = None, + name: str = None, + status: str = None, + url: str = None, + errors: str = None, + attrs=None, + data: dict = {}, + ): + """Initializes class.""" self._event_type: str = EventType.PipelineRunFinishedEventV1 - super().__init__(pipelinerun_type=self._event_type, id=id, name=name, status=status, url=url, errors=errors, attrs=attrs, data=data) - + super().__init__( + pipelinerun_type=self._event_type, + id=id, + name=name, + status=status, + url=url, + errors=errors, + attrs=attrs, + data=data, + ) + + class PipelinerunQueuedEvent(PipelinerunEvent): - - def __init__(self, id: str=None, name: str=None, status: str=None, url: str=None, errors: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, + id: str = None, + name: str = None, + status: str = None, + url: str = None, + errors: str = None, + attrs=None, + data: dict = {}, + ): + """Initializes class.""" self._event_type: str = EventType.PipelineRunQueuedEventV1 - super().__init__(pipelinerun_type=self._event_type, id=id, name=name, status=status, url=url, errors=errors, attrs=attrs, data=data) + super().__init__( + pipelinerun_type=self._event_type, + id=id, + name=name, + status=status, + url=url, + errors=errors, + attrs=attrs, + data=data, + ) diff --git a/core/cdevents/core/repository.py b/core/cdevents/core/repository.py index 4c44396..018955e 100644 --- a/core/cdevents/core/repository.py +++ b/core/cdevents/core/repository.py @@ -3,21 +3,27 @@ from cdevents.core.event import Event from cdevents.core.event_type import EventType + class RepositoryEvent(Event): """Repository Event.""" - def __init__(self, repository_type: EventType, id: str, name: str, url: str, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, repository_type: EventType, id: str, name: str, url: str, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type = repository_type self._id = id self._name = name self._url = url - super().__init__(event_type=self._event_type.value, extensions=self.create_extensions(), attrs=attrs, data=data) + super().__init__( + event_type=self._event_type.value, + extensions=self.create_extensions(), + attrs=attrs, + data=data, + ) def create_extensions(self) -> dict: - """Create extensions. - """ + """Create extensions.""" extensions = { "repositoryid": self._id, "repositoryname": self._name, @@ -25,30 +31,38 @@ def create_extensions(self) -> dict: } return extensions + class RepositoryCreatedEvent(RepositoryEvent): - - def __init__(self, id: str=None, name: str=None, url: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, url: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.RepositoryCreatedEventV1 - super().__init__(repository_type=self._event_type, id=id, name=name, url=url, attrs=attrs, data=data) + super().__init__( + repository_type=self._event_type, id=id, name=name, url=url, attrs=attrs, data=data + ) + class RepositoryModifiedEvent(RepositoryEvent): - - def __init__(self, id: str=None, name: str=None, url: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, url: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.RepositoryModifiedEventV1 - super().__init__(repository_type=self._event_type, id=id, name=name, url=url, attrs=attrs, data=data) + super().__init__( + repository_type=self._event_type, id=id, name=name, url=url, attrs=attrs, data=data + ) + class RepositoryDeletedEvent(RepositoryEvent): - - def __init__(self, id: str=None, name: str=None, url: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, url: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.RepositoryDeletedEventV1 - super().__init__(repository_type=self._event_type, id=id, name=name, url=url, attrs=attrs, data=data) - + super().__init__( + repository_type=self._event_type, id=id, name=name, url=url, attrs=attrs, data=data + ) diff --git a/core/cdevents/core/service.py b/core/cdevents/core/service.py index 19a9e1d..428dbcb 100644 --- a/core/cdevents/core/service.py +++ b/core/cdevents/core/service.py @@ -3,21 +3,33 @@ from cdevents.core.event import Event from cdevents.core.event_type import EventType + class ServiceEvent(Event): """Service Event.""" - def __init__(self, service_type: EventType, envid: str, name: str, version: str, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, + service_type: EventType, + envid: str, + name: str, + version: str, + attrs=None, + data: dict = {}, + ): + """Initializes class.""" self._event_type = service_type self._envid = envid self._name = name self._version = version - super().__init__(event_type=self._event_type.value, extensions=self.create_extensions(), attrs=attrs, data=data) + super().__init__( + event_type=self._event_type.value, + extensions=self.create_extensions(), + attrs=attrs, + data=data, + ) def create_extensions(self) -> dict: - """Create extensions. - """ + """Create extensions.""" extensions = { "serviceenvid": self._envid, "servicename": self._name, @@ -25,39 +37,70 @@ def create_extensions(self) -> dict: } return extensions + class ServiceDeployedEvent(ServiceEvent): - - def __init__(self, envid: str=None, name: str=None, version: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, envid: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.ServiceDeployedEventV1 - super().__init__(service_type=self._event_type, envid=envid, name=name, version=version, attrs=attrs, data=data) + super().__init__( + service_type=self._event_type, + envid=envid, + name=name, + version=version, + attrs=attrs, + data=data, + ) + class ServiceUpgradedEvent(ServiceEvent): - - def __init__(self, envid: str=None, name: str=None, version: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, envid: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.ServiceUpgradedEventV1 - super().__init__(service_type=self._event_type, envid=envid, name=name, version=version, attrs=attrs, data=data) + super().__init__( + service_type=self._event_type, + envid=envid, + name=name, + version=version, + attrs=attrs, + data=data, + ) + class ServiceRolledbackEvent(ServiceEvent): - - def __init__(self, envid: str=None, name: str=None, version: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, envid: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.ServiceRolledbackEventV1 - super().__init__(service_type=self._event_type, envid=envid, name=name, version=version, attrs=attrs, data=data) + super().__init__( + service_type=self._event_type, + envid=envid, + name=name, + version=version, + attrs=attrs, + data=data, + ) + class ServiceRemovedEvent(ServiceEvent): - - def __init__(self, envid: str=None, name: str=None, version: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, envid: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.ServiceRemovedEventV1 - super().__init__(service_type=self._event_type, envid=envid, name=name, version=version, attrs=attrs, data=data) - + super().__init__( + service_type=self._event_type, + envid=envid, + name=name, + version=version, + attrs=attrs, + data=data, + ) diff --git a/core/cdevents/core/taskrun.py b/core/cdevents/core/taskrun.py index 661d9be..137f60a 100644 --- a/core/cdevents/core/taskrun.py +++ b/core/cdevents/core/taskrun.py @@ -3,21 +3,33 @@ from cdevents.core.event import Event from cdevents.core.event_type import EventType + class TaskRunEvent(Event): """Taskrun Event.""" - def __init__(self,taskrun_type: EventType, id: str, name: str, pipelineid: str, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, + taskrun_type: EventType, + id: str, + name: str, + pipelineid: str, + attrs=None, + data: dict = {}, + ): + """Initializes class.""" self._event_type = taskrun_type - self._id= id + self._id = id self._name = name self._pipelineid = pipelineid - super().__init__(event_type=self._event_type.value, extensions=self.create_extensions(), attrs=attrs, data=data) - + super().__init__( + event_type=self._event_type.value, + extensions=self.create_extensions(), + attrs=attrs, + data=data, + ) + def create_extensions(self) -> dict: - """Create extensions. - """ + """Create extensions.""" extensions = { "taskrunid": self._id, "taskrunname": self._name, @@ -25,20 +37,36 @@ def create_extensions(self) -> dict: } return extensions + class TaskRunStartedEvent(TaskRunEvent): - - def __init__(self, id: str=None, name: str=None, pipelineid: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, pipelineid: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.TaskRunStartedEventV1 - super().__init__(taskrun_type=self._event_type, id=id, name=name, pipelineid=pipelineid, attrs=attrs, data=data) + super().__init__( + taskrun_type=self._event_type, + id=id, + name=name, + pipelineid=pipelineid, + attrs=attrs, + data=data, + ) + class TaskRunFinishedEvent(TaskRunEvent): - - def __init__(self, id: str=None, name: str=None, pipelineid: str=None, attrs=None, data: dict = {}): - """Initializes class. - """ + def __init__( + self, id: str = None, name: str = None, pipelineid: str = None, attrs=None, data: dict = {} + ): + """Initializes class.""" self._event_type: str = EventType.TaskRunFinishedEventV1 - super().__init__(taskrun_type=self._event_type, id=id, name=name, pipelineid=pipelineid, attrs=attrs, data=data) + super().__init__( + taskrun_type=self._event_type, + id=id, + name=name, + pipelineid=pipelineid, + attrs=attrs, + data=data, + ) diff --git a/core/tests/test_artifact.py b/core/tests/test_artifact.py index 60fadff..cb68793 100644 --- a/core/tests/test_artifact.py +++ b/core/tests/test_artifact.py @@ -1,29 +1,56 @@ import pytest - +from cdevents.core.artifact import ( + ArtifactEvent, + ArtifactPackagedEvent, + ArtifactPublishedEvent, +) from cdevents.core.event_type import EventType -from cdevents.core.artifact import ArtifactEvent, ArtifactPackagedEvent, ArtifactPublishedEvent + @pytest.mark.unit def test_artifact_created(): - artifact_event = ArtifactEvent(artifact_type=EventType.ArtifactPackagedEventV1, id="_id", name="_name", version="_version",data={"key1": "value1"}) + artifact_event = ArtifactEvent( + artifact_type=EventType.ArtifactPackagedEventV1, + id="_id", + name="_name", + version="_version", + data={"key1": "value1"}, + ) assert artifact_event is not None assert artifact_event._attributes["type"] == EventType.ArtifactPackagedEventV1.value - assert artifact_event._attributes["extensions"] == {"artifactid": "_id", "artifactname": "_name", "artifactversion": "_version"} + assert artifact_event._attributes["extensions"] == { + "artifactid": "_id", + "artifactname": "_name", + "artifactversion": "_version", + } assert artifact_event.data == {"key1": "value1"} + @pytest.mark.unit def test_artifact_type_packaged_v1(): - artifact_event = ArtifactPackagedEvent(id="_id", name="_name", version="_version",data={"key1": "value1"}) + artifact_event = ArtifactPackagedEvent( + id="_id", name="_name", version="_version", data={"key1": "value1"} + ) assert artifact_event is not None assert artifact_event._attributes["type"] == EventType.ArtifactPackagedEventV1.value - assert artifact_event._attributes["extensions"] == {"artifactid": "_id", "artifactname": "_name", "artifactversion": "_version"} + assert artifact_event._attributes["extensions"] == { + "artifactid": "_id", + "artifactname": "_name", + "artifactversion": "_version", + } assert artifact_event.data == {"key1": "value1"} + @pytest.mark.unit def test_artifact_type_published_v1(): - artifact_event = ArtifactPublishedEvent(id="_id", name="_name", version="_version",data={"key1": "value1"}) + artifact_event = ArtifactPublishedEvent( + id="_id", name="_name", version="_version", data={"key1": "value1"} + ) assert artifact_event is not None assert artifact_event._attributes["type"] == EventType.ArtifactPublishedEventV1.value - assert artifact_event._attributes["extensions"] == {"artifactid": "_id", "artifactname": "_name", "artifactversion": "_version"} + assert artifact_event._attributes["extensions"] == { + "artifactid": "_id", + "artifactname": "_name", + "artifactversion": "_version", + } assert artifact_event.data == {"key1": "value1"} - diff --git a/core/tests/test_branch.py b/core/tests/test_branch.py index c90313a..5937a46 100644 --- a/core/tests/test_branch.py +++ b/core/tests/test_branch.py @@ -1,28 +1,52 @@ import pytest - +from cdevents.core.branch import BranchCreatedEvent, BranchDeletedEvent, BranchEvent from cdevents.core.event_type import EventType -from cdevents.core.branch import BranchEvent, BranchCreatedEvent, BranchDeletedEvent + @pytest.mark.unit def test_branch_created(): - branch_event = BranchEvent(branch_type=EventType.BranchCreatedEventV1, id="_id", name="_name", repoid="_repoid", data={"key1": "value1"}) + branch_event = BranchEvent( + branch_type=EventType.BranchCreatedEventV1, + id="_id", + name="_name", + repoid="_repoid", + data={"key1": "value1"}, + ) assert branch_event is not None assert branch_event._attributes["type"] == EventType.BranchCreatedEventV1.value - assert branch_event._attributes["extensions"] == {"branchid": "_id", "branchname": "_name", "branchrepositoryid": "_repoid"} + assert branch_event._attributes["extensions"] == { + "branchid": "_id", + "branchname": "_name", + "branchrepositoryid": "_repoid", + } assert branch_event.data == {"key1": "value1"} + @pytest.mark.unit def test_branch_type_created_v1(): - branch_event = BranchCreatedEvent(id="_id", name="_name", repoid="_repoid", data={"key1": "value1"}) + branch_event = BranchCreatedEvent( + id="_id", name="_name", repoid="_repoid", data={"key1": "value1"} + ) assert branch_event is not None assert branch_event._attributes["type"] == EventType.BranchCreatedEventV1.value - assert branch_event._attributes["extensions"] == {"branchid": "_id", "branchname": "_name", "branchrepositoryid": "_repoid"} + assert branch_event._attributes["extensions"] == { + "branchid": "_id", + "branchname": "_name", + "branchrepositoryid": "_repoid", + } assert branch_event.data == {"key1": "value1"} + @pytest.mark.unit def test_branch_type_deleted_v1(): - branch_event = BranchDeletedEvent(id="_id", name="_name", repoid="_repoid", data={"key1": "value1"}) + branch_event = BranchDeletedEvent( + id="_id", name="_name", repoid="_repoid", data={"key1": "value1"} + ) assert branch_event is not None assert branch_event._attributes["type"] == EventType.BranchDeletedEventV1.value - assert branch_event._attributes["extensions"] == {"branchid": "_id", "branchname": "_name", "branchrepositoryid": "_repoid"} - assert branch_event.data == {"key1": "value1"} \ No newline at end of file + assert branch_event._attributes["extensions"] == { + "branchid": "_id", + "branchname": "_name", + "branchrepositoryid": "_repoid", + } + assert branch_event.data == {"key1": "value1"} diff --git a/core/tests/test_build.py b/core/tests/test_build.py index 0b4415c..4070c91 100644 --- a/core/tests/test_build.py +++ b/core/tests/test_build.py @@ -1,36 +1,72 @@ import pytest - +from cdevents.core.build import ( + BuildEvent, + BuildFinishedEvent, + BuildQueuedEvent, + BuildStartedEvent, +) from cdevents.core.event_type import EventType -from cdevents.core.build import BuildEvent, BuildStartedEvent, BuildQueuedEvent, BuildFinishedEvent + @pytest.mark.unit def test_build_created(): - build_event = BuildEvent(build_type=EventType.BuildStartedEventV1, id="_id", name="_name", artifact="_artifact", data={"key1": "value1"}) + build_event = BuildEvent( + build_type=EventType.BuildStartedEventV1, + id="_id", + name="_name", + artifact="_artifact", + data={"key1": "value1"}, + ) assert build_event is not None assert build_event._attributes["type"] == EventType.BuildStartedEventV1.value - assert build_event._attributes["extensions"] == {"buildid": "_id", "buildname": "_name", "buildartifactid": "_artifact"} + assert build_event._attributes["extensions"] == { + "buildid": "_id", + "buildname": "_name", + "buildartifactid": "_artifact", + } assert build_event.data == {"key1": "value1"} + @pytest.mark.unit def test_build_type_started_v1(): - build_event = BuildStartedEvent(id="_id", name="_name", artifact="_artifact", data={"key1": "value1"}) + build_event = BuildStartedEvent( + id="_id", name="_name", artifact="_artifact", data={"key1": "value1"} + ) assert build_event is not None assert build_event._attributes["type"] == EventType.BuildStartedEventV1.value - assert build_event._attributes["extensions"] == {"buildid": "_id", "buildname": "_name", "buildartifactid": "_artifact"} + assert build_event._attributes["extensions"] == { + "buildid": "_id", + "buildname": "_name", + "buildartifactid": "_artifact", + } assert build_event.data == {"key1": "value1"} + @pytest.mark.unit def test_build_type_queued_v1(): - build_event = BuildQueuedEvent(id="_id", name="_name", artifact="_artifact", data={"key1": "value1"}) + build_event = BuildQueuedEvent( + id="_id", name="_name", artifact="_artifact", data={"key1": "value1"} + ) assert build_event is not None assert build_event._attributes["type"] == EventType.BuildQueuedEventV1.value - assert build_event._attributes["extensions"] == {"buildid": "_id", "buildname": "_name", "buildartifactid": "_artifact"} + assert build_event._attributes["extensions"] == { + "buildid": "_id", + "buildname": "_name", + "buildartifactid": "_artifact", + } assert build_event.data == {"key1": "value1"} + @pytest.mark.unit def test_build_type_finished_v1(): - build_event = BuildFinishedEvent(id="_id", name="_name", artifact="_artifact", data={"key1": "value1"}) + build_event = BuildFinishedEvent( + id="_id", name="_name", artifact="_artifact", data={"key1": "value1"} + ) assert build_event is not None assert build_event._attributes["type"] == EventType.BuildFinishedEventV1.value - assert build_event._attributes["extensions"] == {"buildid": "_id", "buildname": "_name", "buildartifactid": "_artifact"} + assert build_event._attributes["extensions"] == { + "buildid": "_id", + "buildname": "_name", + "buildartifactid": "_artifact", + } assert build_event.data == {"key1": "value1"} diff --git a/core/tests/test_environment.py b/core/tests/test_environment.py index bb73e93..95c7454 100644 --- a/core/tests/test_environment.py +++ b/core/tests/test_environment.py @@ -1,14 +1,29 @@ import pytest - -from cdevents.core.env import EnvEvent, EnvEventCreatedEvent, EnvEventModifiedEvent, EnvEventDeletedEvent +from cdevents.core.env import ( + EnvEvent, + EnvEventCreatedEvent, + EnvEventDeletedEvent, + EnvEventModifiedEvent, +) from cdevents.core.event_type import EventType + @pytest.mark.unit def test_environment_created(): - env_event = EnvEvent(env_type=EventType.EnvironmentCreatedEventV1, id="_id", name="_name", repo="_repo", data={"key1": "value1"}) + env_event = EnvEvent( + env_type=EventType.EnvironmentCreatedEventV1, + id="_id", + name="_name", + repo="_repo", + data={"key1": "value1"}, + ) assert env_event is not None assert env_event._attributes["type"] == EventType.EnvironmentCreatedEventV1.value - assert env_event._attributes["extensions"] == {"envId": "_id", "envname": "_name", "envrepourl": "_repo"} + assert env_event._attributes["extensions"] == { + "envId": "_id", + "envname": "_name", + "envrepourl": "_repo", + } assert env_event.data == {"key1": "value1"} @@ -17,7 +32,11 @@ def test_environment_type_created_v1(): env_event = EnvEventCreatedEvent(id="_id", name="_name", repo="_repo", data={"key1": "value1"}) assert env_event is not None assert env_event._attributes["type"] == EventType.EnvironmentCreatedEventV1.value - assert env_event._attributes["extensions"] == {"envId": "_id", "envname": "_name", "envrepourl": "_repo"} + assert env_event._attributes["extensions"] == { + "envId": "_id", + "envname": "_name", + "envrepourl": "_repo", + } assert env_event.data == {"key1": "value1"} @@ -26,13 +45,22 @@ def test_environment_type_modified_v1(): env_event = EnvEventModifiedEvent(id="_id", name="_name", repo="_repo", data={"key1": "value1"}) assert env_event is not None assert env_event._attributes["type"] == EventType.EnvironmentModifiedEventV1.value - assert env_event._attributes["extensions"] == {"envId": "_id", "envname": "_name", "envrepourl": "_repo"} + assert env_event._attributes["extensions"] == { + "envId": "_id", + "envname": "_name", + "envrepourl": "_repo", + } assert env_event.data == {"key1": "value1"} + @pytest.mark.unit def test_environment_type_deleted_v1(): env_event = EnvEventDeletedEvent(id="_id", name="_name", repo="_repo", data={"key1": "value1"}) assert env_event is not None assert env_event._attributes["type"] == EventType.EnvironmentDeletedEventV1.value - assert env_event._attributes["extensions"] == {"envId": "_id", "envname": "_name", "envrepourl": "_repo"} - assert env_event.data == {"key1": "value1"} \ No newline at end of file + assert env_event._attributes["extensions"] == { + "envId": "_id", + "envname": "_name", + "envrepourl": "_repo", + } + assert env_event.data == {"key1": "value1"} diff --git a/core/tests/test_events.py b/core/tests/test_events.py index b37d1eb..713ff0f 100644 --- a/core/tests/test_events.py +++ b/core/tests/test_events.py @@ -1,7 +1,7 @@ import pytest - from cdevents.core.event import Event + @pytest.mark.unit def test_create_event(): event = Event(event_type="event_type", extensions={"test": "test"}, data={"key1": "value1"}) diff --git a/core/tests/test_pipelinerun.py b/core/tests/test_pipelinerun.py index 54eb8a1..91dc741 100644 --- a/core/tests/test_pipelinerun.py +++ b/core/tests/test_pipelinerun.py @@ -1,36 +1,97 @@ import pytest - -from cdevents.core.pipelinerun import PipelinerunEvent, PipelinerunStartedEvent, PipelinerunFinishedEvent, PipelinerunQueuedEvent from cdevents.core.event_type import EventType +from cdevents.core.pipelinerun import ( + PipelinerunEvent, + PipelinerunFinishedEvent, + PipelinerunQueuedEvent, + PipelinerunStartedEvent, +) + @pytest.mark.unit def test_pipelinerun_created(): - pipelinerun_event = PipelinerunEvent(pipelinerun_type=EventType.PipelineRunStartedEventV1, id="_id", name="_name", status="_status", url="_url", errors="_errors", data={"key1": "value1"}) + pipelinerun_event = PipelinerunEvent( + pipelinerun_type=EventType.PipelineRunStartedEventV1, + id="_id", + name="_name", + status="_status", + url="_url", + errors="_errors", + data={"key1": "value1"}, + ) assert pipelinerun_event is not None assert pipelinerun_event._attributes["type"] == EventType.PipelineRunStartedEventV1.value - assert pipelinerun_event._attributes["extensions"] == {"pipelinerunid": "_id", "pipelinerunname": "_name", "pipelinerunstatus": "_status", "pipelinerunurl": "_url", "pipelinerunerrors": "_errors"} + assert pipelinerun_event._attributes["extensions"] == { + "pipelinerunid": "_id", + "pipelinerunname": "_name", + "pipelinerunstatus": "_status", + "pipelinerunurl": "_url", + "pipelinerunerrors": "_errors", + } assert pipelinerun_event.data == {"key1": "value1"} + @pytest.mark.unit def test_pipelinerun_type_started_v1(): - pipelinerun_event = PipelinerunStartedEvent(id="_id", name="_name", status="_status", url="_url", errors="_errors", data={"key1": "value1"}) + pipelinerun_event = PipelinerunStartedEvent( + id="_id", + name="_name", + status="_status", + url="_url", + errors="_errors", + data={"key1": "value1"}, + ) assert pipelinerun_event is not None assert pipelinerun_event._attributes["type"] == EventType.PipelineRunStartedEventV1.value - assert pipelinerun_event._attributes["extensions"] == {"pipelinerunid": "_id", "pipelinerunname": "_name", "pipelinerunstatus": "_status", "pipelinerunurl": "_url", "pipelinerunerrors": "_errors"} + assert pipelinerun_event._attributes["extensions"] == { + "pipelinerunid": "_id", + "pipelinerunname": "_name", + "pipelinerunstatus": "_status", + "pipelinerunurl": "_url", + "pipelinerunerrors": "_errors", + } assert pipelinerun_event.data == {"key1": "value1"} + @pytest.mark.unit def test_pipelinerun_type_finished_v1(): - pipelinerun_event = PipelinerunFinishedEvent( id="_id", name="_name", status="_status", url="_url", errors="_errors", data={"key1": "value1"}) + pipelinerun_event = PipelinerunFinishedEvent( + id="_id", + name="_name", + status="_status", + url="_url", + errors="_errors", + data={"key1": "value1"}, + ) assert pipelinerun_event is not None assert pipelinerun_event._attributes["type"] == EventType.PipelineRunFinishedEventV1.value - assert pipelinerun_event._attributes["extensions"] == {"pipelinerunid": "_id", "pipelinerunname": "_name", "pipelinerunstatus": "_status", "pipelinerunurl": "_url", "pipelinerunerrors": "_errors"} + assert pipelinerun_event._attributes["extensions"] == { + "pipelinerunid": "_id", + "pipelinerunname": "_name", + "pipelinerunstatus": "_status", + "pipelinerunurl": "_url", + "pipelinerunerrors": "_errors", + } assert pipelinerun_event.data == {"key1": "value1"} + @pytest.mark.unit def test_pipelinerun_type_queued_v1(): - pipelinerun_event = PipelinerunQueuedEvent(id="_id", name="_name", status="_status", url="_url", errors="_errors", data={"key1": "value1"}) + pipelinerun_event = PipelinerunQueuedEvent( + id="_id", + name="_name", + status="_status", + url="_url", + errors="_errors", + data={"key1": "value1"}, + ) assert pipelinerun_event is not None assert pipelinerun_event._attributes["type"] == EventType.PipelineRunQueuedEventV1.value - assert pipelinerun_event._attributes["extensions"] == {"pipelinerunid": "_id", "pipelinerunname": "_name", "pipelinerunstatus": "_status", "pipelinerunurl": "_url", "pipelinerunerrors": "_errors"} + assert pipelinerun_event._attributes["extensions"] == { + "pipelinerunid": "_id", + "pipelinerunname": "_name", + "pipelinerunstatus": "_status", + "pipelinerunurl": "_url", + "pipelinerunerrors": "_errors", + } assert pipelinerun_event.data == {"key1": "value1"} diff --git a/core/tests/test_repository.py b/core/tests/test_repository.py index d8597ee..7ae2f35 100644 --- a/core/tests/test_repository.py +++ b/core/tests/test_repository.py @@ -1,37 +1,72 @@ import pytest - -from cdevents.core.repository import RepositoryEvent, RepositoryCreatedEvent, RepositoryModifiedEvent, RepositoryDeletedEvent from cdevents.core.event_type import EventType +from cdevents.core.repository import ( + RepositoryCreatedEvent, + RepositoryDeletedEvent, + RepositoryEvent, + RepositoryModifiedEvent, +) + @pytest.mark.unit def test_repository_created(): - repository_event = RepositoryEvent(repository_type=EventType.RepositoryCreatedEventV1, id="_id", name="_name", url="_url", data={"key1": "value1"}) + repository_event = RepositoryEvent( + repository_type=EventType.RepositoryCreatedEventV1, + id="_id", + name="_name", + url="_url", + data={"key1": "value1"}, + ) assert repository_event is not None assert repository_event._attributes["type"] == EventType.RepositoryCreatedEventV1.value - assert repository_event._attributes["extensions"] == {"repositoryid": "_id", "repositoryname": "_name", "repositoryurl": "_url"} + assert repository_event._attributes["extensions"] == { + "repositoryid": "_id", + "repositoryname": "_name", + "repositoryurl": "_url", + } assert repository_event.data == {"key1": "value1"} + @pytest.mark.unit def test_repository_type_created_v1(): - repository_event = RepositoryCreatedEvent(id="_id", name="_name", url="_url", data={"key1": "value1"}) + repository_event = RepositoryCreatedEvent( + id="_id", name="_name", url="_url", data={"key1": "value1"} + ) assert repository_event is not None assert repository_event._attributes["type"] == EventType.RepositoryCreatedEventV1.value - assert repository_event._attributes["extensions"] == {"repositoryid": "_id", "repositoryname": "_name", "repositoryurl": "_url"} + assert repository_event._attributes["extensions"] == { + "repositoryid": "_id", + "repositoryname": "_name", + "repositoryurl": "_url", + } assert repository_event.data == {"key1": "value1"} + @pytest.mark.unit def test_repository_type_modified_v1(): - repository_event = RepositoryModifiedEvent(id="_id", name="_name", url="_url", data={"key1": "value1"}) + repository_event = RepositoryModifiedEvent( + id="_id", name="_name", url="_url", data={"key1": "value1"} + ) assert repository_event is not None assert repository_event._attributes["type"] == EventType.RepositoryModifiedEventV1.value - assert repository_event._attributes["extensions"] == {"repositoryid": "_id", "repositoryname": "_name", "repositoryurl": "_url"} + assert repository_event._attributes["extensions"] == { + "repositoryid": "_id", + "repositoryname": "_name", + "repositoryurl": "_url", + } assert repository_event.data == {"key1": "value1"} + @pytest.mark.unit def test_repository_type_deleted_v1(): - repository_event = RepositoryDeletedEvent(id="_id", name="_name", url="_url", data={"key1": "value1"}) + repository_event = RepositoryDeletedEvent( + id="_id", name="_name", url="_url", data={"key1": "value1"} + ) assert repository_event is not None assert repository_event._attributes["type"] == EventType.RepositoryDeletedEventV1.value - assert repository_event._attributes["extensions"] == {"repositoryid": "_id", "repositoryname": "_name", "repositoryurl": "_url"} + assert repository_event._attributes["extensions"] == { + "repositoryid": "_id", + "repositoryname": "_name", + "repositoryurl": "_url", + } assert repository_event.data == {"key1": "value1"} - diff --git a/core/tests/test_service.py b/core/tests/test_service.py index 7830f34..6fe6da4 100644 --- a/core/tests/test_service.py +++ b/core/tests/test_service.py @@ -1,49 +1,88 @@ import pytest - -from cdevents.core.service import ServiceEvent, ServiceDeployedEvent, ServiceUpgradedEvent, ServiceRolledbackEvent, ServiceRemovedEvent from cdevents.core.event_type import EventType +from cdevents.core.service import ( + ServiceDeployedEvent, + ServiceEvent, + ServiceRemovedEvent, + ServiceRolledbackEvent, + ServiceUpgradedEvent, +) + @pytest.mark.unit def test_service_created(): - service_event = ServiceEvent(service_type=EventType.ServiceDeployedEventV1, envid="_envid", name="_name", version="_version", data={"key1": "value1"}) + service_event = ServiceEvent( + service_type=EventType.ServiceDeployedEventV1, + envid="_envid", + name="_name", + version="_version", + data={"key1": "value1"}, + ) assert service_event is not None assert service_event._attributes["type"] == EventType.ServiceDeployedEventV1.value - assert service_event._attributes["extensions"] == {"serviceenvid": "_envid", "servicename": "_name", "serviceversion": "_version"} + assert service_event._attributes["extensions"] == { + "serviceenvid": "_envid", + "servicename": "_name", + "serviceversion": "_version", + } assert service_event.data == {"key1": "value1"} @pytest.mark.unit def test_service_type_deployed_v1(): - service_event = ServiceDeployedEvent(envid="_envid", name="_name", version="_version", data={"key1": "value1"}) + service_event = ServiceDeployedEvent( + envid="_envid", name="_name", version="_version", data={"key1": "value1"} + ) assert service_event is not None assert service_event._attributes["type"] == EventType.ServiceDeployedEventV1.value - assert service_event._attributes["extensions"] == {"serviceenvid": "_envid", "servicename": "_name", "serviceversion": "_version"} + assert service_event._attributes["extensions"] == { + "serviceenvid": "_envid", + "servicename": "_name", + "serviceversion": "_version", + } assert service_event.data == {"key1": "value1"} @pytest.mark.unit def test_service_type_upgraded_v1(): - service_event = ServiceUpgradedEvent(envid="_envid", name="_name", version="_version", data={"key1": "value1"}) + service_event = ServiceUpgradedEvent( + envid="_envid", name="_name", version="_version", data={"key1": "value1"} + ) assert service_event is not None assert service_event._attributes["type"] == EventType.ServiceUpgradedEventV1.value - assert service_event._attributes["extensions"] == {"serviceenvid": "_envid", "servicename": "_name", "serviceversion": "_version"} + assert service_event._attributes["extensions"] == { + "serviceenvid": "_envid", + "servicename": "_name", + "serviceversion": "_version", + } assert service_event.data == {"key1": "value1"} @pytest.mark.unit def test_service_type_rolledback_v1(): - service_event = ServiceRolledbackEvent(envid="_envid", name="_name", version="_version", data={"key1": "value1"}) + service_event = ServiceRolledbackEvent( + envid="_envid", name="_name", version="_version", data={"key1": "value1"} + ) assert service_event is not None assert service_event._attributes["type"] == EventType.ServiceRolledbackEventV1.value - assert service_event._attributes["extensions"] == {"serviceenvid": "_envid", "servicename": "_name", "serviceversion": "_version"} + assert service_event._attributes["extensions"] == { + "serviceenvid": "_envid", + "servicename": "_name", + "serviceversion": "_version", + } assert service_event.data == {"key1": "value1"} @pytest.mark.unit def test_service_type_removed_v1(): - service_event = ServiceRemovedEvent(envid="_envid", name="_name", version="_version", data={"key1": "value1"}) + service_event = ServiceRemovedEvent( + envid="_envid", name="_name", version="_version", data={"key1": "value1"} + ) assert service_event is not None assert service_event._attributes["type"] == EventType.ServiceRemovedEventV1.value - assert service_event._attributes["extensions"] == {"serviceenvid": "_envid", "servicename": "_name", "serviceversion": "_version"} + assert service_event._attributes["extensions"] == { + "serviceenvid": "_envid", + "servicename": "_name", + "serviceversion": "_version", + } assert service_event.data == {"key1": "value1"} - diff --git a/core/tests/test_taskrun.py b/core/tests/test_taskrun.py index 7059261..7890617 100644 --- a/core/tests/test_taskrun.py +++ b/core/tests/test_taskrun.py @@ -1,30 +1,56 @@ import pytest - -from cdevents.core.taskrun import TaskRunEvent, TaskRunStartedEvent, TaskRunFinishedEvent from cdevents.core.event_type import EventType +from cdevents.core.taskrun import ( + TaskRunEvent, + TaskRunFinishedEvent, + TaskRunStartedEvent, +) + @pytest.mark.unit def test_taskrun_created(): - taskrun_event = TaskRunEvent(taskrun_type=EventType.TaskRunStartedEventV1, id="_id", name="_name", pipelineid="_pipelineid", data={"key1": "value1"}) + taskrun_event = TaskRunEvent( + taskrun_type=EventType.TaskRunStartedEventV1, + id="_id", + name="_name", + pipelineid="_pipelineid", + data={"key1": "value1"}, + ) assert taskrun_event is not None assert taskrun_event._attributes["type"] == EventType.TaskRunStartedEventV1.value - assert taskrun_event._attributes["extensions"] == {"taskrunid": "_id", "taskrunname": "_name", "taskrunpipelineid": "_pipelineid"} + assert taskrun_event._attributes["extensions"] == { + "taskrunid": "_id", + "taskrunname": "_name", + "taskrunpipelineid": "_pipelineid", + } assert taskrun_event.data == {"key1": "value1"} @pytest.mark.unit def test_taskrun_type_started_v1(): - taskrun_event = TaskRunStartedEvent(id="_id", name="_name", pipelineid="_pipelineid", data={"key1": "value1"}) + taskrun_event = TaskRunStartedEvent( + id="_id", name="_name", pipelineid="_pipelineid", data={"key1": "value1"} + ) assert taskrun_event is not None assert taskrun_event._attributes["type"] == EventType.TaskRunStartedEventV1.value - assert taskrun_event._attributes["extensions"] == {"taskrunid": "_id", "taskrunname": "_name", "taskrunpipelineid": "_pipelineid"} + assert taskrun_event._attributes["extensions"] == { + "taskrunid": "_id", + "taskrunname": "_name", + "taskrunpipelineid": "_pipelineid", + } assert taskrun_event.data == {"key1": "value1"} @pytest.mark.unit def test_taskrun_type_finished_v1(): - taskrun_event = TaskRunFinishedEvent(id="_id", name="_name", pipelineid="_pipelineid", data={"key1": "value1"}) + taskrun_event = TaskRunFinishedEvent( + id="_id", name="_name", pipelineid="_pipelineid", data={"key1": "value1"} + ) assert taskrun_event is not None assert taskrun_event._attributes["type"] == EventType.TaskRunFinishedEventV1.value - assert taskrun_event._attributes["extensions"] == {"taskrunid": "_id", "taskrunname": "_name", "taskrunpipelineid": "_pipelineid"} + assert taskrun_event._attributes["extensions"] == { + "taskrunid": "_id", + "taskrunname": "_name", + "taskrunpipelineid": "_pipelineid", + } assert taskrun_event.data == {"key1": "value1"} diff --git a/core/tests/test_version.py b/core/tests/test_version.py index 104f763..a2f70cf 100644 --- a/core/tests/test_version.py +++ b/core/tests/test_version.py @@ -1,7 +1,6 @@ import re import pytest - from cdevents.core import __version__ # From https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string diff --git a/receiver/cdevents/api/app.py b/receiver/cdevents/api/app.py index afad282..017d2e2 100644 --- a/receiver/cdevents/api/app.py +++ b/receiver/cdevents/api/app.py @@ -1,6 +1,5 @@ -from flask import Flask, request - from cdevents.core.http_handlar import HttpHandlar +from flask import Flask, request app = Flask(__name__) @@ -22,4 +21,4 @@ def home(): if __name__ == "__main__": - app.run(port=8080) \ No newline at end of file + app.run(port=8080) From dfadfac979001979da8836f3e96f2f77f36f61c8 Mon Sep 17 00:00:00 2001 From: Erik Sternerson Date: Tue, 4 Oct 2022 16:32:54 +0200 Subject: [PATCH 2/3] Fix docstrings --- .pre-commit-config.yaml | 1 + cli/cdevents/cli/artifact.py | 2 ++ cli/cdevents/cli/branch.py | 2 ++ cli/cdevents/cli/build.py | 3 +++ cli/cdevents/cli/cdevents_command.py | 2 +- cli/cdevents/cli/configuration_handler.py | 4 ++-- cli/cdevents/cli/env.py | 3 +++ cli/cdevents/cli/pipelinerun.py | 3 +++ cli/cdevents/cli/repository.py | 3 +++ cli/cdevents/cli/service.py | 4 ++++ cli/cdevents/cli/taskrun.py | 2 ++ core/cdevents/core/artifact.py | 6 +++++- core/cdevents/core/branch.py | 6 +++++- core/cdevents/core/build.py | 2 +- core/cdevents/core/env.py | 8 +++++++- core/cdevents/core/event_sender.py | 2 +- core/cdevents/core/extensions/artifact_extension.py | 1 + core/cdevents/core/extensions/service_extension.py | 1 + core/cdevents/core/http_handlar.py | 8 +++++--- core/cdevents/core/pipelinerun.py | 8 +++++++- core/cdevents/core/repository.py | 8 +++++++- core/cdevents/core/service.py | 10 +++++++++- core/cdevents/core/taskrun.py | 6 +++++- receiver/cdevents/api/app.py | 2 ++ 24 files changed, 82 insertions(+), 15 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 933eba0..6cea5f3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -31,6 +31,7 @@ repos: hooks: - id: pydocstyle args: [--convention=google] + exclude: "tests" - repo: https://github.com/pre-commit/mirrors-mypy rev: v0.812 diff --git a/cli/cdevents/cli/artifact.py b/cli/cdevents/cli/artifact.py index 6914192..ad44e53 100644 --- a/cli/cdevents/cli/artifact.py +++ b/cli/cdevents/cli/artifact.py @@ -53,6 +53,7 @@ def packaged( version: str = None, data: List[str] = None, ): + """Creates an ArtifactPackaged CDEvent.""" print_function_args() artifact_event = ArtifactPackagedEvent(id=id, name=name, version=version, data=data) cdevents_command = CDeventsCommand() @@ -67,6 +68,7 @@ def published( version: str = None, data: List[str] = None, ): + """Creates an ArtifactPublished CDEvent.""" print_function_args() artifact_event = ArtifactPublishedEvent(id=id, name=name, version=version, data=data) cdevents_command = CDeventsCommand() diff --git a/cli/cdevents/cli/branch.py b/cli/cdevents/cli/branch.py index bee6958..ec13703 100644 --- a/cli/cdevents/cli/branch.py +++ b/cli/cdevents/cli/branch.py @@ -53,6 +53,7 @@ def created( repoid: str = None, data: List[str] = None, ): + """Creates a BranchCreated CDEvent.""" print_function_args() branch_event = BranchCreatedEvent(id=id, name=name, repoid=repoid, data=data) cdevents_command = CDeventsCommand() @@ -67,6 +68,7 @@ def deleted( repoid: str = None, data: List[str] = None, ): + """Creates a BranchDeleted CDEvent.""" print_function_args() branch_event = BranchDeletedEvent(id=id, name=name, repoid=repoid, data=data) cdevents_command = CDeventsCommand() diff --git a/cli/cdevents/cli/build.py b/cli/cdevents/cli/build.py index be7d449..86f711c 100644 --- a/cli/cdevents/cli/build.py +++ b/cli/cdevents/cli/build.py @@ -54,6 +54,7 @@ def started( artifact: str = None, data: List[str] = None, ): + """Creates a BuildStarted CDEvent.""" print_function_args() build_event = BuildStartedEvent(id=id, name=name, artifact=artifact, data=data) cdevents_command = CDeventsCommand() @@ -68,6 +69,7 @@ def finished( artifact: str = None, data: List[str] = None, ): + """Creates a BuildFinished CDEvent.""" print_function_args() build_event = BuildQueuedEvent(id=id, name=name, artifact=artifact, data=data) cdevents_command = CDeventsCommand() @@ -82,6 +84,7 @@ def queued( artifact: str = None, data: List[str] = None, ): + """Creates a BuildQueued CDEvent.""" print_function_args() build_event = BuildFinishedEvent(id=id, name=name, artifact=artifact, data=data) cdevents_command = CDeventsCommand() diff --git a/cli/cdevents/cli/cdevents_command.py b/cli/cdevents/cli/cdevents_command.py index dfaa353..f9fc259 100644 --- a/cli/cdevents/cli/cdevents_command.py +++ b/cli/cdevents/cli/cdevents_command.py @@ -25,7 +25,7 @@ def __init__(self, config_handler: ConfigurationHandler = None): self._config_handler = new_default_configuration_handler() def run(self, event: CloudEvent): - """run command.""" + """Run command.""" e = EventSender(cde_link=self.config_handler.client.host) e.send(event) diff --git a/cli/cdevents/cli/configuration_handler.py b/cli/cdevents/cli/configuration_handler.py index d608e1d..8d58d29 100644 --- a/cli/cdevents/cli/configuration_handler.py +++ b/cli/cdevents/cli/configuration_handler.py @@ -18,7 +18,7 @@ def get_default_configuration_file() -> str: def new_default_configuration_handler() -> ConfigurationHandler: - """Returnes a configuration handler with the default configuration file""" + """Returns a configuration handler with the default configuration file.""" config_handler: ConfigurationHandler = ConfigurationHandler.create_new( get_default_configuration_file() ) @@ -27,7 +27,7 @@ def new_default_configuration_handler() -> ConfigurationHandler: def new_configuration_handler_with_override(client_host, source_name) -> ConfigurationHandler: - """Returnes a configuration handler where args override configuration file.""" + """Returns a configuration handler where args override configuration file.""" args_as_config = ConfigurationHandler.create_override_config( client_host=client_host, source_name=source_name ) diff --git a/cli/cdevents/cli/env.py b/cli/cdevents/cli/env.py index 6fdb871..69f8e93 100644 --- a/cli/cdevents/cli/env.py +++ b/cli/cdevents/cli/env.py @@ -57,6 +57,7 @@ def created( repo: str = None, data: List[str] = None, ): + """Creates an EnvironmentCreated CDEvent.""" print_function_args() env_event = EnvEventCreatedEvent(id=id, name=name, repo=repo, data=data) cdevents_command = CDeventsCommand() @@ -71,6 +72,7 @@ def deleted( repo: str = None, data: List[str] = None, ): + """Creates an EnvironmentDeleted CDEvent.""" print_function_args() env_event = EnvEventModifiedEvent(id=id, name=name, repo=repo, data=data) cdevents_command = CDeventsCommand() @@ -85,6 +87,7 @@ def modified( repo: str = None, data: List[str] = None, ): + """Creates an EnvironmentModified CDEvent.""" print_function_args() env_event = EnvEventDeletedEvent(id=id, name=name, repo=repo, data=data) cdevents_command = CDeventsCommand() diff --git a/cli/cdevents/cli/pipelinerun.py b/cli/cdevents/cli/pipelinerun.py index 87fc470..2a180cb 100644 --- a/cli/cdevents/cli/pipelinerun.py +++ b/cli/cdevents/cli/pipelinerun.py @@ -73,6 +73,7 @@ def started( errors: str = None, data: List[str] = None, ): + """Creates a PipelineRunStarted CDEvent.""" print_function_args() pipelinerun_event = PipelinerunStartedEvent( id=id, name=name, status=status, url=url, errors=errors, data=data @@ -91,6 +92,7 @@ def finished( errors: str = None, data: List[str] = None, ): + """Creates a PipelineRunFinished CDEvent.""" print_function_args() pipelinerun_event = PipelinerunFinishedEvent( id=id, name=name, status=status, url=url, errors=errors, data=data @@ -109,6 +111,7 @@ def queued( errors: str = None, data: List[str] = None, ): + """Creates a PipelineRunQueued CDEvent.""" print_function_args() pipelinerun_event = PipelinerunQueuedEvent( id=id, name=name, status=status, url=url, errors=errors, data=data diff --git a/cli/cdevents/cli/repository.py b/cli/cdevents/cli/repository.py index 90e7dec..504a18c 100644 --- a/cli/cdevents/cli/repository.py +++ b/cli/cdevents/cli/repository.py @@ -57,6 +57,7 @@ def created( url: str = None, data: List[str] = None, ): + """Creates a RepositoryCreated CDEvent.""" print_function_args() repository_event = RepositoryCreatedEvent(id=id, name=name, url=url, data=data) cdevents_command = CDeventsCommand() @@ -71,6 +72,7 @@ def modified( url: str = None, data: List[str] = None, ): + """Creates a RepositoryModified CDEvent.""" print_function_args() repository_event = RepositoryModifiedEvent(id=id, name=name, url=url, data=data) cdevents_command = CDeventsCommand() @@ -85,6 +87,7 @@ def deleted( url: str = None, data: List[str] = None, ): + """Creates a RepositoryDeleted CDEvent.""" print_function_args() repository_event = RepositoryDeletedEvent(id=id, name=name, url=url, data=data) cdevents_command = CDeventsCommand() diff --git a/cli/cdevents/cli/service.py b/cli/cdevents/cli/service.py index 73c8fa2..d5c099c 100644 --- a/cli/cdevents/cli/service.py +++ b/cli/cdevents/cli/service.py @@ -58,6 +58,7 @@ def deployed( version: str = None, data: List[str] = None, ): + """Create ServiceDeployed CDEvent.""" print_function_args() service_event = ServiceDeployedEvent(envid=envid, name=name, version=version, data=data) cdevents_command = CDeventsCommand() @@ -72,6 +73,7 @@ def upgraded( version: str = None, data: List[str] = None, ): + """Create ServiceUpgraded CDEvent.""" print_function_args() service_event = ServiceUpgradedEvent(envid=envid, name=name, version=version, data=data) cdevents_command = CDeventsCommand() @@ -86,6 +88,7 @@ def rolledback( version: str = None, data: List[str] = None, ): + """Create ServiceRolledback CDEvent.""" print_function_args() service_event = ServiceRolledbackEvent(envid=envid, name=name, version=version, data=data) cdevents_command = CDeventsCommand() @@ -100,6 +103,7 @@ def removed( version: str = None, data: List[str] = None, ): + """Create ServiceRemoved CDEvent.""" print_function_args() service_event = ServiceRemovedEvent(envid=envid, name=name, version=version, data=data) cdevents_command = CDeventsCommand() diff --git a/cli/cdevents/cli/taskrun.py b/cli/cdevents/cli/taskrun.py index 3971e90..9a5580a 100644 --- a/cli/cdevents/cli/taskrun.py +++ b/cli/cdevents/cli/taskrun.py @@ -53,6 +53,7 @@ def started( pipelineid: str = None, data: List[str] = None, ): + """Creates a TaskRunStarted CDEvent.""" print_function_args() taskrun_event = TaskRunStartedEvent(id=id, name=name, pipelineid=pipelineid, data=data) cdevents_command = CDeventsCommand() @@ -67,6 +68,7 @@ def finished( pipelineid: str = None, data: List[str] = None, ): + """Creates a TaskRunFinished CDEvent.""" print_function_args() taskrun_event = TaskRunFinishedEvent(id=id, name=name, pipelineid=pipelineid, data=data) cdevents_command = CDeventsCommand() diff --git a/core/cdevents/core/artifact.py b/core/cdevents/core/artifact.py index 2806a9d..0a3b2fe 100644 --- a/core/cdevents/core/artifact.py +++ b/core/cdevents/core/artifact.py @@ -1,4 +1,4 @@ -"""artifact""" +"""Artifact-related events.""" from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -39,6 +39,8 @@ def create_extensions(self) -> dict: class ArtifactPackagedEvent(ArtifactEvent): + """Artifact packaged event.""" + def __init__( self, id: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} ): @@ -56,6 +58,8 @@ def __init__( class ArtifactPublishedEvent(ArtifactEvent): + """Artifact published event.""" + def __init__( self, id: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} ): diff --git a/core/cdevents/core/branch.py b/core/cdevents/core/branch.py index 21a1c15..d44f410 100644 --- a/core/cdevents/core/branch.py +++ b/core/cdevents/core/branch.py @@ -1,4 +1,4 @@ -"""branch""" +"""Branch-related events.""" from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -39,6 +39,8 @@ def create_extensions(self) -> dict: class BranchCreatedEvent(BranchEvent): + """Branch created event.""" + def __init__( self, id: str = None, name: str = None, repoid: str = None, attrs=None, data: dict = {} ): @@ -51,6 +53,8 @@ def __init__( class BranchDeletedEvent(BranchEvent): + """Branch deleted event.""" + def __init__( self, id: str = None, name: str = None, repoid: str = None, attrs=None, data: dict = {} ): diff --git a/core/cdevents/core/build.py b/core/cdevents/core/build.py index 062e4dd..c11cb32 100644 --- a/core/cdevents/core/build.py +++ b/core/cdevents/core/build.py @@ -1,4 +1,4 @@ -"""build""" +"""Build-related events.""" from cdevents.core.event import Event from cdevents.core.event_type import EventType diff --git a/core/cdevents/core/env.py b/core/cdevents/core/env.py index 7c70db2..a340942 100644 --- a/core/cdevents/core/env.py +++ b/core/cdevents/core/env.py @@ -1,4 +1,4 @@ -"""env""" +"""Environment-related events.""" from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -33,6 +33,8 @@ def create_extensions(self) -> dict: class EnvEventCreatedEvent(EnvEvent): + """EnvironmentCreated CDEvent.""" + def __init__( self, id: str = None, name: str = None, repo: str = None, attrs=None, data: dict = {} ): @@ -45,6 +47,8 @@ def __init__( class EnvEventModifiedEvent(EnvEvent): + """EnvironmentModified CDEvent.""" + def __init__( self, id: str = None, name: str = None, repo: str = None, attrs=None, data: dict = {} ): @@ -57,6 +61,8 @@ def __init__( class EnvEventDeletedEvent(EnvEvent): + """EnvironmentDeleted CDEvent.""" + def __init__( self, id: str = None, name: str = None, repo: str = None, attrs=None, data: dict = {} ): diff --git a/core/cdevents/core/event_sender.py b/core/cdevents/core/event_sender.py index 3a17e84..79b4cbd 100644 --- a/core/cdevents/core/event_sender.py +++ b/core/cdevents/core/event_sender.py @@ -14,7 +14,7 @@ def __init__(self, cde_link: str = None): self._cde_link = "http://localhost:8080" def send(self, event: CloudEvent): - """send events.""" + """Send the given event.""" headers, body = to_structured(event) # send and print event diff --git a/core/cdevents/core/extensions/artifact_extension.py b/core/cdevents/core/extensions/artifact_extension.py index 42777a9..6b6ebbe 100644 --- a/core/cdevents/core/extensions/artifact_extension.py +++ b/core/cdevents/core/extensions/artifact_extension.py @@ -11,6 +11,7 @@ class ArtifactExtension: """Artifact Extension.""" def __init__(self) -> None: + """Initializes Artifact Extension.""" pass def read_transformer(): diff --git a/core/cdevents/core/extensions/service_extension.py b/core/cdevents/core/extensions/service_extension.py index c75758f..44377dc 100644 --- a/core/cdevents/core/extensions/service_extension.py +++ b/core/cdevents/core/extensions/service_extension.py @@ -11,6 +11,7 @@ class ServiceExtension: """Service Extension.""" def __init__(self) -> None: + """Initializes Service Extension.""" pass def read_transformer(): diff --git a/core/cdevents/core/http_handlar.py b/core/cdevents/core/http_handlar.py index 7c3389d..dc0d130 100644 --- a/core/cdevents/core/http_handlar.py +++ b/core/cdevents/core/http_handlar.py @@ -1,3 +1,4 @@ +"""Handler for CDEvents over HTTP.""" import json import typing @@ -38,15 +39,15 @@ class HttpHandlar: - """Http Handlar.""" + """Http Handler.""" def get_attrs( headers: typing.Dict[str, str], data: typing.Union[str, bytes, None], data_unmarshaller: types.UnmarshallerType = None, ): - """ - Unwrap a CD_evnets (binary or structured) from an HTTP request. + """Unwrap a CDEvent (binary or structured) from an HTTP request. + :param headers: the HTTP headers :type headers: typing.Dict[str, str] :param data: the HTTP request body. If set to None, "" or b'', the returned @@ -115,6 +116,7 @@ def event_from_http( data: typing.Union[str, bytes, None], data_unmarshaller: types.UnmarshallerType = None, ): + """Create a CDEvent from HTTP headers and data.""" attrs = HttpHandlar.get_attrs(headers, data, data_unmarshaller) event_data = attrs.pop("data", None) diff --git a/core/cdevents/core/pipelinerun.py b/core/cdevents/core/pipelinerun.py index c875ae3..c95b924 100644 --- a/core/cdevents/core/pipelinerun.py +++ b/core/cdevents/core/pipelinerun.py @@ -1,4 +1,4 @@ -"""pipelinerun""" +"""PipelineRun-related events.""" from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -45,6 +45,8 @@ def create_extensions(self) -> dict: class PipelinerunStartedEvent(PipelinerunEvent): + """PipelineRun Started CDEvent.""" + def __init__( self, id: str = None, @@ -71,6 +73,8 @@ def __init__( class PipelinerunFinishedEvent(PipelinerunEvent): + """PipelineRun Finished CDEvent.""" + def __init__( self, id: str = None, @@ -97,6 +101,8 @@ def __init__( class PipelinerunQueuedEvent(PipelinerunEvent): + """PipelineRun Queued CDEvent.""" + def __init__( self, id: str = None, diff --git a/core/cdevents/core/repository.py b/core/cdevents/core/repository.py index 018955e..dc03059 100644 --- a/core/cdevents/core/repository.py +++ b/core/cdevents/core/repository.py @@ -1,4 +1,4 @@ -"""repository""" +"""Repository-related events.""" from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -33,6 +33,8 @@ def create_extensions(self) -> dict: class RepositoryCreatedEvent(RepositoryEvent): + """Repository Created CDEvent.""" + def __init__( self, id: str = None, name: str = None, url: str = None, attrs=None, data: dict = {} ): @@ -45,6 +47,8 @@ def __init__( class RepositoryModifiedEvent(RepositoryEvent): + """Repository Modified CDEvent.""" + def __init__( self, id: str = None, name: str = None, url: str = None, attrs=None, data: dict = {} ): @@ -57,6 +61,8 @@ def __init__( class RepositoryDeletedEvent(RepositoryEvent): + """Repository Deleted CDEvent.""" + def __init__( self, id: str = None, name: str = None, url: str = None, attrs=None, data: dict = {} ): diff --git a/core/cdevents/core/service.py b/core/cdevents/core/service.py index 428dbcb..8b7c050 100644 --- a/core/cdevents/core/service.py +++ b/core/cdevents/core/service.py @@ -1,4 +1,4 @@ -"""service""" +"""Service-related events.""" from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -39,6 +39,8 @@ def create_extensions(self) -> dict: class ServiceDeployedEvent(ServiceEvent): + """Service Deployed CDEvent.""" + def __init__( self, envid: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} ): @@ -56,6 +58,8 @@ def __init__( class ServiceUpgradedEvent(ServiceEvent): + """Service Upgraded CDEvent.""" + def __init__( self, envid: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} ): @@ -73,6 +77,8 @@ def __init__( class ServiceRolledbackEvent(ServiceEvent): + """Service Rolledback CDEvent.""" + def __init__( self, envid: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} ): @@ -90,6 +96,8 @@ def __init__( class ServiceRemovedEvent(ServiceEvent): + """Service Removed CDEvent.""" + def __init__( self, envid: str = None, name: str = None, version: str = None, attrs=None, data: dict = {} ): diff --git a/core/cdevents/core/taskrun.py b/core/cdevents/core/taskrun.py index 137f60a..bb2157c 100644 --- a/core/cdevents/core/taskrun.py +++ b/core/cdevents/core/taskrun.py @@ -1,4 +1,4 @@ -"""taskrun""" +"""Taskrun-related events.""" from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -39,6 +39,8 @@ def create_extensions(self) -> dict: class TaskRunStartedEvent(TaskRunEvent): + """TaskRun Started CDEvent.""" + def __init__( self, id: str = None, name: str = None, pipelineid: str = None, attrs=None, data: dict = {} ): @@ -56,6 +58,8 @@ def __init__( class TaskRunFinishedEvent(TaskRunEvent): + """TaskRun Finished CDEvent.""" + def __init__( self, id: str = None, name: str = None, pipelineid: str = None, attrs=None, data: dict = {} ): diff --git a/receiver/cdevents/api/app.py b/receiver/cdevents/api/app.py index 017d2e2..c231c77 100644 --- a/receiver/cdevents/api/app.py +++ b/receiver/cdevents/api/app.py @@ -1,3 +1,4 @@ +"""Sample receiver of CDEvents.""" from cdevents.core.http_handlar import HttpHandlar from flask import Flask, request @@ -7,6 +8,7 @@ # create an endpoint at http://localhost:/8080/ @app.route("/", methods=["POST"]) def home(): + """Home Route for Flask.""" # create a CloudEvent event = HttpHandlar.event_from_http(headers=request.headers, data=request.get_data()) From 1db0421f77c4e4492037ed991a850afd53caca09 Mon Sep 17 00:00:00 2001 From: Erik Sternerson Date: Tue, 4 Oct 2022 16:50:59 +0200 Subject: [PATCH 3/3] Fix mypy issues --- core/cdevents/core/env.py | 10 +++++++++- core/cdevents/core/event.py | 5 +++-- core/cdevents/core/event_sender.py | 7 ++++--- core/cdevents/core/extensions/artifact_extension.py | 4 ++-- core/cdevents/core/extensions/service_extension.py | 4 ++-- core/cdevents/core/http_handlar.py | 6 ++++-- core/cdevents/core/pipelinerun.py | 12 +++++++----- core/cdevents/core/repository.py | 10 +++++++++- core/cdevents/core/service.py | 8 +++++--- core/cdevents/core/taskrun.py | 8 +++++--- 10 files changed, 50 insertions(+), 24 deletions(-) diff --git a/core/cdevents/core/env.py b/core/cdevents/core/env.py index a340942..e64cfb4 100644 --- a/core/cdevents/core/env.py +++ b/core/cdevents/core/env.py @@ -1,5 +1,7 @@ """Environment-related events.""" +from typing import Optional + from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -8,7 +10,13 @@ class EnvEvent(Event): """Env Event.""" def __init__( - self, env_type: EventType, id: str, name: str, repo: str, attrs=None, data: dict = {} + self, + env_type: EventType, + id: Optional[str], + name: Optional[str], + repo: Optional[str], + attrs=None, + data: dict = {}, ): """Initializes class.""" self._event_type = env_type diff --git a/core/cdevents/core/event.py b/core/cdevents/core/event.py index 90c84f1..ae27a33 100644 --- a/core/cdevents/core/event.py +++ b/core/cdevents/core/event.py @@ -1,6 +1,7 @@ """Core events.""" from abc import abstractmethod +from typing import Dict from cloudevents.http import CloudEvent @@ -25,7 +26,7 @@ def __init__(self, event_type: str, extensions: dict, attrs=None, data={}): super().__init__(self._attributes, dict(self._data)) @abstractmethod - def create_extensions(self) -> dict: + def create_extensions(self) -> Dict[str, str]: """Create extensions.""" - extensions = {} + extensions: Dict[str, str] = {} return extensions diff --git a/core/cdevents/core/event_sender.py b/core/cdevents/core/event_sender.py index 79b4cbd..8176928 100644 --- a/core/cdevents/core/event_sender.py +++ b/core/cdevents/core/event_sender.py @@ -7,10 +7,11 @@ class EventSender: """Events Sender.""" - def __init__(self, cde_link: str = None): + def __init__(self, cde_link: str = ""): """Initializes class.""" - self._cde_link = cde_link - if cde_link is None: + if cde_link: + self._cde_link = cde_link + else: self._cde_link = "http://localhost:8080" def send(self, event: CloudEvent): diff --git a/core/cdevents/core/extensions/artifact_extension.py b/core/cdevents/core/extensions/artifact_extension.py index 6b6ebbe..fea8070 100644 --- a/core/cdevents/core/extensions/artifact_extension.py +++ b/core/cdevents/core/extensions/artifact_extension.py @@ -14,11 +14,11 @@ def __init__(self) -> None: """Initializes Artifact Extension.""" pass - def read_transformer(): + def read_transformer(self): """Read transformer.""" pass - def write_transformer(event: CloudEvent, extensions: dict) -> CloudEvent: + def write_transformer(self, event: CloudEvent, extensions: dict) -> CloudEvent: """Write transformer.""" if event._attributes["extensions"].get(ArtifactIdExtension): event._attributes["extensions"].set( diff --git a/core/cdevents/core/extensions/service_extension.py b/core/cdevents/core/extensions/service_extension.py index 44377dc..9c8aa67 100644 --- a/core/cdevents/core/extensions/service_extension.py +++ b/core/cdevents/core/extensions/service_extension.py @@ -14,11 +14,11 @@ def __init__(self) -> None: """Initializes Service Extension.""" pass - def read_transformer(): + def read_transformer(self): """Read transformer.""" pass - def write_transformer(event: CloudEvent, extensions: dict) -> CloudEvent: + def write_transformer(self, event: CloudEvent, extensions: dict) -> CloudEvent: """Write transformer.""" if event._attributes["extensions"].get(ServiceEnvIdExtension): event._attributes["extensions"].set( diff --git a/core/cdevents/core/http_handlar.py b/core/cdevents/core/http_handlar.py index dc0d130..17b8c10 100644 --- a/core/cdevents/core/http_handlar.py +++ b/core/cdevents/core/http_handlar.py @@ -42,6 +42,7 @@ class HttpHandlar: """Http Handler.""" def get_attrs( + self, headers: typing.Dict[str, str], data: typing.Union[str, bytes, None], data_unmarshaller: types.UnmarshallerType = None, @@ -81,7 +82,7 @@ def get_attrs( except json.decoder.JSONDecodeError: raise cloud_exceptions.MissingRequiredFields( "Failed to read specversion from both headers and data. " - f"The following can not be parsed as json: {data}" + f"The following can not be parsed as json: {str(data)}" ) if hasattr(raw_ce, "get"): specversion = raw_ce.get("specversion", None) @@ -112,12 +113,13 @@ def get_attrs( return attrs def event_from_http( + self, headers: typing.Dict[str, str], data: typing.Union[str, bytes, None], data_unmarshaller: types.UnmarshallerType = None, ): """Create a CDEvent from HTTP headers and data.""" - attrs = HttpHandlar.get_attrs(headers, data, data_unmarshaller) + attrs = self.get_attrs(headers, data, data_unmarshaller) event_data = attrs.pop("data", None) diff --git a/core/cdevents/core/pipelinerun.py b/core/cdevents/core/pipelinerun.py index c95b924..a32b350 100644 --- a/core/cdevents/core/pipelinerun.py +++ b/core/cdevents/core/pipelinerun.py @@ -1,5 +1,7 @@ """PipelineRun-related events.""" +from typing import Optional + from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -10,11 +12,11 @@ class PipelinerunEvent(Event): def __init__( self, pipelinerun_type: EventType, - id: str, - name: str, - status: str, - url: str, - errors: str, + id: Optional[str], + name: Optional[str], + status: Optional[str], + url: Optional[str], + errors: Optional[str], attrs=None, data: dict = {}, ): diff --git a/core/cdevents/core/repository.py b/core/cdevents/core/repository.py index dc03059..d57a44d 100644 --- a/core/cdevents/core/repository.py +++ b/core/cdevents/core/repository.py @@ -1,5 +1,7 @@ """Repository-related events.""" +from typing import Optional + from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -8,7 +10,13 @@ class RepositoryEvent(Event): """Repository Event.""" def __init__( - self, repository_type: EventType, id: str, name: str, url: str, attrs=None, data: dict = {} + self, + repository_type: EventType, + id: Optional[str], + name: Optional[str], + url: Optional[str], + attrs=None, + data: dict = {}, ): """Initializes class.""" self._event_type = repository_type diff --git a/core/cdevents/core/service.py b/core/cdevents/core/service.py index 8b7c050..9b3b130 100644 --- a/core/cdevents/core/service.py +++ b/core/cdevents/core/service.py @@ -1,5 +1,7 @@ """Service-related events.""" +from typing import Optional + from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -10,9 +12,9 @@ class ServiceEvent(Event): def __init__( self, service_type: EventType, - envid: str, - name: str, - version: str, + envid: Optional[str], + name: Optional[str], + version: Optional[str], attrs=None, data: dict = {}, ): diff --git a/core/cdevents/core/taskrun.py b/core/cdevents/core/taskrun.py index bb2157c..eae5188 100644 --- a/core/cdevents/core/taskrun.py +++ b/core/cdevents/core/taskrun.py @@ -1,5 +1,7 @@ """Taskrun-related events.""" +from typing import Optional + from cdevents.core.event import Event from cdevents.core.event_type import EventType @@ -10,9 +12,9 @@ class TaskRunEvent(Event): def __init__( self, taskrun_type: EventType, - id: str, - name: str, - pipelineid: str, + id: Optional[str], + name: Optional[str], + pipelineid: Optional[str], attrs=None, data: dict = {}, ):