From 8d77bd2a520b34f94157f4fea0208ba67fd45198 Mon Sep 17 00:00:00 2001 From: Matan <51418643+matan84@users.noreply.github.com> Date: Tue, 31 Dec 2024 17:20:14 +0200 Subject: [PATCH] [Core] Added None type for wrapper (#1279) # Description What - lint fix Why - pipeline fails for two resync kinds on one resource How - add none as possible value ## Type of change Please leave one option from the following and delete the rest: - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] New Integration (non-breaking change which adds a new integration) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] Non-breaking change (fix of existing functionality that will not change current behavior) - [ ] Documentation (added/updated documentation)

All tests should be run against the port production environment(using a testing org).

### Core testing checklist - [ ] Integration able to create all default resources from scratch - [ ] Resync finishes successfully - [ ] Resync able to create entities - [ ] Resync able to update entities - [ ] Resync able to detect and delete entities - [ ] Scheduled resync able to abort existing resync and start a new one - [ ] Tested with at least 2 integrations from scratch - [ ] Tested with Kafka and Polling event listeners - [ ] Tested deletion of entities that don't pass the selector ### Integration testing checklist - [ ] Integration able to create all default resources from scratch - [ ] Resync able to create entities - [ ] Resync able to update entities - [ ] Resync able to detect and delete entities - [ ] Resync finishes successfully - [ ] If new resource kind is added or updated in the integration, add example raw data, mapping and expected result to the `examples` folder in the integration directory. - [ ] If resource kind is updated, run the integration with the example data and check if the expected result is achieved - [ ] If new resource kind is added or updated, validate that live-events for that resource are working as expected - [ ] Docs PR link [here](#) ### Preflight checklist - [ ] Handled rate limiting - [ ] Handled pagination - [ ] Implemented the code in async - [ ] Support Multi account ## Screenshots Include screenshots from your environment showing how the resources of the integration will look. ## API Documentation Provide links to the API documentation used for this integration. --- CHANGELOG.md | 8 ++++++++ port_ocean/context/ocean.py | 4 +++- port_ocean/core/integrations/mixins/events.py | 4 +++- pyproject.toml | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b9cc13fc6..aea86a3f1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.17.1 (2024-12-31) + + +### Bug Fixes + +- Fixed lint failure for resources that have two `on_resync` decorators + + ## 0.17.0 (2024-12-31) diff --git a/port_ocean/context/ocean.py b/port_ocean/context/ocean.py index c9d37f37db..a414568c13 100644 --- a/port_ocean/context/ocean.py +++ b/port_ocean/context/ocean.py @@ -74,7 +74,9 @@ def on_resync( self, kind: str | None = None, ) -> Callable[[RESYNC_EVENT_LISTENER], RESYNC_EVENT_LISTENER | None]: - def wrapper(function: RESYNC_EVENT_LISTENER) -> RESYNC_EVENT_LISTENER | None: + def wrapper( + function: RESYNC_EVENT_LISTENER | None, + ) -> RESYNC_EVENT_LISTENER | None: if not self.app.config.event_listener.should_resync: logger.debug( "Webhook only event listener is used, resync events are ignored" diff --git a/port_ocean/core/integrations/mixins/events.py b/port_ocean/core/integrations/mixins/events.py index c422d05458..b760c86a85 100644 --- a/port_ocean/core/integrations/mixins/events.py +++ b/port_ocean/core/integrations/mixins/events.py @@ -46,7 +46,7 @@ def on_start(self, func: START_EVENT_LISTENER) -> START_EVENT_LISTENER: return func def on_resync( - self, func: RESYNC_EVENT_LISTENER, kind: str | None = None + self, func: RESYNC_EVENT_LISTENER| None, kind: str | None = None ) -> RESYNC_EVENT_LISTENER: """Register a function as a listener for a "resync" event. @@ -57,6 +57,8 @@ def on_resync( Returns: RESYNC_EVENT_LISTENER: The input function, unchanged. """ + if func is None: + return None if kind is None: logger.debug(f"Registering resync event listener any kind") else: diff --git a/pyproject.toml b/pyproject.toml index d991bc34d0..61268f0d55 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "port-ocean" -version = "0.17.0" +version = "0.17.1" description = "Port Ocean is a CLI tool for managing your Port projects." readme = "README.md" homepage = "https://app.getport.io"