Exemplo n.º 1
0
def _create_blackouts():
    Blackout.create(
        name='An excellent day for an exorcism',
        start_date='12/25/2021',
        end_date='12/25/2021',
    )
    std_commit(allow_test_environment=True)
Exemplo n.º 2
0
 def _run(self):
     kaltura = Kaltura()
     for blackout in Blackout.all_blackouts():
         if blackout.end_date < utc_now():
             app.logger.info(f'Removing past blackout: {blackout}')
             Blackout.delete_blackout(blackout.id)
         else:
             events = kaltura.get_events_in_date_range(end_date=blackout.end_date, start_date=blackout.start_date)
             for event in events:
                 created_by_diablo = CREATED_BY_DIABLO_TAG in event['tags']
                 if created_by_diablo and not represents_recording_series(event):
                     kaltura.delete(event['id'])
                     app.logger.info(f"'Event {event['summary']} deleted per {blackout}.")
 def test_overlapping_date_ranges(self, client, admin_session):
     """Expect error when blackout dates overlap."""
     Blackout.create(
         name='Final exams',
         start_date='2021-12-13',
         end_date='2021-12-17',
     )
     std_commit(allow_test_environment=True)
     self._api_create_blackout(
         client,
         name='Boston Tea Party week',
         start_date='2021-12-16',
         end_date='2021-12-23',
         expected_status_code=400,
     )
 def test_get_blackout(self, client, admin_session):
     """Admin user has access to blackout data."""
     blackout = next(
         (t for t in Blackout.all_blackouts() if 'exorcism' in t.name),
         None)
     assert blackout
     api_json = self._api_blackout(client, blackout.id)
     assert api_json['id'] == blackout.id
     assert 'exorcism' in api_json['name']
def _validate_date_range(start_date, end_date, blackout_id=None):
    if start_date > end_date:
        raise BadRequestError(
            'Start date must be less than or equal to end date.')

    for blackout in Blackout.all_blackouts():
        if blackout.id != blackout_id:
            latest_start = max(start_date, blackout.start_date)
            earliest_end = min(end_date, blackout.end_date)
            if max(0, (earliest_end - latest_start).days + 1) > 0:
                raise BadRequestError(
                    f'Date range overlaps with existing blackout {blackout.id}'
                )
    def test_authorized(self, client, admin_session):
        """Admin user can update blackout dates."""
        blackout = Blackout.create(
            name='Bloomsday',
            start_date='2020-06-16',
            end_date='2020-06-16',
        )
        std_commit(allow_test_environment=True)

        blackout = Blackout.get_blackout(blackout.id)
        name = f'{blackout.name} (modified)'
        blackout = self._api_update_blackout(
            client,
            blackout_id=blackout.id,
            name=name,
            start_date='2021-06-16',
            end_date='2021-06-16',
        )
        assert len(blackout)
        assert blackout['name'] == name
        assert blackout['startDate'] == '2021-06-16'
        assert blackout['endDate'] == '2021-06-16'
def update_blackout():
    params = request.get_json()
    blackout_id = params.get('blackoutId')
    blackout = Blackout.get_blackout(blackout_id) if blackout_id else None
    if blackout:
        name = params.get('name')
        start_date = params.get('startDate')
        end_date = params.get('endDate')
        if None in [name, start_date, end_date]:
            raise BadRequestError('Required parameters are missing.')

        start_date = _local_blackout_date_to_utc(f'{start_date}T00:00:00')
        end_date = _local_blackout_date_to_utc(f'{end_date}T23:59:59')
        _validate_date_range(start_date, end_date)

        blackout = Blackout.update(
            blackout_id=blackout_id,
            name=name,
            start_date=start_date,
            end_date=end_date,
        )
        return tolerant_jsonify(blackout.to_api_json())
    else:
        raise ResourceNotFoundError('No such email template')
def create_blackout():
    params = request.get_json()
    name = params.get('name')
    start_date = params.get('startDate')
    end_date = params.get('endDate')
    if None in [name, start_date, end_date]:
        raise BadRequestError('Required parameters are missing.')

    start_date = _local_blackout_date_to_utc(f'{start_date}T00:00:00')
    end_date = _local_blackout_date_to_utc(f'{end_date}T23:59:59')
    _validate_date_range(start_date, end_date)

    blackout = Blackout.create(name=name,
                               start_date=start_date,
                               end_date=end_date)
    return tolerant_jsonify(blackout.to_api_json())
def delete_blackout(blackout_id):
    Blackout.delete_blackout(blackout_id)
    return tolerant_jsonify(
        {'message': f'Email template {blackout_id} has been deleted'}), 200
Exemplo n.º 10
0
def get_blackout(blackout_id):
    blackout = Blackout.get_blackout(blackout_id)
    if blackout:
        return tolerant_jsonify(blackout.to_api_json())
    else:
        raise ResourceNotFoundError('No such blackout')
Exemplo n.º 11
0
def get_all_blackouts():
    return tolerant_jsonify(
        [blackout.to_api_json() for blackout in Blackout.all_blackouts()])