123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- import boto3
- import pytest
- from moto import mock_s3
- from write_rss_feed import DOMAIN
- import write_rss_feed
- @pytest.fixture
- def region():
- return 'us-east-1'
- @pytest.fixture
- def domain(region, bucket):
- return DOMAIN.format(bucket=bucket, region=region)
- @pytest.fixture
- def mocked_s3(region):
- with mock_s3():
- s3 = boto3.client('s3', region_name=region)
- write_rss_feed.s3 = s3
- yield s3
- @pytest.fixture
- def bucket():
- return 'my-bucket'
- @pytest.fixture
- def folder():
- return 'Pod-Fever'
- @pytest.fixture
- def folder2():
- return '2nd-podcast & friends'
- @pytest.fixture
- def uploaded_episodes(mocked_s3, bucket, folder):
- mocked_s3.create_bucket(Bucket=bucket)
- for i in range(1, 11):
- size = 1000 + 100 * i
- mocked_s3.put_object(
- Bucket=bucket,
- Key='{}/episode{}.mp3'.format(folder, i),
- Body='x' * size,)
- @pytest.fixture
- def event(bucket, folder):
- return make_event("{}/episode10.mp3".format(folder), bucket)
- @pytest.fixture
- def event2(bucket, folder2):
- return make_event("{}/talking-17.mp3".format(folder2), bucket)
- def make_event(key, bucket):
- return {
- "Records": [
- {
- "eventVersion": "2.0",
- "eventTime": "1970-01-01T00:00:00.000Z",
- "requestParameters": {
- "sourceIPAddress": "127.0.0.1"
- },
- "s3": {
- "configurationId": "testConfigRule",
- "object": {
- "eTag": "0123456789abcdef0123456789abcdef",
- "key": key,
- "sequencer": "0A1B2C3D4E5F678901",
- "size": 1024
- },
- "bucket": {
- "ownerIdentity": {
- "principalId": "EXAMPLE"
- },
- "name": bucket,
- "arn": "arn:aws:s3:::mybucket"
- },
- "s3SchemaVersion": "1.0"
- },
- "responseElements": {
- "x-amz-id-2": "EXAMPLE123/567/ABCDEFGH",
- "x-amz-request-id": "EXAMPLE123456789"
- },
- "awsRegion": "us-east-1",
- "eventName": "ObjectCreated:Put",
- "userIdentity": {
- "principalId": "EXAMPLE"
- },
- "eventSource": "aws:s3"
- }
- ]
- }
|