Example #1
0
def test_rrule_create_valid(db_session, setup_session):
    users, aliases, reminders = setup_session
    new_reminder = Reminder.create_reminder(alias_id=aliases[3].id,
                                            title="Here's a title",
                                            session=db_session)
    now = datetime.utcnow()
    RRule.create_rrule(new_reminder.id, now, session=db_session)
Example #2
0
def test_reminder_create_reminder_no_alias(db_session, setup_session):
    users, aliases, reminders = setup_session
    past_reminders = db_session.query(Reminder).all()
    out = Reminder.create_reminder(title="Here's a title",
                                   session=db_session)
    present_reminders = db_session.query(Reminder).all()
    assert out is None
    assert len(past_reminders) == len(present_reminders)
Example #3
0
def test_reminder_create_reminder_no_title(db_session, setup_session):
    users, aliases, reminders = setup_session
    past_reminders = db_session.query(Reminder).all()
    out = Reminder.create_reminder(alias_id=aliases[3].id,
                                   session=db_session)
    present_reminders = db_session.query(Reminder).all()
    assert out is None
    assert len(past_reminders) == len(present_reminders)
Example #4
0
def test_job_todo_over_two_hours_out(db_session, setup_session):
    users, aliases, reminders = setup_session

    for reminder in reminders:
        out = Reminder.parse_reminder(reminder.id, session=db_session)
    todo_list = Job.todo(160, session=db_session)
    assert len(todo_list) == 2
    for job in todo_list:
        assert job.execution_time > datetime.utcnow()
Example #5
0
def test_reminder_parse_reminder_jobs_in_past(db_session, setup_session):
    users, aliases, reminders = setup_session
    past_jobs = db_session.query(Job).all()
    past_reminder = reminders[1]
    out = Reminder.parse_reminder(past_reminder.id, session=db_session)
    future_jobs = db_session.query(Job).all()
    assert past_reminder.rstate is False
    assert len(past_jobs) == len(future_jobs)
    assert out is not None
Example #6
0
def test_reminder_parse_reminder_upcoming_job(db_session, setup_session):
    users, aliases, reminders = setup_session
    past_jobs = db_session.query(Job).all()
    future_reminder = reminders[3]
    out = Reminder.parse_reminder(future_reminder.id, session=db_session)
    future_jobs = db_session.query(Job).all()
    assert future_reminder.rstate is True
    assert len(past_jobs) + 1 == len(future_jobs)
    assert out is not None
Example #7
0
def test_reminder_create_reminder_valid(db_session, setup_session):
    users, aliases, reminders = setup_session
    past_reminders = db_session.query(Reminder).all()
    out = Reminder.create_reminder(alias_id=aliases[3].id,
                                   title="Here's a title",
                                   session=db_session)
    present_reminders = db_session.query(Reminder).all()
    assert out is not None
    assert len(past_reminders) + 1 == len(present_reminders)
Example #8
0
def test_job_create_valid(db_session, setup_session):
    users, aliases, reminders = setup_session
    future_reminder = reminders[3]
    past_jobs = db_session.query(Job).all()
    job_time = Reminder.get_next_job(future_reminder.id,
                                     session=db_session)
    new_job = Job.create_job(future_reminder.id, job_time, session=db_session)
    present_jobs = db_session.query(Job).all()
    assert len(past_jobs) + 1 == len(present_jobs)
    assert isinstance(new_job, Job)
Example #9
0
def test_job_mark_complete_valid(db_session, setup_session):
    users, aliases, reminders = setup_session
    future_reminder = reminders[3]
    job_time = Reminder.get_next_job(future_reminder.id,
                                     session=db_session)
    new_job = Job.create_job(future_reminder.id, job_time,
                             session=db_session)
    assert new_job.job_state == 0
    out = new_job.mark_complete()
    assert new_job.job_state == 1
    assert out is True
Example #10
0
def setup_session(db_session):
    """Instantiate a session for testing objects"""
    user1 = User.create_user(
        'jaytyler', 'secretpass', 'jason', 'tyler', session=db_session)
    user2 = User.create_user(
        'ryty', 'othersecret', 'ryan', 'tyler', session=db_session)
    user3 = User.create_user(
        'nick', 'nickpassword', 'nick', 'draper', session=db_session)
    user4 = User.create_user(
        'saki', 'nakedmolerats', 'saki', 'fu', session=db_session)
    user5 = User.create_user(
        'grace', 'gatitapass', 'grace', 'hata', session=db_session)
    db_session.flush()
    alias1 = Alias.create_alias(
        user1.id, "*****@*****.**", "ME", 1, session=db_session)
    alias2 = Alias.create_alias(
        user1.id, "206-659-4510", "ME", 2, session=db_session)
    alias3 = Alias.create_alias(
        user2.id, "*****@*****.**", "ME", 1, session=db_session)
    alias4 = Alias.create_alias(
        user3.id, "*****@*****.**", "ME", 1, session=db_session)
    alias5 = Alias.create_alias(
        user4.id, "*****@*****.**", "ME", 1, session=db_session)
    alias6 = Alias.create_alias(
        user5.id, "*****@*****.**", "ME", 1, session=db_session)
    db_session.flush()
    reminder1 = Reminder.create_reminder(
        alias1.id, "Here's an email to send to Jason's email",
        session=db_session)
    reminder2 = Reminder.create_reminder(alias2.id,
        "Heres a text to send to Jason's phone", session=db_session)
    reminder3 = Reminder.create_reminder(alias3.id,
        "Here's a email to send to Ryan", session=db_session)
    reminder4 = Reminder.create_reminder(alias4.id,
        "Here's an email to send to Nick", session=db_session)
    reminder5 = Reminder.create_reminder(alias5.id,
        "Here's an email to send to Saki", session=db_session)
    reminder6 = Reminder.create_reminder(alias6.id,
        "Here's an email to send to Grace", session=db_session)
    db_session.flush()
    now = datetime.utcnow()
    rrule1 = RRule.create_rrule(reminder1.id, now + timedelta(hours=-3),
                                session=db_session)
    rrule2 = RRule.create_rrule(reminder2.id, now + timedelta(hours=-2),
                                session=db_session)
    rrule3 = RRule.create_rrule(reminder3.id, now + timedelta(hours=-1),
                                session=db_session)
    rrule4 = RRule.create_rrule(reminder4.id, now + timedelta(hours=1),
                                session=db_session)
    rrule5 = RRule.create_rrule(reminder5.id, now + timedelta(hours=2),
                                session=db_session)
    rrule6 = RRule.create_rrule(reminder6.id, now + timedelta(hours=3),
                                session=db_session)
    db_session.flush()
    users = [user1, user2, user3, user4, user5]
    aliases = [alias1, alias2, alias3, alias4, alias5, alias6]
    reminders = [reminder1, reminder2, reminder3, reminder4, reminder5,
                 reminder6]
    return (users, aliases, reminders)
Example #11
0
def test_reminder_get_next_job_absent(db_session, setup_session):
    users, aliases, reminders = setup_session
    future_reminder = reminders[1]
    out = Reminder.get_next_job(future_reminder.id, session=db_session)
    assert out is None
Example #12
0
def test_reminder_get_next_job_exists(db_session, setup_session):
    users, aliases, reminders = setup_session
    future_reminder = reminders[3]
    out = Reminder.get_next_job(future_reminder.id, session=db_session)
    assert isinstance(out, datetime)
    assert datetime.utcnow() < out
Example #13
0
def test_reminder_retrieve_instance_invalid(db_session, setup_session):
    users, aliases, reminders = setup_session
    with pytest.raises(NoResultFound):
        out = Reminder.retrieve_instance(1200)
Example #14
0
def test_reminder_retrieve_instance_valid(db_session, setup_session):
    users, aliases, reminders = setup_session
    out = Reminder.retrieve_instance(reminders[4].id, session=db_session)
    assert isinstance(out, Reminder)