chore: cleanup codebase and fix flake errors (#188)
* deps: `flake8-strict` and `flake8-import-order` are not compatible with Black and modern Python anymore Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * chore: Cleanup imports and remove obsolete `#noqa`. Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * chore: sort imports. Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * chore: Define `__all__` Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * chore: Fix licenses and add __all__ to imports. Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * chore: Fix formatting Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * chore: Export `from_http` Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * fix: Do not export functions of other modules from this one. Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * chore: Resolve more flake8 errors Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * chore: Fix more warnings Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * docs: add a note in the changelog about the fixes. Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * fix: imports in tests. Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix: more import fixes. Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * fix: use proper implementations as replacements. Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci Signed-off-by: Yurii Serhiichuk <savik.ne@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
f5bb285d96
commit
8a88ffee10
|
@ -21,6 +21,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
moved under `cloudevents.http.conversion`.
|
||||
- Deprecated `cloudevents.http.util` module.
|
||||
|
||||
### Fixed
|
||||
- Multiple PEP issues, license headers, module-level exports. ([#188])
|
||||
|
||||
|
||||
## [1.5.0] — 2022-08-06
|
||||
|
@ -199,3 +201,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
[#182]: https://github.com/cloudevents/sdk-python/pull/182
|
||||
[#184]: https://github.com/cloudevents/sdk-python/pull/184
|
||||
[#186]: https://github.com/cloudevents/sdk-python/pull/186
|
||||
[#188]: https://github.com/cloudevents/sdk-python/pull/188
|
||||
|
|
|
@ -11,29 +11,5 @@
|
|||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
__version__ = "1.5.0"
|
||||
|
|
|
@ -12,4 +12,6 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from cloudevents.abstract.event import AnyCloudEvent, CloudEvent # noqa
|
||||
from cloudevents.abstract.event import AnyCloudEvent, CloudEvent
|
||||
|
||||
__all__ = [AnyCloudEvent, CloudEvent]
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
import typing
|
||||
from abc import abstractmethod
|
||||
from typing import TypeVar
|
||||
|
||||
|
||||
class CloudEvent:
|
||||
|
@ -134,4 +133,4 @@ class CloudEvent:
|
|||
return str({"attributes": self._get_attributes(), "data": self._get_data()})
|
||||
|
||||
|
||||
AnyCloudEvent = TypeVar("AnyCloudEvent", bound=CloudEvent)
|
||||
AnyCloudEvent = typing.TypeVar("AnyCloudEvent", bound=CloudEvent)
|
||||
|
|
|
@ -11,18 +11,6 @@
|
|||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
import datetime
|
||||
import enum
|
||||
import json
|
||||
|
@ -42,10 +30,10 @@ def _best_effort_serialize_to_json(
|
|||
Serializes the given value into a JSON-encoded string.
|
||||
|
||||
Given a None value returns None as is.
|
||||
Given a non-JSON-serializable value returns return the value as is.
|
||||
Given a non-JSON-serializable value returns the value as is.
|
||||
|
||||
:param value: The value to be serialized into a JSON string.
|
||||
:return: JSON string of the given value OR None OR given value.
|
||||
:returns: JSON string of the given value OR None OR given value.
|
||||
"""
|
||||
if value is None:
|
||||
return None
|
||||
|
|
|
@ -13,17 +13,25 @@
|
|||
# under the License.
|
||||
|
||||
|
||||
from cloudevents.http.conversion import ( # noqa
|
||||
from_dict,
|
||||
from_http,
|
||||
from_json,
|
||||
from cloudevents.http.conversion import from_dict, from_http, from_json
|
||||
from cloudevents.http.event import CloudEvent
|
||||
from cloudevents.http.event_type import is_binary, is_structured # deprecated
|
||||
from cloudevents.http.http_methods import ( # deprecated
|
||||
to_binary,
|
||||
to_dict,
|
||||
to_json,
|
||||
to_binary_http,
|
||||
to_structured,
|
||||
to_structured_http,
|
||||
)
|
||||
from cloudevents.http.event import CloudEvent # noqa
|
||||
from cloudevents.http.http_methods import to_binary_http # deprecated # noqa
|
||||
from cloudevents.http.http_methods import to_structured_http # deprecated # noqa
|
||||
from cloudevents.sdk.converters.binary import is_binary # noqa
|
||||
from cloudevents.sdk.converters.structured import is_structured # noqa
|
||||
|
||||
__all__ = [
|
||||
to_binary,
|
||||
to_structured,
|
||||
from_json,
|
||||
from_http,
|
||||
from_dict,
|
||||
CloudEvent,
|
||||
is_binary,
|
||||
is_structured,
|
||||
to_binary_http,
|
||||
to_structured_http,
|
||||
]
|
||||
|
|
|
@ -1,9 +1,22 @@
|
|||
# Copyright 2018-Present The CloudEvents Authors
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import typing
|
||||
|
||||
from cloudevents.conversion import from_dict as _abstract_from_dict
|
||||
from cloudevents.conversion import from_http as _abstract_from_http
|
||||
from cloudevents.conversion import from_json as _abstract_from_json
|
||||
from cloudevents.conversion import to_binary, to_dict, to_json, to_structured # noqa
|
||||
from cloudevents.http.event import CloudEvent
|
||||
from cloudevents.sdk import types
|
||||
|
||||
|
|
|
@ -17,9 +17,9 @@ import typing
|
|||
from deprecation import deprecated
|
||||
|
||||
from cloudevents.abstract import AnyCloudEvent
|
||||
from cloudevents.conversion import to_binary as _moved_to_binary
|
||||
from cloudevents.conversion import to_structured as _moved_to_structured
|
||||
from cloudevents.http.conversion import from_http as _moved_from_http
|
||||
from cloudevents.http.conversion import to_binary as _moved_to_binary
|
||||
from cloudevents.http.conversion import to_structured as _moved_to_structured
|
||||
from cloudevents.http.event import CloudEvent
|
||||
from cloudevents.sdk import types
|
||||
|
||||
|
@ -28,7 +28,7 @@ from cloudevents.sdk import types
|
|||
|
||||
@deprecated(
|
||||
deprecated_in="1.6.0",
|
||||
details="Use cloudevents.http.to_binary function instead",
|
||||
details="Use cloudevents.conversion.to_binary function instead",
|
||||
)
|
||||
def to_binary(
|
||||
event: AnyCloudEvent, data_marshaller: types.MarshallerType = None
|
||||
|
@ -38,7 +38,7 @@ def to_binary(
|
|||
|
||||
@deprecated(
|
||||
deprecated_in="1.6.0",
|
||||
details="Use cloudevents.http.to_structured function instead",
|
||||
details="Use cloudevents.conversion.to_structured function instead",
|
||||
)
|
||||
def to_structured(
|
||||
event: AnyCloudEvent,
|
||||
|
|
|
@ -17,9 +17,9 @@ import typing
|
|||
from deprecation import deprecated
|
||||
|
||||
from cloudevents.abstract import AnyCloudEvent
|
||||
from cloudevents.conversion import to_json as _moved_to_json
|
||||
from cloudevents.http import CloudEvent
|
||||
from cloudevents.http.conversion import from_json as _moved_from_json
|
||||
from cloudevents.http.conversion import to_json as _moved_to_json
|
||||
from cloudevents.sdk import types
|
||||
|
||||
# THIS MODULE IS DEPRECATED, YOU SHOULD NOT ADD NEW FUNCTIONALLY HERE
|
||||
|
@ -27,7 +27,7 @@ from cloudevents.sdk import types
|
|||
|
||||
@deprecated(
|
||||
deprecated_in="1.6.0",
|
||||
details="Use cloudevents.http.to_json function instead",
|
||||
details="Use cloudevents.conversion.to_json function instead",
|
||||
)
|
||||
def to_json(
|
||||
event: AnyCloudEvent,
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
# under the License.
|
||||
from deprecation import deprecated
|
||||
|
||||
from cloudevents.conversion import ( # noqa
|
||||
from cloudevents.conversion import (
|
||||
_best_effort_serialize_to_json as _moved_default_marshaller,
|
||||
)
|
||||
|
||||
|
|
|
@ -11,13 +11,7 @@
|
|||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
from cloudevents.pydantic.conversion import ( # noqa
|
||||
from_dict,
|
||||
from_http,
|
||||
from_json,
|
||||
to_binary,
|
||||
to_dict,
|
||||
to_json,
|
||||
to_structured,
|
||||
)
|
||||
from cloudevents.pydantic.event import CloudEvent # noqa
|
||||
from cloudevents.pydantic.conversion import from_dict, from_http, from_json
|
||||
from cloudevents.pydantic.event import CloudEvent
|
||||
|
||||
__all__ = [CloudEvent, from_json, from_dict, from_http]
|
||||
|
|
|
@ -16,7 +16,6 @@ import typing
|
|||
from cloudevents.conversion import from_dict as _abstract_from_dict
|
||||
from cloudevents.conversion import from_http as _abstract_from_http
|
||||
from cloudevents.conversion import from_json as _abstract_from_json
|
||||
from cloudevents.conversion import to_binary, to_dict, to_json, to_structured # noqa
|
||||
from cloudevents.pydantic.event import CloudEvent
|
||||
from cloudevents.sdk import types
|
||||
|
||||
|
|
|
@ -25,7 +25,6 @@ except ImportError: # pragma: no cover # hard to test
|
|||
"Install it using pip install cloudevents[pydantic]"
|
||||
)
|
||||
|
||||
import cloudevents.conversion
|
||||
from cloudevents import abstract, conversion, http
|
||||
from cloudevents.exceptions import IncompatibleArgumentsError
|
||||
from cloudevents.sdk.event import attribute
|
||||
|
@ -74,7 +73,7 @@ def _ce_json_loads(
|
|||
"""
|
||||
# Using HTTP from dict due to performance issues.
|
||||
# Pydantic is known for initialization time lagging.
|
||||
return cloudevents.conversion.to_dict(http.from_json(data))
|
||||
return conversion.to_dict(http.from_json(data))
|
||||
|
||||
|
||||
class CloudEvent(abstract.CloudEvent, pydantic.BaseModel):
|
||||
|
|
|
@ -13,8 +13,10 @@
|
|||
# under the License.
|
||||
|
||||
from cloudevents.sdk.converters import binary, structured
|
||||
from cloudevents.sdk.converters.binary import is_binary # noqa
|
||||
from cloudevents.sdk.converters.structured import is_structured # noqa
|
||||
from cloudevents.sdk.converters.binary import is_binary
|
||||
from cloudevents.sdk.converters.structured import is_structured
|
||||
|
||||
TypeBinary = binary.BinaryHTTPCloudEventConverter.TYPE
|
||||
TypeStructured = structured.JSONHTTPCloudEventConverter.TYPE
|
||||
|
||||
__all__ = [binary, structured, is_binary, is_structured, TypeBinary, TypeStructured]
|
||||
|
|
|
@ -16,6 +16,11 @@ import typing
|
|||
|
||||
|
||||
def has_binary_headers(headers: typing.Dict[str, str]) -> bool:
|
||||
"""Determines if all CloudEvents required headers are presents
|
||||
in the `headers`.
|
||||
|
||||
:returns: True if all the headers are present, False otherwise.
|
||||
"""
|
||||
return (
|
||||
"ce-specversion" in headers
|
||||
and "ce-source" in headers
|
||||
|
|
|
@ -14,11 +14,11 @@
|
|||
|
||||
from cloudevents.sdk.event import v1, v03
|
||||
|
||||
contentType = "application/json"
|
||||
content_type = "application/json"
|
||||
ce_type = "word.found.exclamation"
|
||||
ce_id = "16fb5f0b-211e-1102-3dfe-ea6e2806f124"
|
||||
source = "pytest"
|
||||
eventTime = "2018-10-23T12:28:23.3464579Z"
|
||||
event_time = "2018-10-23T12:28:23.3464579Z"
|
||||
body = '{"name":"john"}'
|
||||
|
||||
headers = {
|
||||
|
@ -26,17 +26,17 @@ headers = {
|
|||
"ce-specversion": "1.0",
|
||||
"ce-type": ce_type,
|
||||
"ce-id": ce_id,
|
||||
"ce-time": eventTime,
|
||||
"ce-time": event_time,
|
||||
"ce-source": source,
|
||||
"Content-Type": contentType,
|
||||
"Content-Type": content_type,
|
||||
},
|
||||
v1.Event: {
|
||||
"ce-specversion": "1.0",
|
||||
"ce-type": ce_type,
|
||||
"ce-id": ce_id,
|
||||
"ce-time": eventTime,
|
||||
"ce-time": event_time,
|
||||
"ce-source": source,
|
||||
"Content-Type": contentType,
|
||||
"Content-Type": content_type,
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -45,16 +45,16 @@ json_ce = {
|
|||
"specversion": "1.0",
|
||||
"type": ce_type,
|
||||
"id": ce_id,
|
||||
"time": eventTime,
|
||||
"time": event_time,
|
||||
"source": source,
|
||||
"datacontenttype": contentType,
|
||||
"datacontenttype": content_type,
|
||||
},
|
||||
v1.Event: {
|
||||
"specversion": "1.0",
|
||||
"type": ce_type,
|
||||
"id": ce_id,
|
||||
"time": eventTime,
|
||||
"time": event_time,
|
||||
"source": source,
|
||||
"datacontenttype": contentType,
|
||||
"datacontenttype": content_type,
|
||||
},
|
||||
}
|
||||
|
|
|
@ -23,7 +23,8 @@ def dummy_event():
|
|||
|
||||
|
||||
def test_json_methods(dummy_event):
|
||||
from cloudevents.http import from_json, to_json
|
||||
from cloudevents.conversion import to_json
|
||||
from cloudevents.http.conversion import from_json
|
||||
from cloudevents.http.json_methods import from_json as deprecated_from_json
|
||||
from cloudevents.http.json_methods import to_json as deprecated_to_json
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ def test_general_binary_properties(event_class):
|
|||
assert event is not None
|
||||
assert event.type == data.ce_type
|
||||
assert event.id == data.ce_id
|
||||
assert event.content_type == data.contentType
|
||||
assert event.content_type == data.content_type
|
||||
assert event.source == data.source
|
||||
|
||||
# Test setters
|
||||
|
@ -80,7 +80,7 @@ def test_general_structured_properties(event_class):
|
|||
assert event is not None
|
||||
assert event.type == data.ce_type
|
||||
assert event.id == data.ce_id
|
||||
assert event.content_type == data.contentType
|
||||
assert event.content_type == data.content_type
|
||||
assert event.source == data.source
|
||||
|
||||
new_headers, _ = m.ToRequest(event, converters.TypeStructured, lambda x: x)
|
||||
|
|
|
@ -29,7 +29,7 @@ def test_binary_converter_upstream(event_class):
|
|||
assert event is not None
|
||||
assert event.EventType() == data.ce_type
|
||||
assert event.EventID() == data.ce_id
|
||||
assert event.ContentType() == data.contentType
|
||||
assert event.ContentType() == data.content_type
|
||||
|
||||
|
||||
@pytest.mark.parametrize("event_class", [v03.Event, v1.Event])
|
||||
|
@ -45,7 +45,7 @@ def test_structured_converter_upstream(event_class):
|
|||
assert event is not None
|
||||
assert event.EventType() == data.ce_type
|
||||
assert event.EventID() == data.ce_id
|
||||
assert event.ContentType() == data.contentType
|
||||
assert event.ContentType() == data.content_type
|
||||
|
||||
|
||||
@pytest.mark.parametrize("event_class", [v03.Event, v1.Event])
|
||||
|
@ -61,7 +61,7 @@ def test_default_http_marshaller_with_structured(event_class):
|
|||
assert event is not None
|
||||
assert event.EventType() == data.ce_type
|
||||
assert event.EventID() == data.ce_id
|
||||
assert event.ContentType() == data.contentType
|
||||
assert event.ContentType() == data.content_type
|
||||
|
||||
|
||||
@pytest.mark.parametrize("event_class", [v03.Event, v1.Event])
|
||||
|
@ -77,5 +77,5 @@ def test_default_http_marshaller_with_binary(event_class):
|
|||
assert event is not None
|
||||
assert event.EventType() == data.ce_type
|
||||
assert event.EventID() == data.ce_id
|
||||
assert event.ContentType() == data.contentType
|
||||
assert event.ContentType() == data.content_type
|
||||
assert event.Data() == data.body
|
||||
|
|
|
@ -26,11 +26,11 @@ from cloudevents.tests import data
|
|||
def test_event_pipeline_upstream(event_class):
|
||||
event = (
|
||||
event_class()
|
||||
.SetContentType(data.contentType)
|
||||
.SetContentType(data.content_type)
|
||||
.SetData(data.body)
|
||||
.SetEventID(data.ce_id)
|
||||
.SetSource(data.source)
|
||||
.SetEventTime(data.eventTime)
|
||||
.SetEventTime(data.event_time)
|
||||
.SetEventType(data.ce_type)
|
||||
)
|
||||
m = marshaller.NewDefaultHTTPMarshaller()
|
||||
|
@ -74,17 +74,17 @@ def test_object_event_v1():
|
|||
|
||||
m = marshaller.NewDefaultHTTPMarshaller()
|
||||
|
||||
_, structuredBody = m.ToRequest(event)
|
||||
assert isinstance(structuredBody, bytes)
|
||||
structuredObj = json.loads(structuredBody)
|
||||
errorMsg = f"Body was {structuredBody}, obj is {structuredObj}"
|
||||
assert isinstance(structuredObj, dict), errorMsg
|
||||
assert isinstance(structuredObj["data"], dict), errorMsg
|
||||
assert len(structuredObj["data"]) == 1, errorMsg
|
||||
assert structuredObj["data"]["name"] == "john", errorMsg
|
||||
_, structured_body = m.ToRequest(event)
|
||||
assert isinstance(structured_body, bytes)
|
||||
structured_obj = json.loads(structured_body)
|
||||
error_msg = f"Body was {structured_body}, obj is {structured_obj}"
|
||||
assert isinstance(structured_obj, dict), error_msg
|
||||
assert isinstance(structured_obj["data"], dict), error_msg
|
||||
assert len(structured_obj["data"]) == 1, error_msg
|
||||
assert structured_obj["data"]["name"] == "john", error_msg
|
||||
|
||||
headers, binaryBody = m.ToRequest(event, converters.TypeBinary)
|
||||
headers, binary_body = m.ToRequest(event, converters.TypeBinary)
|
||||
assert isinstance(headers, dict)
|
||||
assert isinstance(binaryBody, bytes)
|
||||
assert isinstance(binary_body, bytes)
|
||||
assert headers["content-type"] == "application/json"
|
||||
assert binaryBody == b'{"name": "john"}', f"Binary is {binaryBody!r}"
|
||||
assert binary_body == b'{"name": "john"}', f"Binary is {binary_body!r}"
|
||||
|
|
|
@ -33,7 +33,7 @@ def test_binary_event_to_request_upstream(event_class):
|
|||
assert event is not None
|
||||
assert event.EventType() == data.ce_type
|
||||
assert event.EventID() == data.ce_id
|
||||
assert event.ContentType() == data.contentType
|
||||
assert event.ContentType() == data.content_type
|
||||
|
||||
new_headers, _ = m.ToRequest(event, converters.TypeBinary, lambda x: x)
|
||||
assert new_headers is not None
|
||||
|
@ -50,7 +50,7 @@ def test_structured_event_to_request_upstream(event_class):
|
|||
assert event is not None
|
||||
assert event.EventType() == data.ce_type
|
||||
assert event.EventID() == data.ce_id
|
||||
assert event.ContentType() == data.contentType
|
||||
assert event.ContentType() == data.content_type
|
||||
|
||||
new_headers, _ = m.ToRequest(event, converters.TypeStructured, lambda x: x)
|
||||
for key in new_headers:
|
||||
|
|
|
@ -18,7 +18,8 @@ import json
|
|||
|
||||
import pytest
|
||||
|
||||
from cloudevents.http import CloudEvent, from_dict, from_json, to_dict, to_json
|
||||
from cloudevents.conversion import to_dict, to_json
|
||||
from cloudevents.http import CloudEvent, from_dict, from_json
|
||||
from cloudevents.sdk.event.attribute import SpecVersion
|
||||
|
||||
test_data = json.dumps({"data-key": "val"})
|
||||
|
|
|
@ -398,10 +398,10 @@ def test_cloudevent_repr(specversion):
|
|||
"ce-source": "<source-url>",
|
||||
}
|
||||
event = from_http(headers, "")
|
||||
# Testing to make sure event is printable. I could runevent. __repr__() but
|
||||
# Testing to make sure event is printable. I could run event. __repr__() but
|
||||
# we had issues in the past where event.__repr__() could run but
|
||||
# print(event) would fail.
|
||||
print(event)
|
||||
print(event) # noqa T201
|
||||
|
||||
|
||||
@pytest.mark.parametrize("specversion", ["1.0", "0.3"])
|
||||
|
|
|
@ -18,7 +18,8 @@ import json
|
|||
|
||||
import pytest
|
||||
|
||||
from cloudevents.pydantic import CloudEvent, from_dict, from_json, to_json
|
||||
from cloudevents.conversion import to_json
|
||||
from cloudevents.pydantic import CloudEvent, from_dict, from_json
|
||||
from cloudevents.sdk.event.attribute import SpecVersion
|
||||
|
||||
test_data = json.dumps({"data-key": "val"})
|
||||
|
|
|
@ -20,7 +20,8 @@ import pytest
|
|||
from sanic import Sanic, response
|
||||
|
||||
import cloudevents.exceptions as cloud_exceptions
|
||||
from cloudevents.pydantic import CloudEvent, from_http, to_binary, to_structured
|
||||
from cloudevents.conversion import to_binary, to_structured
|
||||
from cloudevents.pydantic import CloudEvent, from_http
|
||||
from cloudevents.sdk import converters
|
||||
from cloudevents.sdk.converters.binary import is_binary
|
||||
from cloudevents.sdk.converters.structured import is_structured
|
||||
|
@ -81,7 +82,6 @@ async def echo(request):
|
|||
@pytest.mark.parametrize("body", invalid_cloudevent_request_body)
|
||||
def test_missing_required_fields_structured(body):
|
||||
with pytest.raises(cloud_exceptions.MissingRequiredFields):
|
||||
|
||||
_ = from_http(
|
||||
{"Content-Type": "application/cloudevents+json"}, json.dumps(body)
|
||||
)
|
||||
|
@ -186,7 +186,6 @@ def test_missing_ce_prefix_binary_event(specversion):
|
|||
"ce-specversion": specversion,
|
||||
}
|
||||
for key in headers:
|
||||
|
||||
# breaking prefix e.g. e-id instead of ce-id
|
||||
prefixed_headers[key[1:]] = headers[key]
|
||||
|
||||
|
@ -383,10 +382,10 @@ def test_cloudevent_repr(specversion):
|
|||
"ce-source": "<source-url>",
|
||||
}
|
||||
event = from_http(headers, "")
|
||||
# Testing to make sure event is printable. I could runevent. __repr__() but
|
||||
# Testing to make sure event is printable. I could run event. __repr__() but
|
||||
# we had issues in the past where event.__repr__() could run but
|
||||
# print(event) would fail.
|
||||
print(event)
|
||||
print(event) # noqa T201
|
||||
|
||||
|
||||
@pytest.mark.parametrize("specversion", ["1.0", "0.3"])
|
||||
|
|
|
@ -2,8 +2,6 @@ black
|
|||
isort
|
||||
flake8
|
||||
pep8-naming
|
||||
flake8-import-order
|
||||
flake8-print
|
||||
flake8-strict
|
||||
tox
|
||||
pre-commit
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
flake8
|
||||
pep8-naming
|
||||
flake8-import-order
|
||||
flake8-print
|
||||
flake8-strict
|
||||
pytest
|
||||
pytest-cov
|
||||
# web app tests
|
||||
|
|
Loading…
Reference in New Issue