コード例 #1
0
    def it_creates_an_event_date_with_speaker(self, db, db_session,
                                              sample_speaker):
        create_event_date(speakers=[sample_speaker])

        assert EventDate.query.count() == 1
        event_date_from_db = EventDate.query.first()
        assert event_date_from_db.speakers[0] == sample_speaker
コード例 #2
0
    def it_gets_events_in_year(self, db, db_session, sample_event_with_dates,
                               sample_event_type):
        event_2 = create_event(
            title='2018 event',
            event_type_id=sample_event_type.id,
            event_dates=[
                create_event_date(event_datetime='2018-12-31T23:59:00')
            ])
        create_event(
            title='2017 event',
            event_type_id=sample_event_type.id,
            event_dates=[
                create_event_date(event_datetime='2017-12-31T23:59:59')
            ])
        create_event(
            title='2019 event',
            event_type_id=sample_event_type.id,
            event_dates=[
                create_event_date(event_datetime='2019-01-01T00:00:01')
            ])
        events_from_db = dao_get_events_in_year(2018)

        assert len(events_from_db) == 2
        assert events_from_db[0] == sample_event_with_dates
        assert events_from_db[1] == event_2
コード例 #3
0
ファイル: test_rest.py プロジェクト: NewAcropolis/api
    def it_returns_approved_emails(self, client, db, db_session):
        event = create_event(title='Event 1')
        event_2 = create_event(title='Event 2')

        event_date = create_event_date(event_id=str(event.id),
                                       event_datetime='2019-07-20 19:00')
        event_date_2 = create_event_date(event_id=str(event_2.id),
                                         event_datetime='2019-07-13 19:00')

        approved_email = create_email(event_id=str(event.id),
                                      created_at='2019-07-01 11:00',
                                      send_starts_at='2019-07-10',
                                      send_after='2019-07-01 11:00',
                                      expires='2019-07-20',
                                      email_state='approved')
        create_email(event_id=str(event_2.id),
                     created_at='2019-07-02 11:00',
                     send_starts_at='2019-07-01',
                     expires='2019-07-12')

        response = client.get(url_for('emails.get_approved_emails'),
                              headers=[('Content-Type', 'application/json'),
                                       create_authorization_header()])
        json_latest_emails = json.loads(response.get_data(as_text=True))

        assert len(json_latest_emails) == 1
        assert json_latest_emails[0] == approved_email.serialize()
コード例 #4
0
    def it_gets_event_dates_by_event_id(self, db_session, sample_event_date, sample_event_type):
        event = create_event(event_type_id=sample_event_type.id)
        create_event_date(event_id=event.id)

        assert len(EventDate.query.all()) == 2

        event_dates = dao_get_event_dates_by_event_id(sample_event_date.event_id)
        assert len(event_dates) == 1
コード例 #5
0
    def it_gets_all_event_dates(self, db_session, sample_event_date):
        create_event_date(event_datetime='2018-03-19 19:30', event_id=sample_event_date.event_id)

        event_dates = dao_get_event_dates()
        event_dates_json = [e.serialize() for e in event_dates]

        assert EventDate.query.count() == 2

        event_dates_from_db = EventDate.query.all()
        event_dates_from_db_json = [e.serialize() for e in event_dates_from_db]

        assert sorted([e.values() for e in event_dates_json]) == \
            sorted([e.values() for e in event_dates_from_db_json])
コード例 #6
0
    def it_deletes_an_event_date_with_speaker(self, db, db_session,
                                              sample_speaker):
        event_date = create_event_date(speakers=[sample_speaker])

        assert EventDate.query.count() == 1

        dao_delete_event_date(event_date.id)
コード例 #7
0
def sample_event_with_dates(db, sample_event_date_without_event):
    another_event_date = create_event_date(event_datetime='2018-01-02 19:00')
    return create_event(
        title='test_title',
        description='test description',
        event_dates=[sample_event_date_without_event, another_event_date]
    )
コード例 #8
0
    def it_deletes_an_event_date(self, db, db_session):
        event_date = create_event_date()

        assert EventDate.query.count() == 1

        dao_delete_event_date(event_date.id)

        assert EventDate.query.count() == 0
コード例 #9
0
    def it_creates_an_event_with_event_dates(self, db, db_session):
        event_date = create_event_date()
        event = create_event(event_dates=[event_date])

        assert Event.query.count() == 1
        event_from_db = Event.query.first()
        assert event == event_from_db
        assert event_from_db.event_dates[0] == event_date
コード例 #10
0
    def it_deletes_an_event_with_event_dates(self, db, db_session):
        event_date = create_event_date()
        event = create_event(event_dates=[event_date])

        assert Event.query.count() == 1

        dao_delete_event(event.id)

        assert Event.query.count() == 0
コード例 #11
0
    def it_gets_past_year_events(self, db, db_session, sample_event_with_dates,
                                 sample_event_type):
        create_event(
            title='way past last year event',
            event_type_id=sample_event_type.id,
            event_dates=[
                create_event_date(event_datetime='2016-01-01T19:00:00')
            ])
        create_event(
            title='future event',
            event_type_id=sample_event_type.id,
            event_dates=[
                create_event_date(event_datetime='2018-01-20T19:00:00')
            ])
        events_from_db = dao_get_past_year_events()

        assert Event.query.count() == 3
        assert len(events_from_db) == 1
        assert events_from_db[0] == sample_event_with_dates
コード例 #12
0
    def it_gets_limited_events(self, db, db_session, sample_event_with_dates,
                               sample_event_type):
        event_2 = create_event(
            title='2018 event',
            event_type_id=sample_event_type.id,
            event_dates=[
                create_event_date(event_datetime='2018-12-31T23:59:00')
            ])
        create_event(
            title='beyond limit',
            event_type_id=sample_event_type.id,
            event_dates=[
                create_event_date(event_datetime='2017-12-31T23:59:59')
            ])
        events_from_db = dao_get_limited_events(2)

        assert len(events_from_db) == 2
        assert events_from_db[0] == event_2
        assert events_from_db[1] == sample_event_with_dates
コード例 #13
0
ファイル: test_rest.py プロジェクト: NewAcropolis/api
    def it_returns_future_emails(self, client, db, db_session):
        event = create_event(title='Event 1')
        event_2 = create_event(title='Event 2')
        event_3 = create_event(title='Event 3')
        past_event = create_event(title='Past event')

        event_date = create_event_date(event_id=str(event.id),
                                       event_datetime='2019-07-20 19:00')
        event_date_2 = create_event_date(event_id=str(event_2.id),
                                         event_datetime='2019-07-13 19:00')
        event_date_3 = create_event_date(event_id=str(event_3.id),
                                         event_datetime='2019-08-13 19:00')
        past_event_date = create_event_date(event_id=str(past_event.id),
                                            event_datetime='2019-06-13 19:00')

        future_email = create_email(event_id=str(event.id),
                                    created_at='2019-07-01 11:00',
                                    send_starts_at='2019-07-10',
                                    expires='2019-07-20')
        future_email_2 = create_email(event_id=str(event_2.id),
                                      created_at='2019-07-01 11:00',
                                      send_starts_at='2019-07-01',
                                      expires='2019-07-12')
        future_email_3 = create_email(event_id=str(event_3.id),
                                      created_at='2019-07-01 11:00',
                                      send_starts_at='2019-08-01',
                                      expires='2019-08-12')
        # email below will be ignored as its in the past
        create_email(event_id=str(past_event.id),
                     created_at='2019-06-01 11:00',
                     send_starts_at='2019-06-01',
                     expires='2019-06-12')

        response = client.get(url_for('emails.get_future_emails'),
                              headers=[('Content-Type', 'application/json'),
                                       create_authorization_header()])
        json_future_emails = json.loads(response.get_data(as_text=True))

        assert len(json_future_emails) == 3
        assert json_future_emails[0] == future_email.serialize()
        assert json_future_emails[1] == future_email_2.serialize()
        assert json_future_emails[2] == future_email_3.serialize()
コード例 #14
0
    def it_updates_an_event_dao_with_new_event_date(self, db, db_session,
                                                    sample_event):
        speaker = create_speaker(name='John Brown')
        event_date = create_event_date(event_datetime='2018-01-20T19:00:00',
                                       speakers=[speaker])

        dao_update_event(sample_event.id, event_dates=[event_date])

        event_from_db = Event.query.filter(Event.id == sample_event.id).first()

        assert sample_event.event_dates[0] == event_from_db.event_dates[0]

        event_date2 = create_event_date(event_datetime='2018-02-20T19:00:00',
                                        speakers=[speaker])

        dao_update_event(sample_event.id, event_dates=[event_date2])

        event_dates = EventDate.query.all()

        assert len(event_dates) == 1
コード例 #15
0
    def it_gets_all_future_events(self, db, db_session,
                                  sample_event_with_dates, sample_event_type):
        event = create_event(
            title='future event',
            event_type_id=sample_event_type.id,
            event_dates=[
                create_event_date(event_datetime='2018-01-20T19:00:00')
            ])
        events_from_db = dao_get_future_events()

        assert Event.query.count() == 2
        assert len(events_from_db) == 1
        assert events_from_db[0] == event
コード例 #16
0
ファイル: test_email_tasks.py プロジェクト: NewAcropolis/api
    def it_sends_email_in_hours(self, mocker, db_session, sample_email,
                                sample_member, now):
        mock_send_emails = mocker.patch(
            'app.na_celery.email_tasks.send_emails')
        event_date = create_event_date(event_datetime='2020-09-20 19:00')
        event = create_event(event_dates=[event_date])
        create_email(send_starts_at='2020-09-02',
                     created_at='2020-09-01',
                     send_after='2020-09-03 8:00',
                     expires=None,
                     email_state=APPROVED,
                     old_event_id=None,
                     event_id=event.id)
        with freeze_time(now):
            send_periodic_emails()

        assert mock_send_emails.called
コード例 #17
0
    def it_doesnt_update_duplicate_event_date(self, client, db_session,
                                              sample_event_date):
        event_date_1 = create_event_date(event_id=sample_event_date.event_id)

        data = {
            'event_datetime':
            sample_event_date.event_datetime.strftime('%Y-%m-%d %H:%M')
        }

        response = client.post(url_for('event_date.update_event_date',
                                       event_date_id=event_date_1.id),
                               data=json.dumps(data),
                               headers=[('Content-Type', 'application/json'),
                                        create_authorization_header()])
        assert response.status_code == 400
        json_resp = json.loads(response.get_data(as_text=True))
        assert json_resp['message'] == '{} already exists for {}'.format(
            data['event_datetime'], sample_event_date.event_id)
コード例 #18
0
    def it_updates_an_event_dao_with_new_speaker(self, db, db_session):
        speaker = create_speaker(name='John Brown')
        event_date = create_event_date(event_datetime='2018-01-20T19:00:00',
                                       speakers=[speaker])
        event = create_event(event_dates=[event_date])

        speaker2 = create_speaker(name='Jim Blue')

        db_event_date = dao_get_event_date_by_id(event_date.id)

        db_event_date.speakers = [speaker, speaker2]

        dao_update_event(event.id, event_dates=[db_event_date])

        event_from_db = Event.query.filter(Event.id == event.id).first()

        assert event.event_dates[0] == event_from_db.event_dates[0]

        event_dates = EventDate.query.all()

        assert len(event_dates) == 1
コード例 #19
0
ファイル: test_email_tasks.py プロジェクト: NewAcropolis/api
    def it_sends_emails_anytime(self, mocker, db_session, sample_email,
                                sample_member, now):
        mocker.patch.dict('app.application.config', {
            'ENVIRONMENT': 'test',
            'EMAIL_RESTRICT': None,
            'EMAIL_ANYTIME': True
        })
        mock_send_emails = mocker.patch(
            'app.na_celery.email_tasks.send_emails')

        event_date = create_event_date(event_datetime='2020-09-20 19:00')
        event = create_event(event_dates=[event_date])
        create_email(send_starts_at='2020-09-02',
                     created_at='2020-09-01',
                     send_after='2020-09-03 8:00',
                     expires=None,
                     email_state=APPROVED,
                     old_event_id=None,
                     event_id=event.id)

        with freeze_time(now):
            send_periodic_emails()

        assert mock_send_emails.called
コード例 #20
0
def sample_event_date_without_event(db):
    return create_event_date()
コード例 #21
0
def sample_event_date(db, sample_event):
    return create_event_date(event_id=sample_event.id)
コード例 #22
0
    def it_creates_an_event_date(self, db, db_session):
        event_date = create_event_date()

        assert EventDate.query.count() == 1
        event_date_from_db = EventDate.query.first()
        assert event_date == event_date_from_db