Skip to content

Commit f6c791e

Browse files
committed
CCM-13278: Add Python utilities
1 parent 7750a0d commit f6c791e

34 files changed

Lines changed: 1827 additions & 0 deletions

Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ dependencies:: # Install dependencies needed to build and test the project @Pipe
1313
$(MAKE) -C src/cloudevents install
1414
$(MAKE) -C src/eventcatalogasyncapiimporter install
1515
$(MAKE) -C lambdas/mesh-acknowledge install
16+
$(MAKE) -C utils/metric-publishers install
17+
$(MAKE) -C utils/event-publisher-py install
18+
$(MAKE) -C utils/py-mock-mesh install
1619
npm install --workspaces
1720
$(MAKE) generate
1821

@@ -40,6 +43,9 @@ clean:: # Clean-up project resources (main) @Operations
4043
$(MAKE) -C src/eventcatalogasyncapiimporter clean && \
4144
$(MAKE) -C src/eventcatalogasyncapiimporter clean-output && \
4245
$(MAKE) -C lambdas/mesh-acknowledge clean && \
46+
$(MAKE) -C utils/metric-publishers clean && \
47+
$(MAKE) -C utils/event-publisher-py clean && \
48+
$(MAKE) -C utils/py-mock-mesh clean && \
4349
$(MAKE) -C src/python-schema-generator clean && \
4450
rm -f .version
4551
npm run clean

scripts/tests/unit.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@ echo "Setting up and running eventcatalogasyncapiimporter tests..."
3434
make -C ./src/eventcatalogasyncapiimporter install-dev
3535
make -C ./src/eventcatalogasyncapiimporter coverage # Run with coverage to generate coverage.xml for SonarCloud
3636

37+
# Python utility packages - event-publisher-py
38+
echo "Setting up and running event-publisher-py tests..."
39+
make -C ./utils/event-publisher-py install-dev
40+
make -C ./utils/event-publisher-py coverage # Run with coverage to generate coverage.xml for SonarCloud
41+
42+
# Python utility packages - metric-publishers
43+
echo "Setting up and running metric-publishers tests..."
44+
make -C ./utils/metric-publishers install-dev
45+
make -C ./utils/metric-publishers coverage # Run with coverage to generate coverage.xml for SonarCloud
46+
3747
# Python Lambda - mesh-acknowledge
3848
echo "Setting up and running mesh-acknowledge tests..."
3949
make -C ./lambdas/mesh-acknowledge install-dev

utils/event-publisher-py/Makefile

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
.PHONY: install install-dev test coverage clean
2+
3+
install:
4+
pip install -r requirements.txt
5+
6+
install-dev: install
7+
pip install -r requirements-dev.txt
8+
9+
test:
10+
cd ../.. && PYTHONPATH=utils/event-publisher-py:$$PYTHONPATH pytest utils/event-publisher-py/event_publisher/__tests__/ -v
11+
12+
coverage:
13+
cd ../.. && PYTHONPATH=utils/event-publisher-py:$$PYTHONPATH pytest utils/event-publisher-py/event_publisher/__tests__/ \
14+
--cov=utils/event-publisher-py/event_publisher \
15+
--cov-config=utils/event-publisher-py/pytest.ini \
16+
--cov-report=html:utils/event-publisher-py/htmlcov \
17+
--cov-report=term-missing \
18+
--cov-report=xml:utils/event-publisher-py/coverage.xml \
19+
--cov-branch
20+
21+
clean:
22+
rm -rf dist/ .coverage htmlcov/ .pytest_cache/ coverage.xml
23+
find . -type d -name __pycache__ -exec rm -rf {} +
24+
find . -type f -name '*.pyc' -delete
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
"""
2+
Event Publisher for AWS EventBridge with DLQ support.
3+
4+
This module provides a Python equivalent of the TypeScript EventPublisher
5+
for publishing CloudEvents to EventBridge.
6+
"""
7+
8+
from .event_publisher import EventPublisher
9+
from . import models
10+
from .mesh_config import (
11+
BaseMeshConfig,
12+
InvalidMeshEndpointError,
13+
InvalidEnvironmentVariableError,
14+
store_file,
15+
log
16+
)
17+
18+
__all__ = [
19+
'EventPublisher',
20+
'models',
21+
'BaseMeshConfig',
22+
'InvalidMeshEndpointError',
23+
'InvalidEnvironmentVariableError',
24+
'store_file',
25+
'log'
26+
]

0 commit comments

Comments
 (0)