Best Python code snippet using localstack_python
cloudwatch_events.py
Source:cloudwatch_events.py  
...15            None16        """17        self.logger = logging.getLogger(__name__)18        self.cwe_client = boto3.client("events", config=boto3_config)19    def put_permission(self, principal, event_bus_name):20        """Puts permission on CloudWatch event bus. Running it permits the specified\21            AWS account or AWS organization to put events to your account's default event bus22        Args:23            principal (string): 12-digit Amazon Web Services account ID or the Organization\24                 Arn that you are permitting to put events to specified event bus25            event_bus_name (string):  name of the event bus associated with the rule26        Returns:27            None: put_permission api response28        Raises:29            EventBridge.Client.exceptions.ResourceNotFoundException: \30                thrown when AWS resource not found31            ClientError: general exception provided by an AWS service to your Boto3 client's request32        """33        log_message = {34            "METHOD": "put_permission",35            "MESSAGE": f"putting permission on CloudWatch Event bus for principal:\36                 {principal}, event_bus_name: {event_bus_name}",37        }38        self.logger.debug(str(log_message))39        try:40            if re.match("(arn:aws:organizations:).*", principal):41                org_id = principal.split("/")[-1]42                condition = {43                    "Type": "StringEquals",44                    "Key": "aws:PrincipalOrgID",45                    "Value": org_id,46                }47                # Once we specify a condition with an AWS organization ID, the recommendation48                # is we use "*" as the value or Principal to grant permission to all the accounts49                #  in the named organization.50                self.cwe_client.put_permission(51                    Action="events:PutEvents",52                    Principal="*",53                    StatementId=org_id,54                    Condition=condition,55                    EventBusName=event_bus_name,56                )57            else:58                self.cwe_client.put_permission(59                    Action="events:PutEvents",60                    Principal=principal,61                    StatementId=principal,62                    EventBusName=event_bus_name,63                )64            return None  # the API response always returns None65        except (66            self.cwe_client.exceptions.ResourceNotFoundException,67            ClientError,68        ) as err:69            log_message["EXCEPTION"] = str(err)70            self.logger.error(str(log_message))71            raise72    def remove_permission(self, principal, event_bus_name):...test_file_acl.py
Source:test_file_acl.py  
...71    assert acl.get_perm_of('user', userA) == '---'72def test_apply_to_file(module_file, userA):73    os.system('setfacl -m u:' + userA + ':--- ' + module_file)74    acl = FileACL(file=module_file)75    acl.put_permission('user', userA, '+rwx')76    assert acl.get_perm_of('user', userA) == 'rwx'77    # Creating a new FileACL object makes sure that permissions78    # are actually written to Inode and are not just stored inside79    # the FileACL object80    acl = FileACL(file=module_file)81    assert acl.get_perm_of('user', userA) == 'rwx'82@pytest.mark.parametrize('instruction, expected_permset', test_parameters)83def test_write_user(module_file, userA, instruction, expected_permset):84    acl = FileACL(file=module_file)85    acl.put_permission('user', userA, instruction)86    assert acl.get_perm_of('user', userA) == expected_permset87####88## group-specific tests89####90def test_read_group(module_file, groupA):91    os.system('setfacl -m g:' + groupA + ':rwx ' + module_file)92    acl = FileACL(file=module_file)93    assert acl.get_perm_of('group', groupA) == 'rwx'94    os.system('setfacl -m g:' + groupA + ':--- ' + module_file)95    acl = FileACL(file=module_file)96    assert acl.get_perm_of('group', groupA) == '---'97@pytest.mark.parametrize('instruction, expected_permset', test_parameters)98def test_write_group(module_file, groupA, instruction, expected_permset):99    acl = FileACL(file=module_file)100    acl.put_permission('group', groupA , instruction)101    assert acl.get_perm_of('group', groupA) == expected_permset102####103## test user-group dynamic104####105def test_group_membership(fresh_file, userA, groupA):106    '''Tests that a user has access to a file (only) through group membership.107    108    This test assumes the user has no individual acl entry.'''109    acl = FileACL(file=fresh_file)110    acl.put_permission('group', groupA , '=r')111    assert acl.get_perm_of('group', groupA) == 'r--'112    acl.put_permission('other', None , '=')113    ...entries.py
Source:entries.py  
1"""2    marvin.views.entries3    ~~~~~~~~~~~~~~~~~~~~4    CRUD endpoints for stream entries.5"""6# pylint: disable=no-self-use7from .. import db8from ..models import Entry, EntryForm, Stream9from ..permissions import login_required10from flask.ext.restful import Resource11from flask.ext.principal import Permission, UserNeed12class EntryDetailView(Resource):13    """ RUD interface to entries. """14    def get(self, entry_id):15        """ Get the entry with the given ID. """16        entry = Entry.query.get(entry_id)17        return {18            'entry': entry.to_json(),19        }20    @login_required21    def put(self, entry_id):22        """ Update the entry with the given ID. """23        entry = Entry.query.get_or_404(entry_id)24        put_permission = Permission(UserNeed(entry.stream.creator_id))25        if put_permission.can():26            form = EntryForm(obj=entry)27            if form.validate_on_submit():28                form.populate_obj(entry)29                return {30                    'msg': 'Entry updated.',31                    'entry': entry.to_json(),32                }33            return {34                'msg': 'Some attributes did not pass validation.',35                'errors': form.errors,36            }, 40037        else:38            return {39                'msg': "Only the stream creator can edit it's entries.",40            }, 40341    @login_required42    def delete(self, entry_id):43        """ Delete the entry with the given ID. """44        entry = Entry.query.get(entry_id)45        delete_permission = Permission(UserNeed(entry.stream.creator_id))46        if delete_permission.can():47            db.session.delete(entry)48            return {'msg': 'Entry deleted.'}49        else:50            return {51                'msg': 'Only the stream creator can delete entries.',52            }, 40353class CreateEntryView(Resource):54    """ Create interface to entries. """55    @login_required56    def post(self, stream_id):57        """ Create new entry. """58        stream = Stream.query.get_or_404(stream_id)59        add_entry_to_stream_permission = Permission(UserNeed(stream.creator_id))60        if add_entry_to_stream_permission.can():61            form = EntryForm()62            if form.validate_on_submit():63                entry = Entry()64                form.populate_obj(entry)65                entry.stream = stream66                db.session.add(entry)67                db.session.commit()68                return {69                    'msg': 'Entry created.',70                    'entry': entry.to_json(),71                }, 20172            return {73                'msg': 'Some attributes did not pass validation.',74                'errors': form.errors,75            }, 40076        else:77            return {78                'msg': 'Only the creator can add entries to streams',...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
