From 75a79dd7cd8e28819155ae356b0f1a1a2b619485 Mon Sep 17 00:00:00 2001 From: Client Date: Thu, 19 Nov 2020 22:39:43 +0000 Subject: [PATCH] PubNub SDK v4.7.0 release. --- .pubnub.yml | 8 +- CHANGELOG.md | 6 + README.md | 84 +++++++++- pubnub/endpoints/access/grant.py | 22 ++- pubnub/endpoints/endpoint.py | 14 +- .../file_operations/publish_file_message.py | 15 +- pubnub/endpoints/file_operations/send_file.py | 9 +- pubnub/endpoints/mixins.py | 35 ++++ pubnub/endpoints/presence/get_state.py | 2 +- pubnub/endpoints/presence/set_state.py | 5 + pubnub/endpoints/presence/where_now.py | 2 +- pubnub/endpoints/pubsub/publish.py | 29 ++-- pubnub/endpoints/pubsub/subscribe.py | 4 +- pubnub/endpoints/validators.py | 10 -- pubnub/managers.py | 2 + pubnub/pubnub_core.py | 2 +- scripts/install.sh | 7 +- scripts/run-tests.py | 4 +- setup.py | 2 +- tests/functional/test_subscribe.py | 8 + .../publish_file_message_encrypted.yaml | 10 +- .../native_sync/file_upload/delete_file.yaml | 105 ++++++------ .../file_upload/download_file.yaml | 125 +++++++------- .../file_upload/download_file_encrypted.yaml | 152 +++++++++--------- .../native_sync/file_upload/download_url.yaml | 109 +++++++------ .../file_upload/publish_file_message.yaml | 8 +- .../publish_file_message_encrypted.yaml | 8 +- .../publish_file_message_with_ptto.yaml | 36 +++++ .../file_upload/send_file_with_ptto.yaml | 150 +++++++++++++++++ .../native_sync/pam/grant_with_spaces.yaml | 40 +++++ .../publish_with_ptto_and_replicate.yaml | 36 +++++ .../native_threads/file_upload/send_file.yaml | 101 ++++++------ ...wnload_file.yaml => test_delete_file.yaml} | 6 +- .../file_upload/test_get_file_url.yaml | 10 +- .../test_publish_file_message.yaml | 8 +- .../test_send_and_download_files.yaml | 26 +-- .../native_sync/test_file_upload.py | 41 ++++- tests/integrational/native_sync/test_grant.py | 21 +++ .../integrational/native_sync/test_publish.py | 20 ++- .../native_threads/test_file_upload.py | 2 +- 40 files changed, 901 insertions(+), 383 deletions(-) create mode 100644 pubnub/endpoints/mixins.py delete mode 100644 pubnub/endpoints/validators.py create mode 100644 tests/integrational/fixtures/native_sync/file_upload/publish_file_message_with_ptto.yaml create mode 100644 tests/integrational/fixtures/native_sync/file_upload/send_file_with_ptto.yaml create mode 100644 tests/integrational/fixtures/native_sync/pam/grant_with_spaces.yaml create mode 100644 tests/integrational/fixtures/native_sync/publish/publish_with_ptto_and_replicate.yaml rename tests/integrational/fixtures/native_threads/file_upload/{test_download_file.yaml => test_delete_file.yaml} (72%) create mode 100644 tests/integrational/native_sync/test_grant.py diff --git a/.pubnub.yml b/.pubnub.yml index 2e046c48..7f5c6f71 100644 --- a/.pubnub.yml +++ b/.pubnub.yml @@ -1,8 +1,14 @@ name: python -version: 4.6.1 +version: 4.7.0 schema: 1 scm: github.com/pubnub/python changelog: + - version: v4 + date: Nov 19, 2020 + changes: + - + text: "Within this release problems with double PAM calls encoding and Publish oriented bugs were fixed." + type: bug - version: v4.6.1 date: Oct 27, 2020 changes: diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a7284ec..7e5bbcc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## [v4](https://github.com/pubnub/python/releases/tag/v4) + +[Full Changelog](https://github.com/pubnub/python/compare/v4.6.1...v4) + +- 🐛 Within this release problems with double PAM calls encoding and Publish oriented bugs were fixed. + ## [v4.6.1](https://github.com/pubnub/python/releases/tag/v4.6.1) [Full Changelog](https://github.com/pubnub/python/compare/v4.6.0...v4.6.1) diff --git a/README.md b/README.md index ce184878..ed26410c 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,92 @@ # PubNub Python SDK (V4) + [![Build Status](https://travis-ci.org/pubnub/python.svg?branch=master)](https://travis-ci.org/pubnub/python) [![codecov](https://codecov.io/gh/pubnub/python/branch/master/graph/badge.svg)](https://codecov.io/gh/pubnub/python) [![PyPI](https://img.shields.io/pypi/v/pubnub.svg)](https://pypi.python.org/pypi/pubnub/) [![PyPI](https://img.shields.io/pypi/pyversions/pubnub.svg)](https://pypi.python.org/pypi/pubnub/) [![Docs](https://img.shields.io/badge/docs-online-blue.svg)](https://www.pubnub.com/docs/python/pubnub-python-sdk-v4) -The SDK supports Python 2.7, 3.4, 3.5, 3.6, 3.7 and pypy. +This is the official PubNub Python SDK repository. + +PubNub takes care of the infrastructure and APIs needed for the realtime communication layer of your application. Work on your app's logic and let PubNub handle sending and receiving data across the world in less than 100ms. + +## Get keys + +You will need the publish and subscribe keys to authenticate your app. Get your keys from the [Admin Portal](https://dashboard.pubnub.com/login). + +## Configure PubNub + +1. Integrate the Python SDK into your project using `pip`: + + ```bash + pip install pubnub + ``` + +2. Configure your keys: + + ```python + pnconfig = PNConfiguration() + + pnconfig.subscribe_key = 'mySubscribeKey' + pnconfig.publish_key = 'myPublishKey' + pnconfig.uuid = 'myUniqueUUID' + pubnub = PubNub(pnconfig) + ``` + +## Add event listeners + +```python +class SubscribeHandler(SubscribeCallback): + def status(self, pubnub, event): + print("Is there an error? ", event.is_error()) + print("Status value for category: %s" % event.category) + print("Status value for error_data: %s" % event.error_data) + print("Status value for error: %s" % event.error) + print("Status value for status_code: %s" % event.status_code) + print("Status value for operation: %s" % event.operation) + print("Status value for tls_enabled: %s" % event.tls_enabled) + print("Status value for uuid: %s" % event.uuid) + print("Status value for auth_key: %s" % event.auth_key) + print("Status value for origin: %s" % event.origin) + print("Status value for client_request: %s" % event.client_request) + print("Status value for client_response: %s" % event.client_response) + print("Status value for original_response: %s" % event.original_response) + print("Status value for affected_channels: %s" % event.affected_channels) + print("Status value for affected_groups: %s" % event.affected_groups) + + def presence(self, pubnub, presence): + pass # Handle incoming presence data + + def message(self, pubnub, message): + pass # Handle incoming messages + + def signal(self, pubnub, signal): + pass # Handle incoming signals + +pubnub.add_listener(SubscribeHandler()) +``` + +## Publish/subscribe + +```python +def my_publish_callback(envelope, status): + if status.is_error(): + ... #handle error here + else: + ... #handle result here + +pubnub.publish().channel('my_channel').message('Hello world!').pn_async(my_publish_callback) + +pubnub.subscribe().channels('my_channel').execute() +``` ## Documentation -Please review our documentation and examples on the [PubNub Website](https://www.pubnub.com/docs/python/pubnub-python-sdk-v4) +* [Build your first realtime Python app with PubNub](https://www.pubnub.com/docs/platform/quickstarts/python) +* [API reference for Python](https://www.pubnub.com/docs/python/pubnub-python-sdk) +* [API reference for Python (Tornado)](https://www.pubnub.com/docs/python-tornado/pubnub-python-sdk) +* [API reference for Python (asyncio)](https://www.pubnub.com/docs/python-aiohttp/pubnub-python-sdk) -## Communication +## Support -- If you **need help** or have a **general question**, contact +If you **need help** or have a **general question**, contact support@pubnub.com. diff --git a/pubnub/endpoints/access/grant.py b/pubnub/endpoints/access/grant.py index 1ebe70ae..477cb9cf 100644 --- a/pubnub/endpoints/access/grant.py +++ b/pubnub/endpoints/access/grant.py @@ -54,6 +54,20 @@ def ttl(self, ttl): self._ttl = ttl return self + def encoded_params(self): + params = {} + + if self._auth_keys: + params['auth'] = utils.join_items_and_encode(self._auth_keys) + + if self._channels: + params['channel'] = utils.join_channels(self._channels) + + if self._groups: + params['channel-group'] = utils.join_items_and_encode(self._groups) + + return params + def custom_params(self): params = {} @@ -66,13 +80,13 @@ def custom_params(self): if self._delete is not None: params['d'] = '1' if self._delete is True else '0' - if len(self._auth_keys) > 0: - params['auth'] = utils.join_items_and_encode(self._auth_keys) + if self._auth_keys: + params['auth'] = utils.join_items(self._auth_keys) - if len(self._channels) > 0: + if self._channels: params['channel'] = utils.join_items(self._channels) - if len(self._groups) > 0: + if self._groups: params['channel-group'] = utils.join_items(self._groups) if self._ttl is not None: diff --git a/pubnub/endpoints/endpoint.py b/pubnub/endpoints/endpoint.py index 22994809..04dc5132 100644 --- a/pubnub/endpoints/endpoint.py +++ b/pubnub/endpoints/endpoint.py @@ -3,7 +3,7 @@ import logging from pubnub import utils -from pubnub.enums import PNStatusCategory, PNOperationType +from pubnub.enums import PNStatusCategory from pubnub.errors import ( PNERR_SUBSCRIBE_KEY_MISSING, PNERR_PUBLISH_KEY_MISSING, PNERR_CHANNEL_OR_GROUP_MISSING, PNERR_SECRET_KEY_MISSING, PNERR_CHANNEL_MISSING, PNERR_FILE_OBJECT_MISSING, @@ -99,6 +99,9 @@ def build_file_upload_request(self): def non_json_response(self): return False + def encoded_params(self): + return {} + def options(self): return RequestOptions( path=self.build_path(), @@ -171,7 +174,6 @@ def handler(): def build_params_callback(self): def callback(params_to_merge): - operation_type = self.operation_type() custom_params = self.custom_params() custom_params.update(params_to_merge) @@ -196,11 +198,7 @@ def callback(params_to_merge): if self.pubnub.config.secret_key is not None: utils.sign_request(self, self.pubnub, custom_params, self.http_method(), self.build_data()) - # REVIEW: add encoder map to not hardcode encoding here - if operation_type == PNOperationType.PNPublishOperation and 'meta' in custom_params: - custom_params['meta'] = utils.url_encode(custom_params['meta']) - if operation_type == PNOperationType.PNSetStateOperation and 'state' in custom_params: - custom_params['state'] = utils.url_encode(custom_params['state']) + custom_params.update(self.encoded_params()) # reassign since pnsdk should be signed unencoded custom_params['pnsdk'] = utils.url_encode(self.pubnub.sdk_name) @@ -268,7 +266,7 @@ def create_status(self, category, response, response_info, exception): pn_status.operation = self.operation_type() pn_status.category = category pn_status.affected_channels = self.affected_channels() - pn_status.affected_channels_groups = self.affected_channels_groups() + pn_status.affected_groups = self.affected_channels_groups() return pn_status diff --git a/pubnub/endpoints/file_operations/publish_file_message.py b/pubnub/endpoints/file_operations/publish_file_message.py index 1c126f8d..a5d2deaa 100644 --- a/pubnub/endpoints/file_operations/publish_file_message.py +++ b/pubnub/endpoints/file_operations/publish_file_message.py @@ -2,13 +2,14 @@ from pubnub.enums import HttpMethod, PNOperationType from pubnub import utils from pubnub.models.consumer.file import PNPublishFileMessageResult +from pubnub.endpoints.mixins import TimeTokenOverrideMixin -class PublishFileMessage(FileOperationEndpoint): +class PublishFileMessage(FileOperationEndpoint, TimeTokenOverrideMixin): PUBLISH_FILE_MESSAGE = "/v1/files/publish-file/%s/%s/0/%s/0/%s" def __init__(self, pubnub): - FileOperationEndpoint.__init__(self, pubnub) + super(PublishFileMessage, self).__init__(pubnub) self._file_id = None self._file_name = None self._pubnub = pubnub @@ -17,6 +18,8 @@ def __init__(self, pubnub): self._ttl = 0 self._meta = None self._cipher_key = None + self._replicate = None + self._ptto = None def meta(self, meta): self._meta = meta @@ -79,11 +82,13 @@ def http_method(self): return HttpMethod.GET def custom_params(self): - return { + params = TimeTokenOverrideMixin.custom_params(self) + params.update({ "meta": utils.url_write(self._meta), "ttl": self._ttl, - "store": self._should_store - } + "store": 1 if self._should_store else 0 + }) + return params def is_auth_required(self): return True diff --git a/pubnub/endpoints/file_operations/send_file.py b/pubnub/endpoints/file_operations/send_file.py index d95386ff..e7ba89b6 100644 --- a/pubnub/endpoints/file_operations/send_file.py +++ b/pubnub/endpoints/file_operations/send_file.py @@ -7,11 +7,12 @@ from pubnub.endpoints.file_operations.publish_file_message import PublishFileMessage from pubnub.endpoints.file_operations.fetch_upload_details import FetchFileUploadS3Data from pubnub.request_handlers.requests_handler import RequestsRequestHandler +from pubnub.endpoints.mixins import TimeTokenOverrideMixin -class SendFileNative(FileOperationEndpoint): +class SendFileNative(FileOperationEndpoint, TimeTokenOverrideMixin): def __init__(self, pubnub): - FileOperationEndpoint.__init__(self, pubnub) + super(SendFileNative, self).__init__(pubnub) self._file_name = None self._pubnub = pubnub self._file_upload_envelope = None @@ -21,6 +22,8 @@ def __init__(self, pubnub): self._meta = None self._cipher_key = None self._file_object = None + self._replicate = None + self._ptto = None def file_object(self, fd): self._file_object = fd @@ -128,6 +131,8 @@ def sync(self): file_name(response_envelope.result.name).\ should_store(self._should_store).\ ttl(self._ttl).\ + replicate(self._replicate).\ + ptto(self._ptto).\ cipher_key(self._cipher_key).sync() response_envelope.result.timestamp = publish_file_response.result.timestamp diff --git a/pubnub/endpoints/mixins.py b/pubnub/endpoints/mixins.py new file mode 100644 index 00000000..9d4a22d4 --- /dev/null +++ b/pubnub/endpoints/mixins.py @@ -0,0 +1,35 @@ +import six + +from pubnub.errors import PNERR_UUID_MISSING +from pubnub.exceptions import PubNubException + + +class UUIDValidatorMixin: + def validate_uuid(self): + if self._uuid is None or not isinstance(self._uuid, six.string_types): + raise PubNubException(pn_error=PNERR_UUID_MISSING) + + +class TimeTokenOverrideMixin: + def replicate(self, replicate): + self._replicate = replicate + return self + + def ptto(self, timetoken): + if timetoken: + assert isinstance(timetoken, six.integer_types) + self._ptto = timetoken + return self + + def custom_params(self): + params = {} + if self._replicate is not None: + if self._replicate: + params["norep"] = "false" + else: + params["norep"] = "true" + + if self._ptto: + params["ptto"] = self._ptto + + return params diff --git a/pubnub/endpoints/presence/get_state.py b/pubnub/endpoints/presence/get_state.py index d557ee5f..29169cf8 100644 --- a/pubnub/endpoints/presence/get_state.py +++ b/pubnub/endpoints/presence/get_state.py @@ -2,7 +2,7 @@ from pubnub.endpoints.endpoint import Endpoint from pubnub.enums import HttpMethod, PNOperationType from pubnub.models.consumer.presence import PNGetStateResult -from pubnub.endpoints.validators import UUIDValidatorMixin +from pubnub.endpoints.mixins import UUIDValidatorMixin class GetState(Endpoint, UUIDValidatorMixin): diff --git a/pubnub/endpoints/presence/set_state.py b/pubnub/endpoints/presence/set_state.py index 9e6c259d..984ecba1 100644 --- a/pubnub/endpoints/presence/set_state.py +++ b/pubnub/endpoints/presence/set_state.py @@ -30,6 +30,11 @@ def state(self, state): self._state = state return self + def encoded_params(self): + return { + "state": utils.url_write(self._state) + } + def custom_params(self): if self._subscription_manager is not None: self._subscription_manager.adapt_state_builder(StateOperation( diff --git a/pubnub/endpoints/presence/where_now.py b/pubnub/endpoints/presence/where_now.py index fa7df404..34f124f5 100644 --- a/pubnub/endpoints/presence/where_now.py +++ b/pubnub/endpoints/presence/where_now.py @@ -2,7 +2,7 @@ from pubnub.endpoints.endpoint import Endpoint from pubnub.enums import HttpMethod, PNOperationType from pubnub.models.consumer.presence import PNWhereNowResult -from pubnub.endpoints.validators import UUIDValidatorMixin +from pubnub.endpoints.mixins import UUIDValidatorMixin class WhereNow(Endpoint, UUIDValidatorMixin): diff --git a/pubnub/endpoints/pubsub/publish.py b/pubnub/endpoints/pubsub/publish.py index 3a495e06..ae07d6ec 100644 --- a/pubnub/endpoints/pubsub/publish.py +++ b/pubnub/endpoints/pubsub/publish.py @@ -4,21 +4,23 @@ from pubnub.exceptions import PubNubException from pubnub.models.consumer.pubsub import PNPublishResult from pubnub.enums import HttpMethod, PNOperationType +from pubnub.endpoints.mixins import TimeTokenOverrideMixin -class Publish(Endpoint): +class Publish(Endpoint, TimeTokenOverrideMixin): # /publish//////[?argument(s)] PUBLISH_GET_PATH = "/publish/%s/%s/0/%s/%s/%s" PUBLISH_POST_PATH = "/publish/%s/%s/0/%s/%s" def __init__(self, pubnub): - Endpoint.__init__(self, pubnub) + super(Publish, self).__init__(pubnub) self._channel = None self._message = None self._should_store = None - self._replicate = None self._use_post = None self._meta = None + self._replicate = None + self._ptto = None def channel(self, channel): self._channel = str(channel) @@ -32,10 +34,6 @@ def use_post(self, use_post): self._use_post = bool(use_post) return self - def replicate(self, replicate): - self._replicate = bool(replicate) - return self - def should_store(self, should_store): self._should_store = bool(should_store) return self @@ -54,10 +52,18 @@ def build_data(self): else: return None + def encoded_params(self): + if self._meta: + return { + "meta": utils.url_write(self._meta) + } + else: + return {} + def custom_params(self): - params = {} + params = TimeTokenOverrideMixin.custom_params(self) - if self._meta is not None: + if self._meta: params['meta'] = utils.write_value_as_string(self._meta) if self._should_store is not None: @@ -66,11 +72,6 @@ def custom_params(self): else: params["store"] = "0" - if self._replicate is not None: - if self._replicate: - params["norep"] = "0" - else: - params["norep"] = "1" # REVIEW: should auth key be assigned here? if self.pubnub.config.auth_key is not None: params["auth"] = utils.url_encode(self.pubnub.config.auth_key) diff --git a/pubnub/endpoints/pubsub/subscribe.py b/pubnub/endpoints/pubsub/subscribe.py index b00f4adb..5f5300bd 100644 --- a/pubnub/endpoints/pubsub/subscribe.py +++ b/pubnub/endpoints/pubsub/subscribe.py @@ -84,10 +84,10 @@ def is_auth_required(self): return True def affected_channels(self): - return None + return self._channels def affected_channels_groups(self): - return None + return self._groups def request_timeout(self): return self.pubnub.config.subscribe_request_timeout diff --git a/pubnub/endpoints/validators.py b/pubnub/endpoints/validators.py deleted file mode 100644 index 01975ab1..00000000 --- a/pubnub/endpoints/validators.py +++ /dev/null @@ -1,10 +0,0 @@ -import six - -from pubnub.errors import PNERR_UUID_MISSING -from pubnub.exceptions import PubNubException - - -class UUIDValidatorMixin: - def validate_uuid(self): - if self._uuid is None or not isinstance(self._uuid, six.string_types): - raise PubNubException(pn_error=PNERR_UUID_MISSING) diff --git a/pubnub/managers.py b/pubnub/managers.py index 3c26e3ac..bbf9740b 100644 --- a/pubnub/managers.py +++ b/pubnub/managers.py @@ -354,6 +354,8 @@ def _handle_endpoint_call(self, raw_result, status): pn_status.client_request = status.client_request pn_status.origin = status.origin pn_status.tls_enabled = status.tls_enabled + pn_status.affected_channels = status.affected_channels + pn_status.affected_groups = status.affected_groups self._subscription_status_announced = True self._listener_manager.announce_status(pn_status) diff --git a/pubnub/pubnub_core.py b/pubnub/pubnub_core.py index 24614638..666c55c2 100644 --- a/pubnub/pubnub_core.py +++ b/pubnub/pubnub_core.py @@ -63,7 +63,7 @@ class PubNubCore: """A base class for PubNub Python API implementations""" - SDK_VERSION = "4.6.1" + SDK_VERSION = "4.7.0" SDK_NAME = "PubNub-Python" TIMESTAMP_DIVIDER = 1000 diff --git a/scripts/install.sh b/scripts/install.sh index b0d60c6e..1bdf69f5 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -4,6 +4,9 @@ pip install -r requirements-dev.txt if [[ $TRAVIS_PYTHON_VERSION == 2.7* ]]; then pip install -r requirements27-dev.txt; fi if [[ $TRAVIS_PYTHON_VERSION == 3.4* ]]; then pip install -r requirements34-dev.txt; fi if [[ $TRAVIS_PYTHON_VERSION == 3.5* ]]; then pip install -r requirements35-dev.txt; fi -if [[ $TRAVIS_PYTHON_VERSION == 3.6* ]]; then pip install -r requirements36-dev.txt; fi +if [[ $TRAVIS_PYTHON_VERSION == 3.6* ]]; then + pip install -r requirements36-dev.txt; + pip install keyring==21.4.0 +fi if [[ $TRAVIS_PYTHON_VERSION == "nightly" ]]; then pip install -r requirements36-dev.txt; fi -if [[ $TRAVIS_PYTHON_VERSION == "pypy" ]]; then pip install -r requirements-pypy-dev.txt; fi +if [[ $TRAVIS_PYTHON_VERSION == "pypy" ]]; then pip install -r requirements-pypy-dev.txt; fi \ No newline at end of file diff --git a/scripts/run-tests.py b/scripts/run-tests.py index aa21ff3c..f0e01f7e 100755 --- a/scripts/run-tests.py +++ b/scripts/run-tests.py @@ -31,8 +31,8 @@ def run(command): run("%s,*asyncio*,*python_v35*,examples/" % fcmn) run('%s --ignore=tests/integrational/asyncio/ --ignore=tests/integrational/twisted/ --ignore=tests/integrational/python_v35/' % tcmn) elif version.startswith('3.4'): - run("%s,*python_v35*,examples" % fcmn) - run('%s--ignore=tests/integrational/python_v35/ --ignore=tests/integrational/twisted/' % tcmn) + run("%s,*python_v35*,examples" % fcmn) # File upload with threading scenario temporarily disabled. Investigation within SDK-180. + run('%s--ignore=tests/integrational/python_v35/ --ignore=tests/integrational/twisted/ --ignore=tests/integrational/native_threads/test_file_upload.py --ignore=tests/integrational/asyncio/test_file_upload.py' % tcmn) elif version.startswith('3.5'): run(fcmn) run('%s--ignore=tests/integrational/twisted/' % tcmn) diff --git a/setup.py b/setup.py index fff89ee4..0401021b 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name='pubnub', - version='4.6.1', + version='4.7.0', description='PubNub Real-time push service in the cloud', author='PubNub', author_email='support@pubnub.com', diff --git a/tests/functional/test_subscribe.py b/tests/functional/test_subscribe.py index 38f35c7d..96ef4999 100644 --- a/tests/functional/test_subscribe.py +++ b/tests/functional/test_subscribe.py @@ -132,3 +132,11 @@ def test_sub_multiple(self): self.assertEqual(self.sub._groups, []) self.assertEqual(self.sub._channels, ['ch1', 'ch2']) + + def test_affected_channels_returns_provided_channels(self): + self.sub.channels(('ch1', 'ch2', 'ch3')) + self.assertEqual(self.sub.affected_channels(), ['ch1', 'ch2', 'ch3']) + + def test_affected_channel_groups_returns_provided_channels(self): + self.sub.channel_groups(('ch1', 'ch2', 'ch3')) + self.assertEqual(self.sub.affected_channels_groups(), ['ch1', 'ch2', 'ch3']) diff --git a/tests/integrational/fixtures/asyncio/file_upload/publish_file_message_encrypted.yaml b/tests/integrational/fixtures/asyncio/file_upload/publish_file_message_encrypted.yaml index b4c4dd4c..eb4e6582 100644 --- a/tests/integrational/fixtures/asyncio/file_upload/publish_file_message_encrypted.yaml +++ b/tests/integrational/fixtures/asyncio/file_upload/publish_file_message_encrypted.yaml @@ -3,12 +3,12 @@ interactions: body: null headers: User-Agent: - - PubNub-Python-Asyncio/4.5.4 + - PubNub-Python-Asyncio/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_asyncio_ch/0/%7B%22message%22%3A%20%7B%22test%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%222222%22%2C%20%22name%22%3A%20%22test%22%7D%7D?meta=%7B%7D&ttl=222&store=True&pnsdk=PubNub-Python-Asyncio%2F4.5.4&uuid=79d8730b-267c-45e7-945f-04e1e4a7e01a + uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_asyncio_ch/0/%7B%22message%22%3A%20%7B%22test%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%222222%22%2C%20%22name%22%3A%20%22test%22%7D%7D?meta=%7B%7D&store=1&ttl=222 response: body: - string: '[1,"Sent","16032942942031126"]' + string: '[1,"Sent","16058168227970293"]' headers: Access-Control-Allow-Methods: GET Access-Control-Allow-Origin: '*' @@ -16,7 +16,7 @@ interactions: Connection: keep-alive Content-Length: '30' Content-Type: text/javascript; charset="UTF-8" - Date: Wed, 21 Oct 2020 15:31:34 GMT + Date: Thu, 19 Nov 2020 20:13:42 GMT status: code: 200 message: OK @@ -26,6 +26,6 @@ interactions: - https - ps.pndsn.com - /v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_asyncio_ch/0/%7B%22message%22%3A%20%7B%22test%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%222222%22%2C%20%22name%22%3A%20%22test%22%7D%7D - - meta=%7B%7D&ttl=222&store=True&pnsdk=PubNub-Python-Asyncio%2F4.5.4&uuid=79d8730b-267c-45e7-945f-04e1e4a7e01a + - meta=%7B%7D&ttl=222&store=1&pnsdk=PubNub-Python-Asyncio%2F4.6.1&uuid=9b1fa4b9-75b2-4001-98d7-bf25c45bcaf3 - '' version: 1 diff --git a/tests/integrational/fixtures/native_sync/file_upload/delete_file.yaml b/tests/integrational/fixtures/native_sync/file_upload/delete_file.yaml index 539e8370..99f49f87 100644 --- a/tests/integrational/fixtures/native_sync/file_upload/delete_file.yaml +++ b/tests/integrational/fixtures/native_sync/file_upload/delete_file.yaml @@ -11,34 +11,34 @@ interactions: Content-Length: - '27' User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: POST uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/generate-upload-url?uuid=files_native_sync_uuid response: body: string: !!binary | - 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 headers: Access-Control-Allow-Origin: - '*' @@ -49,24 +49,31 @@ interactions: Content-Type: - application/json Date: - - Wed, 21 Oct 2020 17:37:47 GMT + - Thu, 19 Nov 2020 20:00:48 GMT Vary: - Accept-Encoding status: code: 200 message: OK - request: - body: "--354e9677668b51b8f2b6f0e2399c021a\r\nContent-Disposition: form-data; name=\"tagging\"\r\n\r\nObjectTTLInDays1\r\n--354e9677668b51b8f2b6f0e2399c021a\r\nContent-Disposition: - form-data; name=\"key\"\r\n\r\nsub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/932c2236-a7fe-4954-a4c3-5e8c0efa55dd/king_arthur.txt\r\n--354e9677668b51b8f2b6f0e2399c021a\r\nContent-Disposition: - form-data; name=\"Content-Type\"\r\n\r\ntext/plain; charset=utf-8\r\n--354e9677668b51b8f2b6f0e2399c021a\r\nContent-Disposition: - form-data; name=\"X-Amz-Credential\"\r\n\r\nAKIAY7AU6GQD5KWBS3FG/20201021/eu-central-1/s3/aws4_request\r\n--354e9677668b51b8f2b6f0e2399c021a\r\nContent-Disposition: - form-data; name=\"X-Amz-Security-Token\"\r\n\r\n\r\n--354e9677668b51b8f2b6f0e2399c021a\r\nContent-Disposition: - form-data; name=\"X-Amz-Algorithm\"\r\n\r\nAWS4-HMAC-SHA256\r\n--354e9677668b51b8f2b6f0e2399c021a\r\nContent-Disposition: - form-data; name=\"X-Amz-Date\"\r\n\r\n20201021T173847Z\r\n--354e9677668b51b8f2b6f0e2399c021a\r\nContent-Disposition: - form-data; name=\"Policy\"\r\n\r\nCnsKCSJleHBpcmF0aW9uIjogIjIwMjAtMTAtMjFUMTc6Mzg6NDdaIiwKCSJjb25kaXRpb25zIjogWwoJCXsiYnVja2V0IjogInB1Ym51Yi1tbmVtb3N5bmUtZmlsZXMtZXUtY2VudHJhbC0xLXByZCJ9LAoJCVsiZXEiLCAiJHRhZ2dpbmciLCAiPFRhZ2dpbmc+PFRhZ1NldD48VGFnPjxLZXk+T2JqZWN0VFRMSW5EYXlzPC9LZXk+PFZhbHVlPjE8L1ZhbHVlPjwvVGFnPjwvVGFnU2V0PjwvVGFnZ2luZz4iXSwKCQlbImVxIiwgIiRrZXkiLCAic3ViLWMtYzg4MjQyZmEtMTNhZS0xMWViLWJjMzQtY2U2ZmQ5NjdhZjk1L2YtdElBY05YSk85bTgxZldWVl9vLWZTUS12ZXVwTnJUbG9WQVVQYmVVUVEvOTMyYzIyMzYtYTdmZS00OTU0LWE0YzMtNWU4YzBlZmE1NWRkL2tpbmdfYXJ0aHVyLnR4dCJdLAoJCVsiY29udGVudC1sZW5ndGgtcmFuZ2UiLCAwLCA1MjQyODgwXSwKCQlbInN0YXJ0cy13aXRoIiwgIiRDb250ZW50LVR5cGUiLCAiIl0sCgkJeyJ4LWFtei1jcmVkZW50aWFsIjogIkFLSUFZN0FVNkdRRDVLV0JTM0ZHLzIwMjAxMDIxL2V1LWNlbnRyYWwtMS9zMy9hd3M0X3JlcXVlc3QifSwKCQl7IngtYW16LXNlY3VyaXR5LXRva2VuIjogIiJ9LAoJCXsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwKCQl7IngtYW16LWRhdGUiOiAiMjAyMDEwMjFUMTczODQ3WiIgfQoJXQp9Cg==\r\n--354e9677668b51b8f2b6f0e2399c021a\r\nContent-Disposition: - form-data; name=\"X-Amz-Signature\"\r\n\r\n817e2c4cb9a9d1486d0efd56e77f506e352c60166615825f1ee6524ec529f1a4\r\n--354e9677668b51b8f2b6f0e2399c021a\r\nContent-Disposition: - form-data; name=\"file\"; filename=\"king_arthur.txt\"\r\n\r\nKnights who say - Ni!\r\n--354e9677668b51b8f2b6f0e2399c021a--\r\n" + body: "--c8b75015006dd33852fc387a65435719\r\nContent-Disposition: form-data; name=\"\ + tagging\"\r\n\r\nObjectTTLInDays1\r\ + \n--c8b75015006dd33852fc387a65435719\r\nContent-Disposition: form-data; name=\"\ + key\"\r\n\r\nsub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/b9d9b767-02d6-44a7-aa1c-5c6701a9ceb8/king_arthur.txt\r\ + \n--c8b75015006dd33852fc387a65435719\r\nContent-Disposition: form-data; name=\"\ + Content-Type\"\r\n\r\ntext/plain; charset=utf-8\r\n--c8b75015006dd33852fc387a65435719\r\ + \nContent-Disposition: form-data; name=\"X-Amz-Credential\"\r\n\r\nAKIAY7AU6GQD5KWBS3FG/20201119/eu-central-1/s3/aws4_request\r\ + \n--c8b75015006dd33852fc387a65435719\r\nContent-Disposition: form-data; name=\"\ + X-Amz-Security-Token\"\r\n\r\n\r\n--c8b75015006dd33852fc387a65435719\r\nContent-Disposition:\ + \ form-data; name=\"X-Amz-Algorithm\"\r\n\r\nAWS4-HMAC-SHA256\r\n--c8b75015006dd33852fc387a65435719\r\ + \nContent-Disposition: form-data; name=\"X-Amz-Date\"\r\n\r\n20201119T200148Z\r\ + \n--c8b75015006dd33852fc387a65435719\r\nContent-Disposition: form-data; name=\"\ + Policy\"\r\n\r\nCnsKCSJleHBpcmF0aW9uIjogIjIwMjAtMTEtMTlUMjA6MDE6NDhaIiwKCSJjb25kaXRpb25zIjogWwoJCXsiYnVja2V0IjogInB1Ym51Yi1tbmVtb3N5bmUtZmlsZXMtZXUtY2VudHJhbC0xLXByZCJ9LAoJCVsiZXEiLCAiJHRhZ2dpbmciLCAiPFRhZ2dpbmc+PFRhZ1NldD48VGFnPjxLZXk+T2JqZWN0VFRMSW5EYXlzPC9LZXk+PFZhbHVlPjE8L1ZhbHVlPjwvVGFnPjwvVGFnU2V0PjwvVGFnZ2luZz4iXSwKCQlbImVxIiwgIiRrZXkiLCAic3ViLWMtYzg4MjQyZmEtMTNhZS0xMWViLWJjMzQtY2U2ZmQ5NjdhZjk1L2YtdElBY05YSk85bTgxZldWVl9vLWZTUS12ZXVwTnJUbG9WQVVQYmVVUVEvYjlkOWI3NjctMDJkNi00NGE3LWFhMWMtNWM2NzAxYTljZWI4L2tpbmdfYXJ0aHVyLnR4dCJdLAoJCVsiY29udGVudC1sZW5ndGgtcmFuZ2UiLCAwLCA1MjQyODgwXSwKCQlbInN0YXJ0cy13aXRoIiwgIiRDb250ZW50LVR5cGUiLCAiIl0sCgkJeyJ4LWFtei1jcmVkZW50aWFsIjogIkFLSUFZN0FVNkdRRDVLV0JTM0ZHLzIwMjAxMTE5L2V1LWNlbnRyYWwtMS9zMy9hd3M0X3JlcXVlc3QifSwKCQl7IngtYW16LXNlY3VyaXR5LXRva2VuIjogIiJ9LAoJCXsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwKCQl7IngtYW16LWRhdGUiOiAiMjAyMDExMTlUMjAwMTQ4WiIgfQoJXQp9Cg==\r\ + \n--c8b75015006dd33852fc387a65435719\r\nContent-Disposition: form-data; name=\"\ + X-Amz-Signature\"\r\n\r\n334315ac3dcce23316ad3f5a07657c436ec4f88198bf8349506a51b83982556e\r\ + \n--c8b75015006dd33852fc387a65435719\r\nContent-Disposition: form-data; name=\"\ + file\"; filename=\"king_arthur.txt\"\r\n\r\nKnights who say Ni!\r\n--c8b75015006dd33852fc387a65435719--\r\ + \n" headers: Accept: - '*/*' @@ -77,9 +84,9 @@ interactions: Content-Length: - '2314' Content-Type: - - multipart/form-data; boundary=354e9677668b51b8f2b6f0e2399c021a + - multipart/form-data; boundary=c8b75015006dd33852fc387a65435719 User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: POST uri: https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/ response: @@ -87,20 +94,20 @@ interactions: string: '' headers: Date: - - Wed, 21 Oct 2020 17:37:48 GMT + - Thu, 19 Nov 2020 20:00:50 GMT ETag: - '"3676cdb7a927db43c846070c4e7606c7"' Location: - - https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95%2Ff-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ%2F932c2236-a7fe-4954-a4c3-5e8c0efa55dd%2Fking_arthur.txt + - https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95%2Ff-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ%2Fb9d9b767-02d6-44a7-aa1c-5c6701a9ceb8%2Fking_arthur.txt Server: - AmazonS3 x-amz-expiration: - - expiry-date="Fri, 23 Oct 2020 00:00:00 GMT", rule-id="Archive file 1 day after + - expiry-date="Sat, 21 Nov 2020 00:00:00 GMT", rule-id="Archive file 1 day after creation" x-amz-id-2: - - 48VpIxIuXzH00PRlNZwRUKkhE8UoWe10Gf6UT2qas/dXpcKLvs2/sLeq7stOP5XJdOxk4HE0uhE= + - taqK+GJWRVIcdyCiat2ttz2p7OArx27pj11rHs72wFIJx8AwFOBHH7p+AwuswS7TdQEaRytSH4U= x-amz-request-id: - - C4E8AD3DC97537E6 + - 0D04E2CE1C7F7FC1 x-amz-server-side-encryption: - AES256 status: @@ -116,12 +123,12 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test_message%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%22932c2236-a7fe-4954-a4c3-5e8c0efa55dd%22%2C%20%22name%22%3A%20%22king_arthur.txt%22%7D%7D?meta=null&store=True&ttl=222&uuid=files_native_sync_uuid + uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test_message%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%22b9d9b767-02d6-44a7-aa1c-5c6701a9ceb8%22%2C%20%22name%22%3A%20%22king_arthur.txt%22%7D%7D?meta=null&store=1&ttl=222&uuid=files_native_sync_uuid response: body: - string: '[1,"Sent","16033018679897300"]' + string: '[1,"Sent","16058160503920483"]' headers: Access-Control-Allow-Methods: - GET @@ -136,7 +143,7 @@ interactions: Content-Type: - text/javascript; charset="UTF-8" Date: - - Wed, 21 Oct 2020 17:37:47 GMT + - Thu, 19 Nov 2020 20:00:50 GMT status: code: 200 message: OK @@ -152,9 +159,9 @@ interactions: Content-Length: - '0' User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: DELETE - uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/files/932c2236-a7fe-4954-a4c3-5e8c0efa55dd/king_arthur.txt?uuid=files_native_sync_uuid + uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/files/b9d9b767-02d6-44a7-aa1c-5c6701a9ceb8/king_arthur.txt?uuid=files_native_sync_uuid response: body: string: '{"status":200}' @@ -168,7 +175,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 21 Oct 2020 17:37:48 GMT + - Thu, 19 Nov 2020 20:00:50 GMT status: code: 200 message: OK diff --git a/tests/integrational/fixtures/native_sync/file_upload/download_file.yaml b/tests/integrational/fixtures/native_sync/file_upload/download_file.yaml index a51213b1..59b9a80b 100644 --- a/tests/integrational/fixtures/native_sync/file_upload/download_file.yaml +++ b/tests/integrational/fixtures/native_sync/file_upload/download_file.yaml @@ -11,34 +11,34 @@ interactions: Content-Length: - '27' User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: POST uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/generate-upload-url?uuid=files_native_sync_uuid response: body: string: !!binary | - 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 headers: Access-Control-Allow-Origin: - '*' @@ -49,24 +49,31 @@ interactions: Content-Type: - application/json Date: - - Wed, 21 Oct 2020 17:37:16 GMT + - Thu, 19 Nov 2020 20:00:09 GMT Vary: - Accept-Encoding status: code: 200 message: OK - request: - body: "--e6c44a760db10e4b9b919be64369d85a\r\nContent-Disposition: form-data; name=\"tagging\"\r\n\r\nObjectTTLInDays1\r\n--e6c44a760db10e4b9b919be64369d85a\r\nContent-Disposition: - form-data; name=\"key\"\r\n\r\nsub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/b8f94563-166e-4349-94b4-86ecc9be22c4/king_arthur.txt\r\n--e6c44a760db10e4b9b919be64369d85a\r\nContent-Disposition: - form-data; name=\"Content-Type\"\r\n\r\ntext/plain; charset=utf-8\r\n--e6c44a760db10e4b9b919be64369d85a\r\nContent-Disposition: - form-data; name=\"X-Amz-Credential\"\r\n\r\nAKIAY7AU6GQD5KWBS3FG/20201021/eu-central-1/s3/aws4_request\r\n--e6c44a760db10e4b9b919be64369d85a\r\nContent-Disposition: - form-data; name=\"X-Amz-Security-Token\"\r\n\r\n\r\n--e6c44a760db10e4b9b919be64369d85a\r\nContent-Disposition: - form-data; name=\"X-Amz-Algorithm\"\r\n\r\nAWS4-HMAC-SHA256\r\n--e6c44a760db10e4b9b919be64369d85a\r\nContent-Disposition: - form-data; name=\"X-Amz-Date\"\r\n\r\n20201021T173816Z\r\n--e6c44a760db10e4b9b919be64369d85a\r\nContent-Disposition: - form-data; name=\"Policy\"\r\n\r\nCnsKCSJleHBpcmF0aW9uIjogIjIwMjAtMTAtMjFUMTc6Mzg6MTZaIiwKCSJjb25kaXRpb25zIjogWwoJCXsiYnVja2V0IjogInB1Ym51Yi1tbmVtb3N5bmUtZmlsZXMtZXUtY2VudHJhbC0xLXByZCJ9LAoJCVsiZXEiLCAiJHRhZ2dpbmciLCAiPFRhZ2dpbmc+PFRhZ1NldD48VGFnPjxLZXk+T2JqZWN0VFRMSW5EYXlzPC9LZXk+PFZhbHVlPjE8L1ZhbHVlPjwvVGFnPjwvVGFnU2V0PjwvVGFnZ2luZz4iXSwKCQlbImVxIiwgIiRrZXkiLCAic3ViLWMtYzg4MjQyZmEtMTNhZS0xMWViLWJjMzQtY2U2ZmQ5NjdhZjk1L2YtdElBY05YSk85bTgxZldWVl9vLWZTUS12ZXVwTnJUbG9WQVVQYmVVUVEvYjhmOTQ1NjMtMTY2ZS00MzQ5LTk0YjQtODZlY2M5YmUyMmM0L2tpbmdfYXJ0aHVyLnR4dCJdLAoJCVsiY29udGVudC1sZW5ndGgtcmFuZ2UiLCAwLCA1MjQyODgwXSwKCQlbInN0YXJ0cy13aXRoIiwgIiRDb250ZW50LVR5cGUiLCAiIl0sCgkJeyJ4LWFtei1jcmVkZW50aWFsIjogIkFLSUFZN0FVNkdRRDVLV0JTM0ZHLzIwMjAxMDIxL2V1LWNlbnRyYWwtMS9zMy9hd3M0X3JlcXVlc3QifSwKCQl7IngtYW16LXNlY3VyaXR5LXRva2VuIjogIiJ9LAoJCXsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwKCQl7IngtYW16LWRhdGUiOiAiMjAyMDEwMjFUMTczODE2WiIgfQoJXQp9Cg==\r\n--e6c44a760db10e4b9b919be64369d85a\r\nContent-Disposition: - form-data; name=\"X-Amz-Signature\"\r\n\r\nf129a2a2688251edf48d79f09cc60a1e88819a7eea32ca70a4ae6ab157ab8cbb\r\n--e6c44a760db10e4b9b919be64369d85a\r\nContent-Disposition: - form-data; name=\"file\"; filename=\"king_arthur.txt\"\r\n\r\nKnights who say - Ni!\r\n--e6c44a760db10e4b9b919be64369d85a--\r\n" + body: "--96df544f6e8c2c3f3920b0f27f3db1f4\r\nContent-Disposition: form-data; name=\"\ + tagging\"\r\n\r\nObjectTTLInDays1\r\ + \n--96df544f6e8c2c3f3920b0f27f3db1f4\r\nContent-Disposition: form-data; name=\"\ + key\"\r\n\r\nsub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/ec75a2db-65c7-46af-9b26-61939f898314/king_arthur.txt\r\ + \n--96df544f6e8c2c3f3920b0f27f3db1f4\r\nContent-Disposition: form-data; name=\"\ + Content-Type\"\r\n\r\ntext/plain; charset=utf-8\r\n--96df544f6e8c2c3f3920b0f27f3db1f4\r\ + \nContent-Disposition: form-data; name=\"X-Amz-Credential\"\r\n\r\nAKIAY7AU6GQD5KWBS3FG/20201119/eu-central-1/s3/aws4_request\r\ + \n--96df544f6e8c2c3f3920b0f27f3db1f4\r\nContent-Disposition: form-data; name=\"\ + X-Amz-Security-Token\"\r\n\r\n\r\n--96df544f6e8c2c3f3920b0f27f3db1f4\r\nContent-Disposition:\ + \ form-data; name=\"X-Amz-Algorithm\"\r\n\r\nAWS4-HMAC-SHA256\r\n--96df544f6e8c2c3f3920b0f27f3db1f4\r\ + \nContent-Disposition: form-data; name=\"X-Amz-Date\"\r\n\r\n20201119T200109Z\r\ + \n--96df544f6e8c2c3f3920b0f27f3db1f4\r\nContent-Disposition: form-data; name=\"\ + Policy\"\r\n\r\nCnsKCSJleHBpcmF0aW9uIjogIjIwMjAtMTEtMTlUMjA6MDE6MDlaIiwKCSJjb25kaXRpb25zIjogWwoJCXsiYnVja2V0IjogInB1Ym51Yi1tbmVtb3N5bmUtZmlsZXMtZXUtY2VudHJhbC0xLXByZCJ9LAoJCVsiZXEiLCAiJHRhZ2dpbmciLCAiPFRhZ2dpbmc+PFRhZ1NldD48VGFnPjxLZXk+T2JqZWN0VFRMSW5EYXlzPC9LZXk+PFZhbHVlPjE8L1ZhbHVlPjwvVGFnPjwvVGFnU2V0PjwvVGFnZ2luZz4iXSwKCQlbImVxIiwgIiRrZXkiLCAic3ViLWMtYzg4MjQyZmEtMTNhZS0xMWViLWJjMzQtY2U2ZmQ5NjdhZjk1L2YtdElBY05YSk85bTgxZldWVl9vLWZTUS12ZXVwTnJUbG9WQVVQYmVVUVEvZWM3NWEyZGItNjVjNy00NmFmLTliMjYtNjE5MzlmODk4MzE0L2tpbmdfYXJ0aHVyLnR4dCJdLAoJCVsiY29udGVudC1sZW5ndGgtcmFuZ2UiLCAwLCA1MjQyODgwXSwKCQlbInN0YXJ0cy13aXRoIiwgIiRDb250ZW50LVR5cGUiLCAiIl0sCgkJeyJ4LWFtei1jcmVkZW50aWFsIjogIkFLSUFZN0FVNkdRRDVLV0JTM0ZHLzIwMjAxMTE5L2V1LWNlbnRyYWwtMS9zMy9hd3M0X3JlcXVlc3QifSwKCQl7IngtYW16LXNlY3VyaXR5LXRva2VuIjogIiJ9LAoJCXsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwKCQl7IngtYW16LWRhdGUiOiAiMjAyMDExMTlUMjAwMTA5WiIgfQoJXQp9Cg==\r\ + \n--96df544f6e8c2c3f3920b0f27f3db1f4\r\nContent-Disposition: form-data; name=\"\ + X-Amz-Signature\"\r\n\r\n9976059b9a5e6208ba4a0bedc40462d6ff1d0a6f1162280c1074f522b46e2a61\r\ + \n--96df544f6e8c2c3f3920b0f27f3db1f4\r\nContent-Disposition: form-data; name=\"\ + file\"; filename=\"king_arthur.txt\"\r\n\r\nKnights who say Ni!\r\n--96df544f6e8c2c3f3920b0f27f3db1f4--\r\ + \n" headers: Accept: - '*/*' @@ -77,9 +84,9 @@ interactions: Content-Length: - '2314' Content-Type: - - multipart/form-data; boundary=e6c44a760db10e4b9b919be64369d85a + - multipart/form-data; boundary=96df544f6e8c2c3f3920b0f27f3db1f4 User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: POST uri: https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/ response: @@ -87,20 +94,20 @@ interactions: string: '' headers: Date: - - Wed, 21 Oct 2020 17:37:17 GMT + - Thu, 19 Nov 2020 20:00:10 GMT ETag: - '"3676cdb7a927db43c846070c4e7606c7"' Location: - - https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95%2Ff-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ%2Fb8f94563-166e-4349-94b4-86ecc9be22c4%2Fking_arthur.txt + - https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95%2Ff-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ%2Fec75a2db-65c7-46af-9b26-61939f898314%2Fking_arthur.txt Server: - AmazonS3 x-amz-expiration: - - expiry-date="Fri, 23 Oct 2020 00:00:00 GMT", rule-id="Archive file 1 day after + - expiry-date="Sat, 21 Nov 2020 00:00:00 GMT", rule-id="Archive file 1 day after creation" x-amz-id-2: - - ym+LEcIGI0nkB8Xc+PXJQr2JEein1ISR6oiPyGlaAvuSEeVowXRLqugoiuU6Rlz69JFovWaHkcs= + - A6YngC58iQIuE2uLkm65EMcHqPNAyDx9gB4tk9uUclaKKke31YylNWTVATJvEEazROWaL2atqyM= x-amz-request-id: - - 575F0B9E1900826D + - 69D7186D457E54B4 x-amz-server-side-encryption: - AES256 status: @@ -116,12 +123,12 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test_message%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%22b8f94563-166e-4349-94b4-86ecc9be22c4%22%2C%20%22name%22%3A%20%22king_arthur.txt%22%7D%7D?meta=null&store=True&ttl=222&uuid=files_native_sync_uuid + uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test_message%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%22ec75a2db-65c7-46af-9b26-61939f898314%22%2C%20%22name%22%3A%20%22king_arthur.txt%22%7D%7D?meta=null&store=1&ttl=222&uuid=files_native_sync_uuid response: body: - string: '[1,"Sent","16033018369438407"]' + string: '[1,"Sent","16058160096948699"]' headers: Access-Control-Allow-Methods: - GET @@ -136,7 +143,7 @@ interactions: Content-Type: - text/javascript; charset="UTF-8" Date: - - Wed, 21 Oct 2020 17:37:16 GMT + - Thu, 19 Nov 2020 20:00:09 GMT status: code: 200 message: OK @@ -150,9 +157,9 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/files/b8f94563-166e-4349-94b4-86ecc9be22c4/king_arthur.txt?uuid=files_native_sync_uuid + uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/files/ec75a2db-65c7-46af-9b26-61939f898314/king_arthur.txt?uuid=files_native_sync_uuid response: body: string: '' @@ -160,15 +167,15 @@ interactions: Access-Control-Allow-Origin: - '*' Cache-Control: - - public, max-age=1603, immutable + - public, max-age=3831, immutable Connection: - keep-alive Content-Length: - '0' Date: - - Wed, 21 Oct 2020 17:37:17 GMT + - Thu, 19 Nov 2020 20:00:09 GMT Location: - - https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/b8f94563-166e-4349-94b4-86ecc9be22c4/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201021%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201021T170000Z&X-Amz-Expires=3900&X-Amz-SignedHeaders=host&X-Amz-Signature=ece26f523bf3321611a3e2e301a8f6d12d5964e141bf538a0768fbb48aa02400 + - https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/ec75a2db-65c7-46af-9b26-61939f898314/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201119%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201119T200000Z&X-Amz-Expires=3900&X-Amz-SignedHeaders=host&X-Amz-Signature=ba518b25b2ce6544646a697acd0d77dc94ad347d36f786cb1070b66c954cb62e status: code: 307 message: Temporary Redirect @@ -182,9 +189,9 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/b8f94563-166e-4349-94b4-86ecc9be22c4/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201021%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201021T170000Z&X-Amz-Expires=3900&X-Amz-Signature=ece26f523bf3321611a3e2e301a8f6d12d5964e141bf538a0768fbb48aa02400&X-Amz-SignedHeaders=host + uri: https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/ec75a2db-65c7-46af-9b26-61939f898314/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201119%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201119T200000Z&X-Amz-Expires=3900&X-Amz-Signature=ba518b25b2ce6544646a697acd0d77dc94ad347d36f786cb1070b66c954cb62e&X-Amz-SignedHeaders=host response: body: string: Knights who say Ni! @@ -198,23 +205,23 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 21 Oct 2020 17:37:18 GMT + - Thu, 19 Nov 2020 20:00:11 GMT ETag: - '"3676cdb7a927db43c846070c4e7606c7"' Last-Modified: - - Wed, 21 Oct 2020 17:37:17 GMT + - Thu, 19 Nov 2020 20:00:10 GMT Server: - AmazonS3 Via: - - 1.1 47225389ee58add3b9e790ead940cda5.cloudfront.net (CloudFront) + - 1.1 a2a926ace399371954fc9fbb55fd02ab.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - CGuVNrO_ecBPnSUd2EhxDyD6kPSGitbn4e8zVaNwK_aFMZIVn2pKIA== + - xs9ND4aDZCOO9uyAnqO4ImETMQMgOcLcWeCVv_JoOxAJo_x2BGkHwA== X-Amz-Cf-Pop: - - MUC50-C1 + - BUD50-C1 X-Cache: - Miss from cloudfront x-amz-expiration: - - expiry-date="Fri, 23 Oct 2020 00:00:00 GMT", rule-id="Archive file 1 day after + - expiry-date="Sat, 21 Nov 2020 00:00:00 GMT", rule-id="Archive file 1 day after creation" x-amz-server-side-encryption: - AES256 diff --git a/tests/integrational/fixtures/native_sync/file_upload/download_file_encrypted.yaml b/tests/integrational/fixtures/native_sync/file_upload/download_file_encrypted.yaml index b98ccba5..37bb1f57 100644 --- a/tests/integrational/fixtures/native_sync/file_upload/download_file_encrypted.yaml +++ b/tests/integrational/fixtures/native_sync/file_upload/download_file_encrypted.yaml @@ -11,34 +11,34 @@ interactions: Content-Length: - '27' User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: POST uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/generate-upload-url?uuid=files_native_sync_uuid response: body: string: !!binary | - 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 headers: Access-Control-Allow-Origin: - '*' @@ -49,7 +49,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 21 Oct 2020 17:37:26 GMT + - Thu, 19 Nov 2020 20:00:28 GMT Vary: - Accept-Encoding status: @@ -57,48 +57,48 @@ interactions: message: OK - request: body: !!binary | - LS01MmRlMDZlMGU5YzMzOWQxMDhiYzIzYTFiYWUwYzFkNA0KQ29udGVudC1EaXNwb3NpdGlvbjog + LS1iYzM1Y2JlMzRjMTBmMGJmZTFiNDg1ODQ2YTcyM2UzYQ0KQ29udGVudC1EaXNwb3NpdGlvbjog Zm9ybS1kYXRhOyBuYW1lPSJ0YWdnaW5nIg0KDQo8VGFnZ2luZz48VGFnU2V0PjxUYWc+PEtleT5P YmplY3RUVExJbkRheXM8L0tleT48VmFsdWU+MTwvVmFsdWU+PC9UYWc+PC9UYWdTZXQ+PC9UYWdn - aW5nPg0KLS01MmRlMDZlMGU5YzMzOWQxMDhiYzIzYTFiYWUwYzFkNA0KQ29udGVudC1EaXNwb3Np + aW5nPg0KLS1iYzM1Y2JlMzRjMTBmMGJmZTFiNDg1ODQ2YTcyM2UzYQ0KQ29udGVudC1EaXNwb3Np dGlvbjogZm9ybS1kYXRhOyBuYW1lPSJrZXkiDQoNCnN1Yi1jLWM4ODI0MmZhLTEzYWUtMTFlYi1i YzM0LWNlNmZkOTY3YWY5NS9mLXRJQWNOWEpPOW04MWZXVlZfby1mU1EtdmV1cE5yVGxvVkFVUGJl - VVFRL2JlYjlkN2YwLWUxOWItNDQzOC1iN2JjLWJiMjk1OTlmMDdiMy9raW5nX2FydGh1ci50eHQN - Ci0tNTJkZTA2ZTBlOWMzMzlkMTA4YmMyM2ExYmFlMGMxZDQNCkNvbnRlbnQtRGlzcG9zaXRpb246 + VVFRL2ExMzViYmFlLTllNTEtNDg3NC1iZTYzLTM0NmQwOGI3NzliNS9raW5nX2FydGh1ci50eHQN + Ci0tYmMzNWNiZTM0YzEwZjBiZmUxYjQ4NTg0NmE3MjNlM2ENCkNvbnRlbnQtRGlzcG9zaXRpb246 IGZvcm0tZGF0YTsgbmFtZT0iQ29udGVudC1UeXBlIg0KDQp0ZXh0L3BsYWluOyBjaGFyc2V0PXV0 - Zi04DQotLTUyZGUwNmUwZTljMzM5ZDEwOGJjMjNhMWJhZTBjMWQ0DQpDb250ZW50LURpc3Bvc2l0 + Zi04DQotLWJjMzVjYmUzNGMxMGYwYmZlMWI0ODU4NDZhNzIzZTNhDQpDb250ZW50LURpc3Bvc2l0 aW9uOiBmb3JtLWRhdGE7IG5hbWU9IlgtQW16LUNyZWRlbnRpYWwiDQoNCkFLSUFZN0FVNkdRRDVL - V0JTM0ZHLzIwMjAxMDIxL2V1LWNlbnRyYWwtMS9zMy9hd3M0X3JlcXVlc3QNCi0tNTJkZTA2ZTBl - OWMzMzlkMTA4YmMyM2ExYmFlMGMxZDQNCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsg - bmFtZT0iWC1BbXotU2VjdXJpdHktVG9rZW4iDQoNCg0KLS01MmRlMDZlMGU5YzMzOWQxMDhiYzIz - YTFiYWUwYzFkNA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJYLUFtei1B - bGdvcml0aG0iDQoNCkFXUzQtSE1BQy1TSEEyNTYNCi0tNTJkZTA2ZTBlOWMzMzlkMTA4YmMyM2Ex - YmFlMGMxZDQNCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0iWC1BbXotRGF0 - ZSINCg0KMjAyMDEwMjFUMTczODI2Wg0KLS01MmRlMDZlMGU5YzMzOWQxMDhiYzIzYTFiYWUwYzFk - NA0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJQb2xpY3kiDQoNCkNuc0tD - U0psZUhCcGNtRjBhVzl1SWpvZ0lqSXdNakF0TVRBdE1qRlVNVGM2TXpnNk1qWmFJaXdLQ1NKamIy + V0JTM0ZHLzIwMjAxMTE5L2V1LWNlbnRyYWwtMS9zMy9hd3M0X3JlcXVlc3QNCi0tYmMzNWNiZTM0 + YzEwZjBiZmUxYjQ4NTg0NmE3MjNlM2ENCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsg + bmFtZT0iWC1BbXotU2VjdXJpdHktVG9rZW4iDQoNCg0KLS1iYzM1Y2JlMzRjMTBmMGJmZTFiNDg1 + ODQ2YTcyM2UzYQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJYLUFtei1B + bGdvcml0aG0iDQoNCkFXUzQtSE1BQy1TSEEyNTYNCi0tYmMzNWNiZTM0YzEwZjBiZmUxYjQ4NTg0 + NmE3MjNlM2ENCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0iWC1BbXotRGF0 + ZSINCg0KMjAyMDExMTlUMjAwMTI4Wg0KLS1iYzM1Y2JlMzRjMTBmMGJmZTFiNDg1ODQ2YTcyM2Uz + YQ0KQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPSJQb2xpY3kiDQoNCkNuc0tD + U0psZUhCcGNtRjBhVzl1SWpvZ0lqSXdNakF0TVRFdE1UbFVNakE2TURFNk1qaGFJaXdLQ1NKamIy NWthWFJwYjI1eklqb2dXd29KQ1hzaVluVmphMlYwSWpvZ0luQjFZbTUxWWkxdGJtVnRiM041Ym1V dFptbHNaWE10WlhVdFkyVnVkSEpoYkMweExYQnlaQ0o5TEFvSkNWc2laWEVpTENBaUpIUmhaMmRw Ym1jaUxDQWlQRlJoWjJkcGJtYytQRlJoWjFObGRENDhWR0ZuUGp4TFpYaytUMkpxWldOMFZGUk1T VzVFWVhselBDOUxaWGsrUEZaaGJIVmxQakU4TDFaaGJIVmxQand2VkdGblBqd3ZWR0ZuVTJWMFBq d3ZWR0ZuWjJsdVp6NGlYU3dLQ1FsYkltVnhJaXdnSWlSclpYa2lMQ0FpYzNWaUxXTXRZemc0TWpR eVptRXRNVE5oWlMweE1XVmlMV0pqTXpRdFkyVTJabVE1TmpkaFpqazFMMll0ZEVsQlkwNVlTazg1 - YlRneFpsZFdWbDl2TFdaVFVTMTJaWFZ3VG5KVWJHOVdRVlZRWW1WVlVWRXZZbVZpT1dRM1pqQXRa - VEU1WWkwME5ETTRMV0kzWW1NdFltSXlPVFU1T1dZd04ySXpMMnRwYm1kZllYSjBhSFZ5TG5SNGRD + YlRneFpsZFdWbDl2TFdaVFVTMTJaWFZ3VG5KVWJHOVdRVlZRWW1WVlVWRXZZVEV6TldKaVlXVXRP + V1UxTVMwME9EYzBMV0psTmpNdE16UTJaREE0WWpjM09XSTFMMnRwYm1kZllYSjBhSFZ5TG5SNGRD SmRMQW9KQ1ZzaVkyOXVkR1Z1ZEMxc1pXNW5kR2d0Y21GdVoyVWlMQ0F3TENBMU1qUXlPRGd3WFN3 S0NRbGJJbk4wWVhKMGN5MTNhWFJvSWl3Z0lpUkRiMjUwWlc1MExWUjVjR1VpTENBaUlsMHNDZ2tK ZXlKNExXRnRlaTFqY21Wa1pXNTBhV0ZzSWpvZ0lrRkxTVUZaTjBGVk5rZFJSRFZMVjBKVE0wWkhM - ekl3TWpBeE1ESXhMMlYxTFdObGJuUnlZV3d0TVM5ek15OWhkM00wWDNKbGNYVmxjM1FpZlN3S0NR + ekl3TWpBeE1URTVMMlYxTFdObGJuUnlZV3d0TVM5ek15OWhkM00wWDNKbGNYVmxjM1FpZlN3S0NR bDdJbmd0WVcxNkxYTmxZM1Z5YVhSNUxYUnZhMlZ1SWpvZ0lpSjlMQW9KQ1hzaWVDMWhiWG90WVd4 bmIzSnBkR2h0SWpvZ0lrRlhVelF0U0UxQlF5MVRTRUV5TlRZaWZTd0tDUWw3SW5ndFlXMTZMV1Jo - ZEdVaU9pQWlNakF5TURFd01qRlVNVGN6T0RJMldpSWdmUW9KWFFwOUNnPT0NCi0tNTJkZTA2ZTBl - OWMzMzlkMTA4YmMyM2ExYmFlMGMxZDQNCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsg - bmFtZT0iWC1BbXotU2lnbmF0dXJlIg0KDQplZTExMjMyMDg4NmM4OTUzNmUwZmEzZjg3ZTA3ODY5 - NTIyOGQxZjlkNTUwMjI3NTJkNDQwMTVhNWU3ZDFjYzI2DQotLTUyZGUwNmUwZTljMzM5ZDEwOGJj - MjNhMWJhZTBjMWQ0DQpDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9ImZpbGUi - OyBmaWxlbmFtZT0ia2luZ19hcnRodXIudHh0Ig0KDQo3NTM5MTQzOTUwNzY4NzEzAzzvkJ+IvUkI - pgIM6cRWyt+OS54iOzhaB0cKnz6vNcINCi0tNTJkZTA2ZTBlOWMzMzlkMTA4YmMyM2ExYmFlMGMx - ZDQtLQ0K + ZEdVaU9pQWlNakF5TURFeE1UbFVNakF3TVRJNFdpSWdmUW9KWFFwOUNnPT0NCi0tYmMzNWNiZTM0 + YzEwZjBiZmUxYjQ4NTg0NmE3MjNlM2ENCkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsg + bmFtZT0iWC1BbXotU2lnbmF0dXJlIg0KDQoxNzRkMmFhMTVjNWQzMTZiMjA0Yzg2YzRmOGNjZGFl + MDc3ZjU5M2Q0ZTJmMjgxZjZjNzBlODBjYWFkOTc2Yzg4DQotLWJjMzVjYmUzNGMxMGYwYmZlMWI0 + ODU4NDZhNzIzZTNhDQpDb250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9ImZpbGUi + OyBmaWxlbmFtZT0ia2luZ19hcnRodXIudHh0Ig0KDQo3NzY1MjM3Njk4MjgxOTc2y74RdLA0kXQl + Ksi9dUEbSIRSw/RIqx6P1Sy3aTIt8QANCi0tYmMzNWNiZTM0YzEwZjBiZmUxYjQ4NTg0NmE3MjNl + M2EtLQ0K headers: Accept: - '*/*' @@ -109,9 +109,9 @@ interactions: Content-Length: - '2343' Content-Type: - - multipart/form-data; boundary=52de06e0e9c339d108bc23a1bae0c1d4 + - multipart/form-data; boundary=bc35cbe34c10f0bfe1b485846a723e3a User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: POST uri: https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/ response: @@ -119,20 +119,20 @@ interactions: string: '' headers: Date: - - Wed, 21 Oct 2020 17:37:27 GMT + - Thu, 19 Nov 2020 20:00:30 GMT ETag: - - '"60e49d4f6550a2784fe8e91b7eda0d0b"' + - '"7061d101babb659b3a9488d7354632c5"' Location: - - https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95%2Ff-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ%2Fbeb9d7f0-e19b-4438-b7bc-bb29599f07b3%2Fking_arthur.txt + - https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95%2Ff-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ%2Fa135bbae-9e51-4874-be63-346d08b779b5%2Fking_arthur.txt Server: - AmazonS3 x-amz-expiration: - - expiry-date="Fri, 23 Oct 2020 00:00:00 GMT", rule-id="Archive file 1 day after + - expiry-date="Sat, 21 Nov 2020 00:00:00 GMT", rule-id="Archive file 1 day after creation" x-amz-id-2: - - N0W32R/ej2O7mDHEjW34bEBChufFtw+gAzXVSy9WFnkeKo1hsClb5kpdXyr6CQK6sokNnDcgyjY= + - nQJwMSrjP2I/t3qI0wGt7vbM6FMnCdZKv6rBhaF0NoXVf3ccoNZii1cUB5EYd+yClr0jVHsl3oU= x-amz-request-id: - - CF3B8DF3593DD4BB + - 397B1B26DB37F896 x-amz-server-side-encryption: - AES256 status: @@ -148,12 +148,12 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%22nuKM7r9zoS9IXo%2FL7H3LqqeXhVHlHVM32Jwyjm0BBrYN%2FybeKX8eYOqvVUv5sQVBjt%2FVzQ0OPKpCk6wEPepUFoVHOKiTX%2Fngr%2BiKRmvt4Zddec4Q%2Bj%2By1JN%2BdBNn%2BqAVoYXNgtNsh9YCpD3NkwaYO0at2onH8ax00TzUYBbfeqo%3D%22?meta=null&store=True&ttl=222&uuid=files_native_sync_uuid + uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%22nuKM7r9zoS9IXo%2FL7H3LqqeXhVHlHVM32Jwyjm0BBrYN%2FybeKX8eYOqvVUv5sQVB13wo5w0cjFPzuH2m%2Bo4rzzOpxdZHtSlHb1NT07lBbxN0bMVzxb2lpEynkuba%2Bn1aTq8hPfPTkLSyxtaqeCMpyMlE36VkCUIU864UdW%2FWDHY%3D%22?meta=null&store=1&ttl=222&uuid=files_native_sync_uuid response: body: - string: '[1,"Sent","16033018470668399"]' + string: '[1,"Sent","16058160292498374"]' headers: Access-Control-Allow-Methods: - GET @@ -168,7 +168,7 @@ interactions: Content-Type: - text/javascript; charset="UTF-8" Date: - - Wed, 21 Oct 2020 17:37:27 GMT + - Thu, 19 Nov 2020 20:00:29 GMT status: code: 200 message: OK @@ -182,9 +182,9 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/files/beb9d7f0-e19b-4438-b7bc-bb29599f07b3/king_arthur.txt?uuid=files_native_sync_uuid + uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/files/a135bbae-9e51-4874-be63-346d08b779b5/king_arthur.txt?uuid=files_native_sync_uuid response: body: string: '' @@ -192,15 +192,15 @@ interactions: Access-Control-Allow-Origin: - '*' Cache-Control: - - public, max-age=1593, immutable + - public, max-age=3811, immutable Connection: - keep-alive Content-Length: - '0' Date: - - Wed, 21 Oct 2020 17:37:27 GMT + - Thu, 19 Nov 2020 20:00:29 GMT Location: - - https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/beb9d7f0-e19b-4438-b7bc-bb29599f07b3/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201021%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201021T170000Z&X-Amz-Expires=3900&X-Amz-SignedHeaders=host&X-Amz-Signature=dd7de7f3adb79d7e911f4f6568f9597e19b1bf40e542725932c58f47187e0065 + - https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/a135bbae-9e51-4874-be63-346d08b779b5/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201119%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201119T200000Z&X-Amz-Expires=3900&X-Amz-SignedHeaders=host&X-Amz-Signature=a8d69e02f8ebbed81e265bb9c13520d56f213815af6cf395c57f0ce9c9d3e776 status: code: 307 message: Temporary Redirect @@ -214,13 +214,13 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/beb9d7f0-e19b-4438-b7bc-bb29599f07b3/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201021%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201021T170000Z&X-Amz-Expires=3900&X-Amz-Signature=dd7de7f3adb79d7e911f4f6568f9597e19b1bf40e542725932c58f47187e0065&X-Amz-SignedHeaders=host + uri: https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/a135bbae-9e51-4874-be63-346d08b779b5/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201119%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201119T200000Z&X-Amz-Expires=3900&X-Amz-Signature=a8d69e02f8ebbed81e265bb9c13520d56f213815af6cf395c57f0ce9c9d3e776&X-Amz-SignedHeaders=host response: body: string: !!binary | - NzUzOTE0Mzk1MDc2ODcxMwM875CfiL1JCKYCDOnEVsrfjkueIjs4WgdHCp8+rzXC + Nzc2NTIzNzY5ODI4MTk3Nsu+EXSwNJF0JSrIvXVBG0iEUsP0SKsej9Ust2kyLfEA headers: Accept-Ranges: - bytes @@ -231,23 +231,23 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 21 Oct 2020 17:37:28 GMT + - Thu, 19 Nov 2020 20:00:30 GMT ETag: - - '"60e49d4f6550a2784fe8e91b7eda0d0b"' + - '"7061d101babb659b3a9488d7354632c5"' Last-Modified: - - Wed, 21 Oct 2020 17:37:27 GMT + - Thu, 19 Nov 2020 20:00:30 GMT Server: - AmazonS3 Via: - - 1.1 48c20cb247b267a59a8191c4d3bd787c.cloudfront.net (CloudFront) + - 1.1 131c765a25a20275f6d8dc2fce7692e7.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - SKaoCKtiX5gfNSMyjKlaJVanxePbz1KMmF_PdtQFQw38yIeDMMGRYg== + - elubIfqXPtCLE24b5--klyuwN_PKsyI3u-8TMGenjPdvyX_NugSYQQ== X-Amz-Cf-Pop: - - MUC50-C1 + - BUD50-C1 X-Cache: - Miss from cloudfront x-amz-expiration: - - expiry-date="Fri, 23 Oct 2020 00:00:00 GMT", rule-id="Archive file 1 day after + - expiry-date="Sat, 21 Nov 2020 00:00:00 GMT", rule-id="Archive file 1 day after creation" x-amz-server-side-encryption: - AES256 diff --git a/tests/integrational/fixtures/native_sync/file_upload/download_url.yaml b/tests/integrational/fixtures/native_sync/file_upload/download_url.yaml index 33452203..c619f40e 100644 --- a/tests/integrational/fixtures/native_sync/file_upload/download_url.yaml +++ b/tests/integrational/fixtures/native_sync/file_upload/download_url.yaml @@ -11,34 +11,34 @@ interactions: Content-Length: - '27' User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: POST uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/generate-upload-url?uuid=files_native_sync_uuid response: body: string: !!binary | - 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 headers: Access-Control-Allow-Origin: - '*' @@ -49,24 +49,31 @@ interactions: Content-Type: - application/json Date: - - Wed, 21 Oct 2020 17:37:56 GMT + - Thu, 19 Nov 2020 20:01:10 GMT Vary: - Accept-Encoding status: code: 200 message: OK - request: - body: "--7c7b7a4293a6179661da87570f8eb47f\r\nContent-Disposition: form-data; name=\"tagging\"\r\n\r\nObjectTTLInDays1\r\n--7c7b7a4293a6179661da87570f8eb47f\r\nContent-Disposition: - form-data; name=\"key\"\r\n\r\nsub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/fd23f90d-a149-457f-9787-26f8090bfe71/king_arthur.txt\r\n--7c7b7a4293a6179661da87570f8eb47f\r\nContent-Disposition: - form-data; name=\"Content-Type\"\r\n\r\ntext/plain; charset=utf-8\r\n--7c7b7a4293a6179661da87570f8eb47f\r\nContent-Disposition: - form-data; name=\"X-Amz-Credential\"\r\n\r\nAKIAY7AU6GQD5KWBS3FG/20201021/eu-central-1/s3/aws4_request\r\n--7c7b7a4293a6179661da87570f8eb47f\r\nContent-Disposition: - form-data; name=\"X-Amz-Security-Token\"\r\n\r\n\r\n--7c7b7a4293a6179661da87570f8eb47f\r\nContent-Disposition: - form-data; name=\"X-Amz-Algorithm\"\r\n\r\nAWS4-HMAC-SHA256\r\n--7c7b7a4293a6179661da87570f8eb47f\r\nContent-Disposition: - form-data; name=\"X-Amz-Date\"\r\n\r\n20201021T173856Z\r\n--7c7b7a4293a6179661da87570f8eb47f\r\nContent-Disposition: - form-data; name=\"Policy\"\r\n\r\nCnsKCSJleHBpcmF0aW9uIjogIjIwMjAtMTAtMjFUMTc6Mzg6NTZaIiwKCSJjb25kaXRpb25zIjogWwoJCXsiYnVja2V0IjogInB1Ym51Yi1tbmVtb3N5bmUtZmlsZXMtZXUtY2VudHJhbC0xLXByZCJ9LAoJCVsiZXEiLCAiJHRhZ2dpbmciLCAiPFRhZ2dpbmc+PFRhZ1NldD48VGFnPjxLZXk+T2JqZWN0VFRMSW5EYXlzPC9LZXk+PFZhbHVlPjE8L1ZhbHVlPjwvVGFnPjwvVGFnU2V0PjwvVGFnZ2luZz4iXSwKCQlbImVxIiwgIiRrZXkiLCAic3ViLWMtYzg4MjQyZmEtMTNhZS0xMWViLWJjMzQtY2U2ZmQ5NjdhZjk1L2YtdElBY05YSk85bTgxZldWVl9vLWZTUS12ZXVwTnJUbG9WQVVQYmVVUVEvZmQyM2Y5MGQtYTE0OS00NTdmLTk3ODctMjZmODA5MGJmZTcxL2tpbmdfYXJ0aHVyLnR4dCJdLAoJCVsiY29udGVudC1sZW5ndGgtcmFuZ2UiLCAwLCA1MjQyODgwXSwKCQlbInN0YXJ0cy13aXRoIiwgIiRDb250ZW50LVR5cGUiLCAiIl0sCgkJeyJ4LWFtei1jcmVkZW50aWFsIjogIkFLSUFZN0FVNkdRRDVLV0JTM0ZHLzIwMjAxMDIxL2V1LWNlbnRyYWwtMS9zMy9hd3M0X3JlcXVlc3QifSwKCQl7IngtYW16LXNlY3VyaXR5LXRva2VuIjogIiJ9LAoJCXsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwKCQl7IngtYW16LWRhdGUiOiAiMjAyMDEwMjFUMTczODU2WiIgfQoJXQp9Cg==\r\n--7c7b7a4293a6179661da87570f8eb47f\r\nContent-Disposition: - form-data; name=\"X-Amz-Signature\"\r\n\r\n2efaa00c9630d786e35b063aac3ac9379a94b0c6f49bc3c06adef335f5dbf61e\r\n--7c7b7a4293a6179661da87570f8eb47f\r\nContent-Disposition: - form-data; name=\"file\"; filename=\"king_arthur.txt\"\r\n\r\nKnights who say - Ni!\r\n--7c7b7a4293a6179661da87570f8eb47f--\r\n" + body: "--81a347c1a55f80c7a78e3ce009fb4b6e\r\nContent-Disposition: form-data; name=\"\ + tagging\"\r\n\r\nObjectTTLInDays1\r\ + \n--81a347c1a55f80c7a78e3ce009fb4b6e\r\nContent-Disposition: form-data; name=\"\ + key\"\r\n\r\nsub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/9f144c4c-ea4c-46a5-ab24-d81ef1142994/king_arthur.txt\r\ + \n--81a347c1a55f80c7a78e3ce009fb4b6e\r\nContent-Disposition: form-data; name=\"\ + Content-Type\"\r\n\r\ntext/plain; charset=utf-8\r\n--81a347c1a55f80c7a78e3ce009fb4b6e\r\ + \nContent-Disposition: form-data; name=\"X-Amz-Credential\"\r\n\r\nAKIAY7AU6GQD5KWBS3FG/20201119/eu-central-1/s3/aws4_request\r\ + \n--81a347c1a55f80c7a78e3ce009fb4b6e\r\nContent-Disposition: form-data; name=\"\ + X-Amz-Security-Token\"\r\n\r\n\r\n--81a347c1a55f80c7a78e3ce009fb4b6e\r\nContent-Disposition:\ + \ form-data; name=\"X-Amz-Algorithm\"\r\n\r\nAWS4-HMAC-SHA256\r\n--81a347c1a55f80c7a78e3ce009fb4b6e\r\ + \nContent-Disposition: form-data; name=\"X-Amz-Date\"\r\n\r\n20201119T200210Z\r\ + \n--81a347c1a55f80c7a78e3ce009fb4b6e\r\nContent-Disposition: form-data; name=\"\ + Policy\"\r\n\r\nCnsKCSJleHBpcmF0aW9uIjogIjIwMjAtMTEtMTlUMjA6MDI6MTBaIiwKCSJjb25kaXRpb25zIjogWwoJCXsiYnVja2V0IjogInB1Ym51Yi1tbmVtb3N5bmUtZmlsZXMtZXUtY2VudHJhbC0xLXByZCJ9LAoJCVsiZXEiLCAiJHRhZ2dpbmciLCAiPFRhZ2dpbmc+PFRhZ1NldD48VGFnPjxLZXk+T2JqZWN0VFRMSW5EYXlzPC9LZXk+PFZhbHVlPjE8L1ZhbHVlPjwvVGFnPjwvVGFnU2V0PjwvVGFnZ2luZz4iXSwKCQlbImVxIiwgIiRrZXkiLCAic3ViLWMtYzg4MjQyZmEtMTNhZS0xMWViLWJjMzQtY2U2ZmQ5NjdhZjk1L2YtdElBY05YSk85bTgxZldWVl9vLWZTUS12ZXVwTnJUbG9WQVVQYmVVUVEvOWYxNDRjNGMtZWE0Yy00NmE1LWFiMjQtZDgxZWYxMTQyOTk0L2tpbmdfYXJ0aHVyLnR4dCJdLAoJCVsiY29udGVudC1sZW5ndGgtcmFuZ2UiLCAwLCA1MjQyODgwXSwKCQlbInN0YXJ0cy13aXRoIiwgIiRDb250ZW50LVR5cGUiLCAiIl0sCgkJeyJ4LWFtei1jcmVkZW50aWFsIjogIkFLSUFZN0FVNkdRRDVLV0JTM0ZHLzIwMjAxMTE5L2V1LWNlbnRyYWwtMS9zMy9hd3M0X3JlcXVlc3QifSwKCQl7IngtYW16LXNlY3VyaXR5LXRva2VuIjogIiJ9LAoJCXsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwKCQl7IngtYW16LWRhdGUiOiAiMjAyMDExMTlUMjAwMjEwWiIgfQoJXQp9Cg==\r\ + \n--81a347c1a55f80c7a78e3ce009fb4b6e\r\nContent-Disposition: form-data; name=\"\ + X-Amz-Signature\"\r\n\r\n5345cfe5852a056b61e3609d27d77f79b54d9ca8bd3d08728d79acf870e79c13\r\ + \n--81a347c1a55f80c7a78e3ce009fb4b6e\r\nContent-Disposition: form-data; name=\"\ + file\"; filename=\"king_arthur.txt\"\r\n\r\nKnights who say Ni!\r\n--81a347c1a55f80c7a78e3ce009fb4b6e--\r\ + \n" headers: Accept: - '*/*' @@ -77,9 +84,9 @@ interactions: Content-Length: - '2314' Content-Type: - - multipart/form-data; boundary=7c7b7a4293a6179661da87570f8eb47f + - multipart/form-data; boundary=81a347c1a55f80c7a78e3ce009fb4b6e User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: POST uri: https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/ response: @@ -87,20 +94,20 @@ interactions: string: '' headers: Date: - - Wed, 21 Oct 2020 17:37:58 GMT + - Thu, 19 Nov 2020 20:01:11 GMT ETag: - '"3676cdb7a927db43c846070c4e7606c7"' Location: - - https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95%2Ff-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ%2Ffd23f90d-a149-457f-9787-26f8090bfe71%2Fking_arthur.txt + - https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95%2Ff-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ%2F9f144c4c-ea4c-46a5-ab24-d81ef1142994%2Fking_arthur.txt Server: - AmazonS3 x-amz-expiration: - - expiry-date="Fri, 23 Oct 2020 00:00:00 GMT", rule-id="Archive file 1 day after + - expiry-date="Sat, 21 Nov 2020 00:00:00 GMT", rule-id="Archive file 1 day after creation" x-amz-id-2: - - 0feIMn9JToxe9Z6GM3xkzFvDcUl7BCmOaiYES4QtgOh1NJ6ZyK8aV3+B59oul2CVjkJ6UcRpbeQ= + - ejWPHQ9G8PEIB1Levfzo41myQABuJy2DBKd3Rw9GUV+J6Qk746gPHGAxeRsXwIJtzwAouCUCYCA= x-amz-request-id: - - 65B50C782426A40D + - 3DC7349C6A117585 x-amz-server-side-encryption: - AES256 status: @@ -116,12 +123,12 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test_message%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%22fd23f90d-a149-457f-9787-26f8090bfe71%22%2C%20%22name%22%3A%20%22king_arthur.txt%22%7D%7D?meta=null&store=True&ttl=222&uuid=files_native_sync_uuid + uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test_message%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%229f144c4c-ea4c-46a5-ab24-d81ef1142994%22%2C%20%22name%22%3A%20%22king_arthur.txt%22%7D%7D?meta=null&store=1&ttl=222&uuid=files_native_sync_uuid response: body: - string: '[1,"Sent","16033018773734127"]' + string: '[1,"Sent","16058160706139422"]' headers: Access-Control-Allow-Methods: - GET @@ -136,7 +143,7 @@ interactions: Content-Type: - text/javascript; charset="UTF-8" Date: - - Wed, 21 Oct 2020 17:37:57 GMT + - Thu, 19 Nov 2020 20:01:10 GMT status: code: 200 message: OK @@ -150,9 +157,9 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/files/fd23f90d-a149-457f-9787-26f8090bfe71/king_arthur.txt?uuid=files_native_sync_uuid + uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/files/9f144c4c-ea4c-46a5-ab24-d81ef1142994/king_arthur.txt?uuid=files_native_sync_uuid response: body: string: '' @@ -160,15 +167,15 @@ interactions: Access-Control-Allow-Origin: - '*' Cache-Control: - - public, max-age=1563, immutable + - public, max-age=3770, immutable Connection: - keep-alive Content-Length: - '0' Date: - - Wed, 21 Oct 2020 17:37:57 GMT + - Thu, 19 Nov 2020 20:01:10 GMT Location: - - https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/fd23f90d-a149-457f-9787-26f8090bfe71/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201021%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201021T170000Z&X-Amz-Expires=3900&X-Amz-SignedHeaders=host&X-Amz-Signature=a2fb6511480a7771fe5c66d528da4b5745111af7bc62e062a3c825777482406a + - https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/9f144c4c-ea4c-46a5-ab24-d81ef1142994/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201119%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201119T200000Z&X-Amz-Expires=3900&X-Amz-SignedHeaders=host&X-Amz-Signature=3a643977ebb796baafbaa45ad35bedffbb0c7a83adcf84f5ee03eb0edeca49ad status: code: 307 message: Temporary Redirect diff --git a/tests/integrational/fixtures/native_sync/file_upload/publish_file_message.yaml b/tests/integrational/fixtures/native_sync/file_upload/publish_file_message.yaml index 07b821ba..3f5e573b 100644 --- a/tests/integrational/fixtures/native_sync/file_upload/publish_file_message.yaml +++ b/tests/integrational/fixtures/native_sync/file_upload/publish_file_message.yaml @@ -9,12 +9,12 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%222222%22%2C%20%22name%22%3A%20%22test%22%7D%7D?meta=%7B%7D&store=True&ttl=222&uuid=files_native_sync_uuid + uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%222222%22%2C%20%22name%22%3A%20%22test%22%7D%7D?meta=%7B%7D&store=1&ttl=222&uuid=files_native_sync_uuid response: body: - string: '[1,"Sent","16033019019787193"]' + string: '[1,"Sent","16058161010686497"]' headers: Access-Control-Allow-Methods: - GET @@ -29,7 +29,7 @@ interactions: Content-Type: - text/javascript; charset="UTF-8" Date: - - Wed, 21 Oct 2020 17:38:21 GMT + - Thu, 19 Nov 2020 20:01:41 GMT status: code: 200 message: OK diff --git a/tests/integrational/fixtures/native_sync/file_upload/publish_file_message_encrypted.yaml b/tests/integrational/fixtures/native_sync/file_upload/publish_file_message_encrypted.yaml index aa6a1b9f..5ff38f59 100644 --- a/tests/integrational/fixtures/native_sync/file_upload/publish_file_message_encrypted.yaml +++ b/tests/integrational/fixtures/native_sync/file_upload/publish_file_message_encrypted.yaml @@ -9,12 +9,12 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%222222%22%2C%20%22name%22%3A%20%22test%22%7D%7D?meta=%7B%7D&store=True&ttl=222&uuid=files_native_sync_uuid + uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%222222%22%2C%20%22name%22%3A%20%22test%22%7D%7D?meta=%7B%7D&store=1&ttl=222&uuid=files_native_sync_uuid response: body: - string: '[1,"Sent","16033019281666840"]' + string: '[1,"Sent","16058161166436271"]' headers: Access-Control-Allow-Methods: - GET @@ -29,7 +29,7 @@ interactions: Content-Type: - text/javascript; charset="UTF-8" Date: - - Wed, 21 Oct 2020 17:38:48 GMT + - Thu, 19 Nov 2020 20:01:56 GMT status: code: 200 message: OK diff --git a/tests/integrational/fixtures/native_sync/file_upload/publish_file_message_with_ptto.yaml b/tests/integrational/fixtures/native_sync/file_upload/publish_file_message_with_ptto.yaml new file mode 100644 index 00000000..68868379 --- /dev/null +++ b/tests/integrational/fixtures/native_sync/file_upload/publish_file_message_with_ptto.yaml @@ -0,0 +1,36 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - PubNub-Python/4.6.1 + method: GET + uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%222222%22%2C%20%22name%22%3A%20%22test%22%7D%7D?meta=%7B%7D&norep=false&ptto=16057799474000000&store=1&ttl=222&uuid=files_native_sync_uuid + response: + body: + string: '[1,"Sent","16057799474000000"]' + headers: + Access-Control-Allow-Methods: + - GET + Access-Control-Allow-Origin: + - '*' + Cache-Control: + - no-cache + Connection: + - keep-alive + Content-Length: + - '30' + Content-Type: + - text/javascript; charset="UTF-8" + Date: + - Thu, 19 Nov 2020 19:56:53 GMT + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integrational/fixtures/native_sync/file_upload/send_file_with_ptto.yaml b/tests/integrational/fixtures/native_sync/file_upload/send_file_with_ptto.yaml new file mode 100644 index 00000000..fe79c3f8 --- /dev/null +++ b/tests/integrational/fixtures/native_sync/file_upload/send_file_with_ptto.yaml @@ -0,0 +1,150 @@ +interactions: +- request: + body: '{"name": "king_arthur.txt"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '27' + User-Agent: + - PubNub-Python/4.6.1 + method: POST + uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_sync_ch/generate-upload-url?uuid=files_native_sync_uuid + response: + body: + string: !!binary | + H4sIAAAAAAAAA4xVW3OiSBT+K1u+zhC7m0skW/Ng8AYDRAW57W6lGmgQ5OJIE8Wp/PdtNMm4k5e1 + Culz/845H/Bz0FBM22bwgAD4OogxxYOHn4MsHjwMJDQSeMDfc/dYxJwQoxGHIyxxMkpILIsIRJE0 + +DqocEmY9y6r0md8oNv2cEdPdPD6dZBkBXlu90WN4+cD+dGShvbJ20PB/LeU7puH4XDfhlUbcmVF + yrrpKsL1UQ1HWi4iFT3ggoPc/hDfNfwdLvG5rvCxuYvqcshKl4Ru6x7q8smymUxO++yAaVZXz6yT + HhUCCHAQclC2EXgA/AOUAuaY1IfyOclIEbPO//o52JGOOVOcpqwLZn/BRduH/90CwEf2VX8RyIfK + IvQ3za34nXRX8SnMSURtW1erCe6aq3X4Yb7KTl/vqoBvHjeqN81vFYafMQz/g5St4L2z/v9XVw2b + d8RFoxESUII5yGPCZkRCLox4gY1dSmJZuseJLA4TjqrjyPS0J7kcwcR1nOeaS6wV90LavXmwi9oZ + b5Yh2axWw//Dl+FnmrxjVOqKso1zdrcnN2ApOdHhvsBZ9ecf0RYfGkK/tTThRjehHjcuz5xyIDFL + kOHiJnz8XR379+ONNF9NxO/uo8XP5sOeFRBCeXjLsmHDDxm3hA+q/p7fIlF7yGjH2fWOVDc1PnmO + i7RmntvyFohrCdzCGCuctRgjUfoUNOkZ+8v/HSPjLeB71v7yX9ZFFt0uVKma74qlFWTxuI/KGcCu + 3Kp5naq5ejTyMTXsKbuKDTtLxsSQDDvAanbsY/IQiTvsrffsfu5j3GOtKV6T+ZWTY+SAS57qEfql + CP0M0rB0aMibYlhuaFAWTeAZNPA21EdOGy+0baiAk+49doGiyfqY5XKaLPCmma6MM22x3gYo3odl + dJGXsw/5y+UMzSKeCCNnPquW+UkPvN0XG2k/AtcEzmxtWK449b3ivFTki205C7bhwimW+XSkw/fz + 8eUaf71vWA/v5wAVbXAWMs9iva+KUC2dE5tDqmbrA8t3wRTxTqa7BvXPqWDkqy4o+9mZ28ACJ8Pt + bVpunFes3w0KypVo5vE2yHdQRz6Np8WjD0Tf2o3E0E5PQRG7TiG/6G5gbyyIAs852pW2Ceeyu3Kc + lV86zsaZvpi5KpgT42icI2qiKfQtAIKJKujuLPdtnz7ZWhm4rJatHn1kIB1RNrM48T0N4IXT6dVa + iBUtfp+3j+Q2nrN9KLAJXLGK5yllvGgDtOl7PLIL9r09TdLjxywqE/T5oo69D7x1/TaXCeMFYDmA + 7qzFaH6Jz9QCNEq600in9RgpyWAelc6u98PurLlwZjfTrc0sMMHMMXfxej1xdAdotgGChX6+8PLE + eCnqyIG6axZhte5890gNSz4bnbyNeQN4vFZEnlNE/CpLrjjv1Sqlvgsl3TMLn3c6hlXUvfUL4+qV + 89kb7xiHiQK3oVcz/1MV8to+nm/pGzZvw3ZoTeHjqoO2NZ12pu1/ruGutzHr+SkbZwxvZ0ymp7fn + iO1qitxMTZNVrXmrvayk3759fmVkacU+r4fbB3s0kiQo8VhGKBakmE+ADASJhFgQAAEyxAlE4n0o + xQBGmESjML5nv4SXBVlGkSwPXv95ff0XAAD//wMA2y8GvLgHAAA= + headers: + Access-Control-Allow-Origin: + - '*' + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Thu, 19 Nov 2020 20:02:16 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: "--9a2cc9a17c70417a691d5d50320d1a2b\r\nContent-Disposition: form-data; name=\"\ + tagging\"\r\n\r\nObjectTTLInDays1\r\ + \n--9a2cc9a17c70417a691d5d50320d1a2b\r\nContent-Disposition: form-data; name=\"\ + key\"\r\n\r\nsub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/f-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ/62843037-7a5a-4d28-aca6-92fed9520cc6/king_arthur.txt\r\ + \n--9a2cc9a17c70417a691d5d50320d1a2b\r\nContent-Disposition: form-data; name=\"\ + Content-Type\"\r\n\r\ntext/plain; charset=utf-8\r\n--9a2cc9a17c70417a691d5d50320d1a2b\r\ + \nContent-Disposition: form-data; name=\"X-Amz-Credential\"\r\n\r\nAKIAY7AU6GQD5KWBS3FG/20201119/eu-central-1/s3/aws4_request\r\ + \n--9a2cc9a17c70417a691d5d50320d1a2b\r\nContent-Disposition: form-data; name=\"\ + X-Amz-Security-Token\"\r\n\r\n\r\n--9a2cc9a17c70417a691d5d50320d1a2b\r\nContent-Disposition:\ + \ form-data; name=\"X-Amz-Algorithm\"\r\n\r\nAWS4-HMAC-SHA256\r\n--9a2cc9a17c70417a691d5d50320d1a2b\r\ + \nContent-Disposition: form-data; name=\"X-Amz-Date\"\r\n\r\n20201119T200316Z\r\ + \n--9a2cc9a17c70417a691d5d50320d1a2b\r\nContent-Disposition: form-data; name=\"\ + Policy\"\r\n\r\nCnsKCSJleHBpcmF0aW9uIjogIjIwMjAtMTEtMTlUMjA6MDM6MTZaIiwKCSJjb25kaXRpb25zIjogWwoJCXsiYnVja2V0IjogInB1Ym51Yi1tbmVtb3N5bmUtZmlsZXMtZXUtY2VudHJhbC0xLXByZCJ9LAoJCVsiZXEiLCAiJHRhZ2dpbmciLCAiPFRhZ2dpbmc+PFRhZ1NldD48VGFnPjxLZXk+T2JqZWN0VFRMSW5EYXlzPC9LZXk+PFZhbHVlPjE8L1ZhbHVlPjwvVGFnPjwvVGFnU2V0PjwvVGFnZ2luZz4iXSwKCQlbImVxIiwgIiRrZXkiLCAic3ViLWMtYzg4MjQyZmEtMTNhZS0xMWViLWJjMzQtY2U2ZmQ5NjdhZjk1L2YtdElBY05YSk85bTgxZldWVl9vLWZTUS12ZXVwTnJUbG9WQVVQYmVVUVEvNjI4NDMwMzctN2E1YS00ZDI4LWFjYTYtOTJmZWQ5NTIwY2M2L2tpbmdfYXJ0aHVyLnR4dCJdLAoJCVsiY29udGVudC1sZW5ndGgtcmFuZ2UiLCAwLCA1MjQyODgwXSwKCQlbInN0YXJ0cy13aXRoIiwgIiRDb250ZW50LVR5cGUiLCAiIl0sCgkJeyJ4LWFtei1jcmVkZW50aWFsIjogIkFLSUFZN0FVNkdRRDVLV0JTM0ZHLzIwMjAxMTE5L2V1LWNlbnRyYWwtMS9zMy9hd3M0X3JlcXVlc3QifSwKCQl7IngtYW16LXNlY3VyaXR5LXRva2VuIjogIiJ9LAoJCXsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwKCQl7IngtYW16LWRhdGUiOiAiMjAyMDExMTlUMjAwMzE2WiIgfQoJXQp9Cg==\r\ + \n--9a2cc9a17c70417a691d5d50320d1a2b\r\nContent-Disposition: form-data; name=\"\ + X-Amz-Signature\"\r\n\r\n8866163a922d46d3f09046eba440e091af1257b6d01caec8bd7777f394992c99\r\ + \n--9a2cc9a17c70417a691d5d50320d1a2b\r\nContent-Disposition: form-data; name=\"\ + file\"; filename=\"king_arthur.txt\"\r\n\r\nKnights who say Ni!\r\n--9a2cc9a17c70417a691d5d50320d1a2b--\r\ + \n" + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '2314' + Content-Type: + - multipart/form-data; boundary=9a2cc9a17c70417a691d5d50320d1a2b + User-Agent: + - PubNub-Python/4.6.1 + method: POST + uri: https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/ + response: + body: + string: '' + headers: + Date: + - Thu, 19 Nov 2020 20:02:17 GMT + ETag: + - '"3676cdb7a927db43c846070c4e7606c7"' + Location: + - https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95%2Ff-tIAcNXJO9m81fWVV_o-fSQ-veupNrTloVAUPbeUQQ%2F62843037-7a5a-4d28-aca6-92fed9520cc6%2Fking_arthur.txt + Server: + - AmazonS3 + x-amz-expiration: + - expiry-date="Sat, 21 Nov 2020 00:00:00 GMT", rule-id="Archive file 1 day after + creation" + x-amz-id-2: + - ni/6kQFsLQrXV0wa1UpVrO2jbhDDngMdCBnFrO0AyYpVxI6ygUg0H3qdM3cPCWeLtSUCFoDzKqg= + x-amz-request-id: + - B88BF0CCE2F534B9 + x-amz-server-side-encryption: + - AES256 + status: + code: 204 + message: No Content +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - PubNub-Python/4.6.1 + method: GET + uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_sync_ch/0/%7B%22message%22%3A%20%7B%22test_message%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%2262843037-7a5a-4d28-aca6-92fed9520cc6%22%2C%20%22name%22%3A%20%22king_arthur.txt%22%7D%7D?meta=null&ptto=16057799474000000&store=1&ttl=222&uuid=files_native_sync_uuid + response: + body: + string: '[1,"Sent","16057799474000000"]' + headers: + Access-Control-Allow-Methods: + - GET + Access-Control-Allow-Origin: + - '*' + Cache-Control: + - no-cache + Connection: + - keep-alive + Content-Length: + - '30' + Content-Type: + - text/javascript; charset="UTF-8" + Date: + - Thu, 19 Nov 2020 20:02:17 GMT + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integrational/fixtures/native_sync/pam/grant_with_spaces.yaml b/tests/integrational/fixtures/native_sync/pam/grant_with_spaces.yaml new file mode 100644 index 00000000..c639814b --- /dev/null +++ b/tests/integrational/fixtures/native_sync/pam/grant_with_spaces.yaml @@ -0,0 +1,40 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - PubNub-Python/4.6.1 + method: GET + uri: https://ps.pndsn.com/v2/auth/grant/sub-key/sub-c-7ba2ac4c-4836-11e6-85a4-0619f8945a4f?auth=client+auth+key+with+spaces&channel=test+channel&r=1&signature=v2.4se-YdYJx5VMZsBjzVgBxG8rRfr62Wabb516r2F3mtQ×tamp=1604650731&ttl=60&w=1 + response: + body: + string: '{"message":"Success","payload":{"level":"user","subscribe_key":"sub-c-7ba2ac4c-4836-11e6-85a4-0619f8945a4f","ttl":60,"channel":"test + channel","auths":{"client auth key with spaces":{"r":1,"w":1,"m":0,"d":0,"g":0,"u":0,"j":0}}},"service":"Access + Manager","status":200}' + headers: + Access-Control-Allow-Headers: + - Origin, X-Requested-With, Content-Type, Accept + Access-Control-Allow-Methods: + - GET + Access-Control-Allow-Origin: + - '*' + Cache-Control: + - no-cache, no-store, must-revalidate + Connection: + - keep-alive + Content-Length: + - '267' + Content-Type: + - text/javascript; charset=UTF-8 + Date: + - Fri, 06 Nov 2020 08:18:52 GMT + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integrational/fixtures/native_sync/publish/publish_with_ptto_and_replicate.yaml b/tests/integrational/fixtures/native_sync/publish/publish_with_ptto_and_replicate.yaml new file mode 100644 index 00000000..4808caf6 --- /dev/null +++ b/tests/integrational/fixtures/native_sync/publish/publish_with_ptto_and_replicate.yaml @@ -0,0 +1,36 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - PubNub-Python/4.6.1 + method: GET + uri: https://ps.pndsn.com/publish/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/ch1/0/%22hi%22?norep=true&ptto=16057799474000000&seqn=1 + response: + body: + string: '[1,"Sent","16057799474000000"]' + headers: + Access-Control-Allow-Methods: + - GET + Access-Control-Allow-Origin: + - '*' + Cache-Control: + - no-cache + Connection: + - keep-alive + Content-Length: + - '30' + Content-Type: + - text/javascript; charset="UTF-8" + Date: + - Thu, 19 Nov 2020 19:59:27 GMT + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integrational/fixtures/native_threads/file_upload/send_file.yaml b/tests/integrational/fixtures/native_threads/file_upload/send_file.yaml index 60d43b40..970c234c 100644 --- a/tests/integrational/fixtures/native_threads/file_upload/send_file.yaml +++ b/tests/integrational/fixtures/native_threads/file_upload/send_file.yaml @@ -11,34 +11,34 @@ interactions: Content-Length: - '27' User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: POST - uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_threads_ch/generate-upload-url?pnsdk=PubNub-Python%2F4.5.4&uuid=files_threads_uuid + uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_threads_ch/generate-upload-url?uuid=files_threads_uuid response: body: string: !!binary | - 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 headers: Access-Control-Allow-Origin: - '*' @@ -49,24 +49,31 @@ interactions: Content-Type: - application/json Date: - - Wed, 21 Oct 2020 17:15:51 GMT + - Thu, 19 Nov 2020 20:09:34 GMT Vary: - Accept-Encoding status: code: 200 message: OK - request: - body: "--64f64f9d25e67df4227350aff85be8d5\r\nContent-Disposition: form-data; name=\"tagging\"\r\n\r\nObjectTTLInDays1\r\n--64f64f9d25e67df4227350aff85be8d5\r\nContent-Disposition: - form-data; name=\"key\"\r\n\r\nsub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/jaDgk-9c_B8i5c_vBjUOQQfLTonvLy7MImT7mZ_coCQ/47811ab3-ff1b-48ae-8717-ac0afdd4b51e/king_arthur.txt\r\n--64f64f9d25e67df4227350aff85be8d5\r\nContent-Disposition: - form-data; name=\"Content-Type\"\r\n\r\ntext/plain; charset=utf-8\r\n--64f64f9d25e67df4227350aff85be8d5\r\nContent-Disposition: - form-data; name=\"X-Amz-Credential\"\r\n\r\nAKIAY7AU6GQD5KWBS3FG/20201021/eu-central-1/s3/aws4_request\r\n--64f64f9d25e67df4227350aff85be8d5\r\nContent-Disposition: - form-data; name=\"X-Amz-Security-Token\"\r\n\r\n\r\n--64f64f9d25e67df4227350aff85be8d5\r\nContent-Disposition: - form-data; name=\"X-Amz-Algorithm\"\r\n\r\nAWS4-HMAC-SHA256\r\n--64f64f9d25e67df4227350aff85be8d5\r\nContent-Disposition: - form-data; name=\"X-Amz-Date\"\r\n\r\n20201021T171651Z\r\n--64f64f9d25e67df4227350aff85be8d5\r\nContent-Disposition: - form-data; name=\"Policy\"\r\n\r\nCnsKCSJleHBpcmF0aW9uIjogIjIwMjAtMTAtMjFUMTc6MTY6NTFaIiwKCSJjb25kaXRpb25zIjogWwoJCXsiYnVja2V0IjogInB1Ym51Yi1tbmVtb3N5bmUtZmlsZXMtZXUtY2VudHJhbC0xLXByZCJ9LAoJCVsiZXEiLCAiJHRhZ2dpbmciLCAiPFRhZ2dpbmc+PFRhZ1NldD48VGFnPjxLZXk+T2JqZWN0VFRMSW5EYXlzPC9LZXk+PFZhbHVlPjE8L1ZhbHVlPjwvVGFnPjwvVGFnU2V0PjwvVGFnZ2luZz4iXSwKCQlbImVxIiwgIiRrZXkiLCAic3ViLWMtYzg4MjQyZmEtMTNhZS0xMWViLWJjMzQtY2U2ZmQ5NjdhZjk1L2phRGdrLTljX0I4aTVjX3ZCalVPUVFmTFRvbnZMeTdNSW1UN21aX2NvQ1EvNDc4MTFhYjMtZmYxYi00OGFlLTg3MTctYWMwYWZkZDRiNTFlL2tpbmdfYXJ0aHVyLnR4dCJdLAoJCVsiY29udGVudC1sZW5ndGgtcmFuZ2UiLCAwLCA1MjQyODgwXSwKCQlbInN0YXJ0cy13aXRoIiwgIiRDb250ZW50LVR5cGUiLCAiIl0sCgkJeyJ4LWFtei1jcmVkZW50aWFsIjogIkFLSUFZN0FVNkdRRDVLV0JTM0ZHLzIwMjAxMDIxL2V1LWNlbnRyYWwtMS9zMy9hd3M0X3JlcXVlc3QifSwKCQl7IngtYW16LXNlY3VyaXR5LXRva2VuIjogIiJ9LAoJCXsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwKCQl7IngtYW16LWRhdGUiOiAiMjAyMDEwMjFUMTcxNjUxWiIgfQoJXQp9Cg==\r\n--64f64f9d25e67df4227350aff85be8d5\r\nContent-Disposition: - form-data; name=\"X-Amz-Signature\"\r\n\r\n87214c3c0a2a2b50eb5ec4e8712c411ba6b41611dffd83dac472df99a6147b7e\r\n--64f64f9d25e67df4227350aff85be8d5\r\nContent-Disposition: - form-data; name=\"file\"; filename=\"king_arthur.txt\"\r\n\r\nKnights who say - Ni!\r\n--64f64f9d25e67df4227350aff85be8d5--\r\n" + body: "--0600e76375c9a562f09ba9f264f9c2ef\r\nContent-Disposition: form-data; name=\"\ + tagging\"\r\n\r\nObjectTTLInDays1\r\ + \n--0600e76375c9a562f09ba9f264f9c2ef\r\nContent-Disposition: form-data; name=\"\ + key\"\r\n\r\nsub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/jaDgk-9c_B8i5c_vBjUOQQfLTonvLy7MImT7mZ_coCQ/e8c30743-6a47-4954-927c-5498270972b5/king_arthur.txt\r\ + \n--0600e76375c9a562f09ba9f264f9c2ef\r\nContent-Disposition: form-data; name=\"\ + Content-Type\"\r\n\r\ntext/plain; charset=utf-8\r\n--0600e76375c9a562f09ba9f264f9c2ef\r\ + \nContent-Disposition: form-data; name=\"X-Amz-Credential\"\r\n\r\nAKIAY7AU6GQD5KWBS3FG/20201119/eu-central-1/s3/aws4_request\r\ + \n--0600e76375c9a562f09ba9f264f9c2ef\r\nContent-Disposition: form-data; name=\"\ + X-Amz-Security-Token\"\r\n\r\n\r\n--0600e76375c9a562f09ba9f264f9c2ef\r\nContent-Disposition:\ + \ form-data; name=\"X-Amz-Algorithm\"\r\n\r\nAWS4-HMAC-SHA256\r\n--0600e76375c9a562f09ba9f264f9c2ef\r\ + \nContent-Disposition: form-data; name=\"X-Amz-Date\"\r\n\r\n20201119T201034Z\r\ + \n--0600e76375c9a562f09ba9f264f9c2ef\r\nContent-Disposition: form-data; name=\"\ + Policy\"\r\n\r\nCnsKCSJleHBpcmF0aW9uIjogIjIwMjAtMTEtMTlUMjA6MTA6MzRaIiwKCSJjb25kaXRpb25zIjogWwoJCXsiYnVja2V0IjogInB1Ym51Yi1tbmVtb3N5bmUtZmlsZXMtZXUtY2VudHJhbC0xLXByZCJ9LAoJCVsiZXEiLCAiJHRhZ2dpbmciLCAiPFRhZ2dpbmc+PFRhZ1NldD48VGFnPjxLZXk+T2JqZWN0VFRMSW5EYXlzPC9LZXk+PFZhbHVlPjE8L1ZhbHVlPjwvVGFnPjwvVGFnU2V0PjwvVGFnZ2luZz4iXSwKCQlbImVxIiwgIiRrZXkiLCAic3ViLWMtYzg4MjQyZmEtMTNhZS0xMWViLWJjMzQtY2U2ZmQ5NjdhZjk1L2phRGdrLTljX0I4aTVjX3ZCalVPUVFmTFRvbnZMeTdNSW1UN21aX2NvQ1EvZThjMzA3NDMtNmE0Ny00OTU0LTkyN2MtNTQ5ODI3MDk3MmI1L2tpbmdfYXJ0aHVyLnR4dCJdLAoJCVsiY29udGVudC1sZW5ndGgtcmFuZ2UiLCAwLCA1MjQyODgwXSwKCQlbInN0YXJ0cy13aXRoIiwgIiRDb250ZW50LVR5cGUiLCAiIl0sCgkJeyJ4LWFtei1jcmVkZW50aWFsIjogIkFLSUFZN0FVNkdRRDVLV0JTM0ZHLzIwMjAxMTE5L2V1LWNlbnRyYWwtMS9zMy9hd3M0X3JlcXVlc3QifSwKCQl7IngtYW16LXNlY3VyaXR5LXRva2VuIjogIiJ9LAoJCXsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwKCQl7IngtYW16LWRhdGUiOiAiMjAyMDExMTlUMjAxMDM0WiIgfQoJXQp9Cg==\r\ + \n--0600e76375c9a562f09ba9f264f9c2ef\r\nContent-Disposition: form-data; name=\"\ + X-Amz-Signature\"\r\n\r\n08e39a1645a31fd24a8b03fba594f8fe14d10dd053a1e849f2f89bdf27dd3308\r\ + \n--0600e76375c9a562f09ba9f264f9c2ef\r\nContent-Disposition: form-data; name=\"\ + file\"; filename=\"king_arthur.txt\"\r\n\r\nKnights who say Ni!\r\n--0600e76375c9a562f09ba9f264f9c2ef--\r\ + \n" headers: Accept: - '*/*' @@ -77,9 +84,9 @@ interactions: Content-Length: - '2314' Content-Type: - - multipart/form-data; boundary=64f64f9d25e67df4227350aff85be8d5 + - multipart/form-data; boundary=0600e76375c9a562f09ba9f264f9c2ef User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: POST uri: https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/ response: @@ -87,20 +94,20 @@ interactions: string: '' headers: Date: - - Wed, 21 Oct 2020 17:15:52 GMT + - Thu, 19 Nov 2020 20:09:35 GMT ETag: - '"3676cdb7a927db43c846070c4e7606c7"' Location: - - https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95%2FjaDgk-9c_B8i5c_vBjUOQQfLTonvLy7MImT7mZ_coCQ%2F47811ab3-ff1b-48ae-8717-ac0afdd4b51e%2Fking_arthur.txt + - https://pubnub-mnemosyne-files-eu-central-1-prd.s3.amazonaws.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95%2FjaDgk-9c_B8i5c_vBjUOQQfLTonvLy7MImT7mZ_coCQ%2Fe8c30743-6a47-4954-927c-5498270972b5%2Fking_arthur.txt Server: - AmazonS3 x-amz-expiration: - - expiry-date="Fri, 23 Oct 2020 00:00:00 GMT", rule-id="Archive file 1 day after + - expiry-date="Sat, 21 Nov 2020 00:00:00 GMT", rule-id="Archive file 1 day after creation" x-amz-id-2: - - h5XSkRzDv8+uJegA0IZjyfahyO9UbpTWYycPP9S4/w3ew8bkFkEIvfBeDxcnOzNfmfmvD53/ZTI= + - hn0PjJhB0EdzljaOFL+jcMfAqAYz7ngdBwQxeTcT2igcP+Gn+4ji6Lzr3ryl0gIvbO4lKibOr2U= x-amz-request-id: - - 2836EF88DC870531 + - 31C942097C094481 x-amz-server-side-encryption: - AES256 status: @@ -116,12 +123,12 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_threads_ch/0/%7B%22message%22%3A%20%7B%22test_message%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%2247811ab3-ff1b-48ae-8717-ac0afdd4b51e%22%2C%20%22name%22%3A%20%22king_arthur.txt%22%7D%7D?meta=null&ttl=222&store=True&pnsdk=PubNub-Python%2F4.5.4&uuid=files_threads_uuid + uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_threads_ch/0/%7B%22message%22%3A%20%7B%22test_message%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%22e8c30743-6a47-4954-927c-5498270972b5%22%2C%20%22name%22%3A%20%22king_arthur.txt%22%7D%7D?meta=null&store=1&ttl=222&uuid=files_threads_uuid response: body: - string: '[1,"Sent","16033005519117092"]' + string: '[1,"Sent","16058165752026073"]' headers: Access-Control-Allow-Methods: - GET @@ -136,7 +143,7 @@ interactions: Content-Type: - text/javascript; charset="UTF-8" Date: - - Wed, 21 Oct 2020 17:15:51 GMT + - Thu, 19 Nov 2020 20:09:35 GMT status: code: 200 message: OK diff --git a/tests/integrational/fixtures/native_threads/file_upload/test_download_file.yaml b/tests/integrational/fixtures/native_threads/file_upload/test_delete_file.yaml similarity index 72% rename from tests/integrational/fixtures/native_threads/file_upload/test_download_file.yaml rename to tests/integrational/fixtures/native_threads/file_upload/test_delete_file.yaml index ebd98a0c..fc9ec8ed 100644 --- a/tests/integrational/fixtures/native_threads/file_upload/test_download_file.yaml +++ b/tests/integrational/fixtures/native_threads/file_upload/test_delete_file.yaml @@ -11,9 +11,9 @@ interactions: Content-Length: - '0' User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: DELETE - uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_threads_ch/files/47811ab3-ff1b-48ae-8717-ac0afdd4b51e/king_arthur.txt?pnsdk=PubNub-Python%2F4.5.4&uuid=files_threads_uuid + uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_threads_ch/files/e8c30743-6a47-4954-927c-5498270972b5/king_arthur.txt?uuid=files_threads_uuid response: body: string: '{"status":200}' @@ -27,7 +27,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 21 Oct 2020 17:23:16 GMT + - Thu, 19 Nov 2020 20:11:15 GMT status: code: 200 message: OK diff --git a/tests/integrational/fixtures/native_threads/file_upload/test_get_file_url.yaml b/tests/integrational/fixtures/native_threads/file_upload/test_get_file_url.yaml index 79d1c53b..c6008009 100644 --- a/tests/integrational/fixtures/native_threads/file_upload/test_get_file_url.yaml +++ b/tests/integrational/fixtures/native_threads/file_upload/test_get_file_url.yaml @@ -9,9 +9,9 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_threads_ch/files/47811ab3-ff1b-48ae-8717-ac0afdd4b51e/king_arthur.txt?pnsdk=PubNub-Python%2F4.5.4&uuid=files_threads_uuid + uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_threads_ch/files/e8c30743-6a47-4954-927c-5498270972b5/king_arthur.txt?uuid=files_threads_uuid response: body: string: '' @@ -19,15 +19,15 @@ interactions: Access-Control-Allow-Origin: - '*' Cache-Control: - - public, max-age=2397, immutable + - public, max-age=3261, immutable Connection: - keep-alive Content-Length: - '0' Date: - - Wed, 21 Oct 2020 17:24:04 GMT + - Thu, 19 Nov 2020 20:09:39 GMT Location: - - https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/jaDgk-9c_B8i5c_vBjUOQQfLTonvLy7MImT7mZ_coCQ/47811ab3-ff1b-48ae-8717-ac0afdd4b51e/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201021%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201021T170000Z&X-Amz-Expires=3900&X-Amz-SignedHeaders=host&X-Amz-Signature=3e4d34d038f34ec647a684a9e9c36c9b8e246001ee759c1674771f390cdf06d3 + - https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/jaDgk-9c_B8i5c_vBjUOQQfLTonvLy7MImT7mZ_coCQ/e8c30743-6a47-4954-927c-5498270972b5/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201119%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201119T200000Z&X-Amz-Expires=3900&X-Amz-SignedHeaders=host&X-Amz-Signature=c7b0e30a1488b0f463c6eb92422ca3620d30cd800145330cfe118631539d19cc status: code: 307 message: Temporary Redirect diff --git a/tests/integrational/fixtures/native_threads/file_upload/test_publish_file_message.yaml b/tests/integrational/fixtures/native_threads/file_upload/test_publish_file_message.yaml index 89bd0299..f7327b29 100644 --- a/tests/integrational/fixtures/native_threads/file_upload/test_publish_file_message.yaml +++ b/tests/integrational/fixtures/native_threads/file_upload/test_publish_file_message.yaml @@ -9,12 +9,12 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_threads_ch/0/%7B%22message%22%3A%20%7B%22test%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%222222%22%2C%20%22name%22%3A%20%22test%22%7D%7D?meta=%7B%7D&ttl=222&store=True&pnsdk=PubNub-Python%2F4.5.4&uuid=files_threads_uuid + uri: https://ps.pndsn.com/v1/files/publish-file/pub-c-3c5e736c-62de-4b5e-bcaf-bb5eee46a5a3/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/0/files_native_threads_ch/0/%7B%22message%22%3A%20%7B%22test%22%3A%20%22test%22%7D%2C%20%22file%22%3A%20%7B%22id%22%3A%20%222222%22%2C%20%22name%22%3A%20%22test%22%7D%7D?meta=%7B%7D&store=1&ttl=222&uuid=files_threads_uuid response: body: - string: '[1,"Sent","16033011692080880"]' + string: '[1,"Sent","16058165151917559"]' headers: Access-Control-Allow-Methods: - GET @@ -29,7 +29,7 @@ interactions: Content-Type: - text/javascript; charset="UTF-8" Date: - - Wed, 21 Oct 2020 17:26:09 GMT + - Thu, 19 Nov 2020 20:08:35 GMT status: code: 200 message: OK diff --git a/tests/integrational/fixtures/native_threads/file_upload/test_send_and_download_files.yaml b/tests/integrational/fixtures/native_threads/file_upload/test_send_and_download_files.yaml index d4738a4d..dd12aa38 100644 --- a/tests/integrational/fixtures/native_threads/file_upload/test_send_and_download_files.yaml +++ b/tests/integrational/fixtures/native_threads/file_upload/test_send_and_download_files.yaml @@ -9,9 +9,9 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_threads_ch/files/47811ab3-ff1b-48ae-8717-ac0afdd4b51e/king_arthur.txt?pnsdk=PubNub-Python%2F4.5.4&uuid=files_threads_uuid + uri: https://ps.pndsn.com/v1/files/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/channels/files_native_threads_ch/files/e8c30743-6a47-4954-927c-5498270972b5/king_arthur.txt?uuid=files_threads_uuid response: body: string: '' @@ -19,15 +19,15 @@ interactions: Access-Control-Allow-Origin: - '*' Cache-Control: - - public, max-age=2467, immutable + - public, max-age=3236, immutable Connection: - keep-alive Content-Length: - '0' Date: - - Wed, 21 Oct 2020 17:22:53 GMT + - Thu, 19 Nov 2020 20:10:04 GMT Location: - - https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/jaDgk-9c_B8i5c_vBjUOQQfLTonvLy7MImT7mZ_coCQ/47811ab3-ff1b-48ae-8717-ac0afdd4b51e/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201021%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201021T170000Z&X-Amz-Expires=3900&X-Amz-SignedHeaders=host&X-Amz-Signature=3e4d34d038f34ec647a684a9e9c36c9b8e246001ee759c1674771f390cdf06d3 + - https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/jaDgk-9c_B8i5c_vBjUOQQfLTonvLy7MImT7mZ_coCQ/e8c30743-6a47-4954-927c-5498270972b5/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201119%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201119T200000Z&X-Amz-Expires=3900&X-Amz-SignedHeaders=host&X-Amz-Signature=c7b0e30a1488b0f463c6eb92422ca3620d30cd800145330cfe118631539d19cc status: code: 307 message: Temporary Redirect @@ -41,9 +41,9 @@ interactions: Connection: - keep-alive User-Agent: - - PubNub-Python/4.5.4 + - PubNub-Python/4.6.1 method: GET - uri: https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/jaDgk-9c_B8i5c_vBjUOQQfLTonvLy7MImT7mZ_coCQ/47811ab3-ff1b-48ae-8717-ac0afdd4b51e/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201021%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201021T170000Z&X-Amz-Expires=3900&X-Amz-SignedHeaders=host&X-Amz-Signature=3e4d34d038f34ec647a684a9e9c36c9b8e246001ee759c1674771f390cdf06d3 + uri: https://files-eu-central-1.pndsn.com/sub-c-c88242fa-13ae-11eb-bc34-ce6fd967af95/jaDgk-9c_B8i5c_vBjUOQQfLTonvLy7MImT7mZ_coCQ/e8c30743-6a47-4954-927c-5498270972b5/king_arthur.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAY7AU6GQD5KWBS3FG%2F20201119%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20201119T200000Z&X-Amz-Expires=3900&X-Amz-Signature=c7b0e30a1488b0f463c6eb92422ca3620d30cd800145330cfe118631539d19cc&X-Amz-SignedHeaders=host response: body: string: Knights who say Ni! @@ -57,23 +57,23 @@ interactions: Content-Type: - text/plain; charset=utf-8 Date: - - Wed, 21 Oct 2020 17:22:54 GMT + - Thu, 19 Nov 2020 20:10:05 GMT ETag: - '"3676cdb7a927db43c846070c4e7606c7"' Last-Modified: - - Wed, 21 Oct 2020 17:15:52 GMT + - Thu, 19 Nov 2020 20:09:35 GMT Server: - AmazonS3 Via: - - 1.1 2b782f5f082f9e98adf8c50f24b6bb6d.cloudfront.net (CloudFront) + - 1.1 31035bb61f7468c9d95f8f0f36403249.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - z01BNGhf8i3yLVlNp6wx_nJEyLAP9f6a2yz-5O-6Bl6pwHH7tAVZuQ== + - cjnzAPi7WvHbEPVsWw1c_CbNymikI8PS8QwY1vLom0Yp16giV7we1w== X-Amz-Cf-Pop: - - HAM50-C3 + - BUD50-C1 X-Cache: - Miss from cloudfront x-amz-expiration: - - expiry-date="Fri, 23 Oct 2020 00:00:00 GMT", rule-id="Archive file 1 day after + - expiry-date="Sat, 21 Nov 2020 00:00:00 GMT", rule-id="Archive file 1 day after creation" x-amz-server-side-encryption: - AES256 diff --git a/tests/integrational/native_sync/test_file_upload.py b/tests/integrational/native_sync/test_file_upload.py index 37b2b516..315e1d4f 100644 --- a/tests/integrational/native_sync/test_file_upload.py +++ b/tests/integrational/native_sync/test_file_upload.py @@ -23,18 +23,24 @@ pubnub.config.uuid = "files_native_sync_uuid" -def send_file(file_for_upload, cipher_key=None, pass_binary=False): +def send_file(file_for_upload, cipher_key=None, pass_binary=False, timetoken_override=None): with open(file_for_upload.strpath, "rb") as fd: if pass_binary: fd = fd.read() - envelope = pubnub.send_file().\ + + send_file_endpoint = pubnub.send_file().\ channel(CHANNEL).\ file_name(file_for_upload.basename).\ message({"test_message": "test"}).\ should_store(True).\ ttl(222).\ file_object(fd).\ - cipher_key(cipher_key).sync() + cipher_key(cipher_key) + + if timetoken_override: + send_file_endpoint = send_file_endpoint.ptto(timetoken_override) + + envelope = send_file_endpoint.sync() assert isinstance(envelope.result, PNSendFileResult) assert envelope.result.name @@ -201,3 +207,32 @@ def test_publish_file_message_with_encryption(): ttl(222).sync() assert isinstance(envelope.result, PNPublishFileMessageResult) + + +@pn_vcr.use_cassette( + "tests/integrational/fixtures/native_sync/file_upload/publish_file_message_with_ptto.yaml", + filter_query_parameters=('pnsdk',) +) +def test_publish_file_message_with_overriding_time_token(): + timetoken_to_override = 16057799474000000 + envelope = PublishFileMessage(pubnub).\ + channel(CHANNEL).\ + meta({}).\ + message({"test": "test"}).\ + file_id("2222").\ + file_name("test").\ + should_store(True).\ + replicate(True).\ + ptto(timetoken_to_override).\ + ttl(222).sync() + + assert isinstance(envelope.result, PNPublishFileMessageResult) + assert "ptto" in envelope.status.client_request.url + + +@pn_vcr.use_cassette( + "tests/integrational/fixtures/native_sync/file_upload/send_file_with_ptto.yaml", + filter_query_parameters=('pnsdk',) +) +def test_send_file_with_timetoken_override(file_for_upload): + send_file(file_for_upload, pass_binary=True, timetoken_override=16057799474000000) diff --git a/tests/integrational/native_sync/test_grant.py b/tests/integrational/native_sync/test_grant.py new file mode 100644 index 00000000..d7124c8c --- /dev/null +++ b/tests/integrational/native_sync/test_grant.py @@ -0,0 +1,21 @@ +from pubnub.pubnub import PubNub +from tests.integrational.vcr_helper import pn_vcr +from tests.helper import pnconf_pam_copy +from pubnub.models.consumer.access_manager import PNAccessManagerGrantResult + +pubnub = PubNub(pnconf_pam_copy()) +pubnub.config.uuid = "test_grant" + + +@pn_vcr.use_cassette('tests/integrational/fixtures/native_sync/pam/grant_with_spaces.yaml', + filter_query_parameters=['uuid', 'seqn', 'pnsdk', 'timestamp', 'signature']) +def test_grant_auth_key_with_spaces(): + envelope = pubnub.grant()\ + .read(True)\ + .write(True)\ + .channels("test channel")\ + .auth_keys("client auth key with spaces")\ + .ttl(60)\ + .sync() + + assert isinstance(envelope.result, PNAccessManagerGrantResult) diff --git a/tests/integrational/native_sync/test_publish.py b/tests/integrational/native_sync/test_publish.py index 3c373a74..bfebb575 100644 --- a/tests/integrational/native_sync/test_publish.py +++ b/tests/integrational/native_sync/test_publish.py @@ -6,7 +6,7 @@ from pubnub.models.consumer.pubsub import PNPublishResult from pubnub.pnconfiguration import PNConfiguration from pubnub.pubnub import PubNub -from tests.helper import pnconf, pnconf_enc +from tests.helper import pnconf, pnconf_enc, pnconf_file_copy from tests.integrational.vcr_helper import pn_vcr pubnub.set_stream_logger('pubnub', logging.DEBUG) @@ -304,3 +304,21 @@ def test_publish_do_not_store(self): assert env.result.timetoken > 1 except PubNubException as e: self.fail(e) + + @pn_vcr.use_cassette( + 'tests/integrational/fixtures/native_sync/publish/publish_with_ptto_and_replicate.yaml', + filter_query_parameters=['uuid', 'pnsdk', 'l_pub'] + ) + def test_publish_with_ptto_and_replicate(self): + timetoken_to_override = 16057799474000000 + + env = PubNub(pnconf_file_copy()).publish()\ + .channel("ch1")\ + .message("hi")\ + .replicate(False)\ + .ptto(timetoken_to_override)\ + .sync() + + assert isinstance(env.result, PNPublishResult) + assert "ptto" in env.status.client_request.url + assert "norep" in env.status.client_request.url diff --git a/tests/integrational/native_threads/test_file_upload.py b/tests/integrational/native_threads/test_file_upload.py index 3549accc..81149f24 100644 --- a/tests/integrational/native_threads/test_file_upload.py +++ b/tests/integrational/native_threads/test_file_upload.py @@ -85,7 +85,7 @@ def test_send_and_download_file(self): assert self.response.data.decode("utf-8") == self.file_upload_test_data["FILE_CONTENT"] @pn_vcr.use_cassette( - "tests/integrational/fixtures/native_threads/file_upload/test_download_file.yaml", + "tests/integrational/fixtures/native_threads/file_upload/test_delete_file.yaml", filter_query_parameters=('pnsdk',) ) def test_delete_file(self):