<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def get_assigned_work_unit(self, worker_id, work_spec_name,
                               work_unit_key):
        '''get a specific WorkUnit that has already been assigned to a
        particular worker_id
        '''
        with self.registry.lock(identifier=self.worker_id) as session:
            assigned_work_unit_key = session.get(
                WORK_UNITS_ + work_spec_name + '_locks', worker_id)
            if not assigned_work_unit_key == work_unit_key:
                # raise LostLease instead of EnvironmentError, so
                # users of TaskMaster can have a single type of
                # expected exception, rather than two
                raise LostLease(
                    'assigned_work_unit_key=%r != %r'
                    % (assigned_work_unit_key, work_unit_key))
            # could trap EnvironmentError and raise LostLease instead
            work_unit_data = session.get(WORK_UNITS_ + work_spec_name,
                                         work_unit_key)
            return WorkUnit(
                self.registry, work_spec_name,
                work_unit_key, work_unit_data,
                worker_id=worker_id,
                default_lifetime=self.default_lifetime,
            )