コード例 #1
0
    def test_batch_action_creates_parameters_from_items(self):
        self.action_def['request']['params'] = [
            {
                'target': 'Bucket',
                'source': 'data',
                'path': 'BucketName'
            },
            {
                'target': 'Delete.Objects[].Key',
                'source': 'data',
                'path': 'Key',
            },
        ]

        client = mock.Mock()

        item1 = mock.Mock()
        item1.meta = ResourceMeta(
            'test',
            client=client,
            data={
                'BucketName': 'bucket',
                'Key': 'item1'
            },
        )

        item2 = mock.Mock()
        item2.meta = ResourceMeta(
            'test',
            client=client,
            data={
                'BucketName': 'bucket',
                'Key': 'item2'
            },
        )

        collection = mock.Mock()
        collection.pages.return_value = [[item1, item2]]

        action = BatchAction(self.model)
        action(collection)

        client.get_frobs.assert_called_with(
            Bucket='bucket',
            Delete={'Objects': [{
                'Key': 'item1'
            }, {
                'Key': 'item2'
            }]},
        )
コード例 #2
0
ファイル: test_action.py プロジェクト: rdbhost/yieldfromBoto3
    def test_batch_action_skips_operation(self, crp_mock):
        # In this test we have an item from the collection, but no
        # parameters are set up. Because of this, we do NOT call
        # the batch operation.
        client = mock.Mock()

        item = mock.Mock()
        item.meta = ResourceMeta('test', client=client)

        collection = mock.Mock()
        collection.pages.return_value = [[item]]

        model = self.model
        action = BatchAction(model)
        action(collection)

        crp_mock.assert_called_with(item, model.request, params={})
        client.get_frobs.assert_not_called()