Commit Graph

116 Commits

Author SHA1 Message Date
wblackconv
ba2ea8e1b3 Add tests for message attribute validation in SNS (#1582)
* Add tests for message attribute validation in SNS

Fixes up bug in return value of
moto.sns.responses.SNSResponse._parse_message_attributes due to
accidental recycling of a variable.

* Fix test_sns.test_publish_to_http in py36 env

Http response is encoded as a byte string which json.loads can't handle.
2018-04-27 15:10:30 -07:00
Steve Pulec
f37bae5b57
Merge pull request #1574 from wblackconv/add-msg-attributes
Include SNS message attributes with message body when delivering to SQS.
2018-04-18 21:19:21 -04:00
Mike Grima
794b8ba59e SNS now supports all modern boto3 regions. 2018-04-18 11:29:02 -07:00
wblack
f401c60825 Include SNS message attributes with message body when delivering to SQS. 2018-04-18 13:42:36 +00:00
Steve Pulec
3373c5bf13 Fix SNS max subject length. Closes #1503. 2018-04-13 15:17:38 -04:00
Alexander Mohr
941d817da4 fix lambda endpoint parsing (#1395)
* fix endpoint parsing

* add new unittest

* finish test
2018-03-21 22:14:10 -07:00
Iain Bullard
d3d9557d49 Implement basic SNS message filtering (#1521)
* Add support for FilterPolicy to sns subscription set_filter_attributes

* Add basic support for sns message filtering

This adds support for exact string value matching along with AND/OR
logic as described here:

https://docs.aws.amazon.com/sns/latest/dg/message-filtering.html

It does not provide support for:
- Anything-but string matching
- Prefix string matching
- Numeric Value Matching

The above filter policies (if configured) will not match messages.
2018-03-21 08:49:11 -07:00
Boris Gvozdev
633decc6c0 SNS: do not duplicate subscriptions 2018-01-02 11:30:39 +11:00
Alexander Mohr
9d087b0729 add subject support (#1387) 2017-12-10 21:59:04 +00:00
Adam Gilman
2ad0f2fc1c SNS create_topic should only accept valid characters (#1329)
* SNS create_topic should only accept valid characters

Closes #1328

* Fix flake8 errors

* Updated regex to match full TopicName constraints

Fixed test_server as it contained invalid TopicNames’ per constraints

* fix error message for invalid topic name
2017-11-13 18:27:11 +00:00
Adam Gilman
307ef8ead1 Makes Creating SNS topics idempotent (#1324)
Make creating SNS topics idempotent

Closes #1323
2017-11-06 19:06:55 +00:00
Terry Cain
dce81cf875 Fixed typos ;-)
Thanks @hwine
2017-10-20 14:52:24 +01:00
Terry Cain
bca8e11290 Fixes #1276 SNS Subject validation 2017-10-20 13:19:55 +01:00
Andrew Miller
194da53a0e Correct the type of a default attribute in SNS PlatformEndpoint (#1267)
The `Enabled` Attribute in the PlatformEndpoint of SNS current returns a boolean, however, the 'enabled' property is expecting a string as `.lower()` is called on the result.

This change simply changes the default from `True` to `'True'` so the property works as expected.
2017-10-17 10:42:29 -07:00
Alexander Mohr
9008b85299 lambda + SNS enhancements (#1048)
* updates

- support lambda messages from SNS
- run lambda in docker container

* decode output

* populate timeout

* simplify

* whoops

* skeletons of cloudwatchlogs

* impl filter log streams

* fix logging

* PEP fixes

* PEP fixes

* fix reset

* fix reset

* add new endpoint

* fix region name

* add docker

* try to fix tests

* try to fix travis issue with boto

* fix escaping in urls

* fix environment variables

* fix PEP

* more pep

* switch back to precise

* another fix attempt

* fix typo

* fix lambda invoke

* fix more unittests

* work on getting this to work in new scheme

* fix py2

* fix error

* fix tests when running in server mode

* more lambda fixes

* try running with latest docker

adapted from aiodocker

* switch to docker python client

* pep fixes

* switch to docker volume

* fix unittest

* fix invoke from sns

* fix zip2tar

* add hack impl for get_function with zip

* try fix

* fix for py < 3.6

* add volume refcount

* try to fix travis

* docker test

* fix yaml

* try fix

* update endpoints

* fix

* another attempt

* try again

* fix recursive import

* refactor fix

* revert changes with better fix

* more reverts

* wait for service to come up

* add back detached mode

* sleep and add another exception type

* put this back for logging

* put back with note

* whoops :)

* docker in docker!

* fix invalid url

* hopefully last fix!

* fix lambda regions

* fix protocol

* travis!!!!

* just run lambda test for now

* use one print

* fix escaping

* another attempt

* yet another

* re-enable all tests

* fixes

* fix for py2

* revert change

* fix for py2.7

* fix output ordering

* remove this given there's a new unittest that covers it

* changes based on review

- add skeleton logs test file
- switch to docker image that matches test env
- fix mock_logs import

* add readme entry
2017-09-27 16:04:58 -07:00
Terry Cain
56c65bc67c
Added in publish by phone number 2017-09-26 00:21:07 +01:00
Terry Cain
18cb0bce54
General tidy up 2017-09-21 21:16:00 +01:00
Terry Cain
19074c535c
Added ConfirmSubscription + Tests + checks
For now subscriptions do nothing, but if we go the route of handing out subscribe tokens, I
have layed the groundwork for validating that
2017-09-20 21:47:02 +01:00
Terry Cain
ef8a97f6c3
Implemented Add/RemovePermission + Tests 2017-09-20 21:13:26 +01:00
Terry Cain
f7f80293c7
Implemented OptInPhoneNumber + Tests 2017-09-20 20:56:37 +01:00
Terry Cain
1281ac86d5
Implemented ListPhoneNumbersOptedOut + Tests 2017-09-20 00:03:58 +01:00
Terry Cain
ba8a2ccfc5
Implemented CheckIfPhoneNumberIsOptedOut + Tests + Error code 2017-09-19 23:54:13 +01:00
Terry Cain
57d94d56c3
Implemented SNS.SetSMSAttributes & SNS.GetSMSAttributes + Filtering
TODO:
AddPermission / RemovePermission
CheckIfPhoneNumberIsOptedOut
ConfirmSubscription
ListPhoneNumbersOptedOut
OptInPhoneNumber
2017-09-19 22:48:46 +01:00
Toshiya Kawasaki
0c3708a8e7 Support SNS subscription attributes (#1087)
* remove code for local test

* Add SNS set_subscription_attributes and get_subscription_attributes
2017-09-07 11:19:34 -07:00
Toshiya Kawasaki
ce7eabd44a Envelope sns message when sending to sqs (#1066)
* envelop message when sendig from sns to sqs

* add test for publishing sns message to sqs

* specify separators options to json.dumps to avoid json bug in python2

* remove unused print

* replace time string for testing server mode
2017-08-21 12:29:34 -07:00
Toshiya Kawasaki
ccf4cf28b1 escape json string when sending message from sns mock to sqs mock 2017-08-18 10:23:11 +09:00
Jack Danger
2b76d07558 Merge pull request #1027 from iCHEF/fix_sns_should_send_json_http_message
Send JSON message to HTTP endpoint of SNS
2017-07-31 12:45:17 -07:00
Peter Us
d76559ee7c SNS delete_topic should also delete subscriptions. 2017-07-31 13:37:29 +02:00
sodastsai
92eedcf291 Send JSON message to HTTP endpoint of SNS
By the documentation from AWS -
http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html ,
SNS would send messages to HTTP/HTTPS endpoint in JSON format. But
current implementation of `moto` sends messages in form-data format.
2017-07-30 20:44:06 +08:00
Steve Pulec
c207963a86 Cleanup SNS exceptions. Closes #751. 2017-03-16 22:28:30 -04:00
Steve Pulec
6d422d1f37 Add BaseModel to all models. 2017-03-11 23:41:12 -05:00
Steve Pulec
1287d53817 Fix tests for py26 and py3. 2017-02-27 20:53:57 -05:00
Steve Pulec
a22caf27ab Cleanup sns default topic. 2017-02-27 10:20:53 -05:00
Steve Pulec
f37bad0e00 Lints. 2017-02-23 21:37:43 -05:00
Steve Pulec
cb28eeefbb Add moto reset API. 2017-02-20 18:25:10 -05:00
Steve Pulec
fde721bed7 Testing new version of decorator. 2017-02-15 22:35:45 -05:00
Steve Pulec
d3df810065 Generalize decorator code. 2017-02-12 00:22:29 -05:00
Mike Pappas
4942e74ab1 Fix SNS application endpoint to match AWS return format (#763) 2016-11-11 17:01:47 -05:00
Collin RM Stocks
1b65c45b56 ALWAYS use utcnow(), never now() 2016-09-07 14:40:52 -04:00
Michael van Tellingen
45ce0615e1
Save the sns messages in the PlatformEndpoint
This makes it easier to test the correct sns messages are sent
2016-06-02 11:02:43 +02:00
Michael van Tellingen
d34dd5b08a
Implement support for sns delete_endpoint() 2016-05-02 14:34:51 +02:00
Andrew Garrett
ec10699c38 Add XML support for cloudformation commands that lacked it
This lets boto3's cloudformation API work with moto.

fixes #444

Signed-off-by: Scott Greene <scott.greene@getbraintree.com>
2016-02-29 19:50:23 +00:00
Pior Bastida
2650eab295 Implement XML responses for SNS (for Boto3) 2015-08-20 14:57:17 -04:00
Ilya Sukhanov
e08796bcf4 Keep current region when creating SNS ARN topic 2015-08-03 10:19:04 -04:00
Jeffrey Gelens
e722b67f36 Merge branch 'master' of https://github.com/spulec/moto into 0.4.1-threadsafe
* 'master' of https://github.com/spulec/moto: (25 commits)
  Add @zkourouma to authors.
  0.4.2
  Fix bug where listener certificate was not being saved correctly when creating an elb. Added test to cover that case.
  [dynamodb2] adds lookup method to Table class
  Add IAM list_groups and list_groups_for_user. Closes #343.
  Fix for deleting Route53 record sets with set identifiers. Closes #342.
  Use dummy date instead of an invalid date
  Adding support for comments on hosted zones.
  Add availability zone support to Subnets created via CloudFormation
  Make availability zone dynamic in Subnet Response templates
  Add filter "availabilityZone" to DescribeSubnets and add availability zone support too
  allow starting without reseting
  Fix bug with empty string for instance vpc_id. Closes #337.
  Fix default security group description.
  Update responses.py
  Add @mrucci to authors.
  Fix merge conflicts.
  Add support for ELB attributes.
  cast to int when doing math.
  General cleanup.
  ...
2015-05-29 11:35:14 +02:00
Jeffrey Gelens
f5c4ac0b44 Merge branch 'master' of https://github.com/silveregg/moto into 0.4.1-threadsafe
* 'master' of https://github.com/silveregg/moto: (22 commits)
  filtering the items is needed because of defaultdict is not threadsafe and returns an empty dict which results in an exception here
  add tests for list_endpoints_by_platform_application
  add mock for list_endpoints_by_platform_application method
  [S3]Only add multipart part_id to partlist if it is not already in there. Closes #324.
  Fix etag for reduced min part size.
  Add test_multipart_duplicate_upload
  Fix reduced_min_part_size so that tests run
  Fix authors
  Add @mikegrima to authors
  Fixed how parameters are passed in following clarification on GitHub comments.
  Added in test for the boto IAM method: list_instance_profiles_for_role()
  Change SecurityGroupBackend.{authorize,revoke}_security_group_ingress() methods to receive group name or id, never both
  Add support to AWS::EC2::SecurityGroupIngress creation
  Add @aaltepet to authors.
  Add publish command.
  Add support to tag filtering to Security Groups
  slight change in formatting
  fix test for ec2 instance type filter
  Update minimum support boto version.
  support 'instance_type' filter
  ...
2015-05-29 11:34:23 +02:00
Tin Tvrtković
8327055239 Update responses.py
Add a dummy NextToken to sns.list_platform_applications. Ideally the library would actually paginate, but this should be an alright change in the mean time.
2015-03-26 16:24:48 +01:00
Jeffrey Gelens
c2f2c16892 Fixed non threadsafe code 2015-03-16 13:13:40 +01:00
Steve Pulec
ca39591ef2 Fix error string formatting for py26. 2015-03-14 09:19:36 -04:00
Steve Pulec
e2d75cba2c Remove dict comprehension for py2.6 2015-03-14 09:13:58 -04:00
Steve Pulec
706c60175b Add SNS applications and endpoints. 2015-03-14 09:06:31 -04:00
Jair Henrique
e23edaa47f add mock for list_endpoints_by_platform_application method 2015-03-06 14:10:47 -03:00
Steve Pulec
c22ea3014b Add SNS topics to cloudformation. 2015-01-17 19:48:08 -05:00
Steve Pulec
1a015d0e39 Cleanup some incorrect date formats. 2014-11-29 23:34:40 -05:00
Steve Pulec
c5487a4464 Add compat file for Py26 OrderedDict. 2014-11-29 22:43:30 -05:00
Steve Pulec
d24099c401 Add proper SNS paging. Closes #144, #145. 2014-11-29 22:37:48 -05:00
Steve Pulec
16660ab72b Allow message passing to SQS queues in different regions from SNS. 2014-11-16 18:42:53 -05:00
Steve Pulec
53acdf6c76 Make SNS multi-region. 2014-11-16 18:35:11 -05:00
Steve Pulec
1f8253a1a1 Cleanup the default region backends. 2014-11-15 14:21:58 -05:00
Joseph Lawson
20a69255c3 tweak Fn::GetAtt to return resource_json if resource is not implemented. DRY
This is better than failing out with a misleading Boto 400 error which should only happen when get_cfn_attribute is called but fails.
2014-10-21 14:51:26 -04:00
Joseph Lawson
1d9ffafaa5 create CloudFormation outputs and enable 'Fn::GetAtt' to work. 2014-10-21 12:45:03 -04:00
David Baumgold
eedb4c4b73 Support Python 3 using six 2014-08-28 10:57:43 -04:00
David Baumgold
4201e6b430 from __future__ import unicode_literals 2014-08-27 11:33:55 -04:00
Steve Pulec
dc11f71ff0 Add NextToken element to appropriate SNS responses. cc #144 2014-07-01 21:14:28 -04:00
Steve Pulec
e38f7d4662 Fix string formatting for py26 2014-05-11 23:07:05 -04:00
Steve Pulec
216750c05b Add basic SNS support. 2014-05-11 22:56:44 -04:00