def test_remove_holiday_returns_false_on_exception_throw(connection):
    connection.commit.side_effect = OperationalError()

    holiday = Holiday(connection)
    actual = holiday.remove_holiday(randint(1,999))

    assert actual is False
def test_is_holiday_returns_true_when_exception_thrown(connection):
    connection.fetchall.side_effect = OperationalError()

    holiday = Holiday(connection)
    actual = holiday.is_holiday(datetime.now())

    assert actual is True
def test_is_holiday_returns_false_for_no_records_found(connection):
    connection.fetchall.return_value = []

    holiday = Holiday(connection)
    actual = holiday.is_holiday(datetime.now())

    assert actual is False
def test_is_holiday_returns_true_when_finds_record(connection):
    connection.fetchall.return_value = [('some date found',)]

    holiday = Holiday(connection)
    actual = holiday.is_holiday(datetime.now())

    assert actual is True
def test_get_row_id_by_date_returns_negative_one_on_exception(connection):
    connection.execute.side_effect = OperationalError()

    holiday = Holiday(connection)
    actual = holiday.get_row_id_by_date(datetime.now())

    assert actual is -1
def test_add_holiday_returns_negative_one_on_exception_thrown(connection):
    connection.commit.side_effect = OperationalError()

    holiday = Holiday(connection)
    actual = holiday.add_holiday(datetime.now())

    assert actual is -1
def test_get_row_id_by_date_returns_row_id(connection):
    expected = randint(1,999)
    connection.fetchall.return_value = [(expected,)]

    holiday = Holiday(connection)
    actual = holiday.get_row_id_by_date(datetime.now())

    connection.execute.assert_called_once()
    assert actual is expected
def test_add_holiday_returns_row_id(connection):
    expected = randint(1, 999)
    connection.get_last_row_id.return_value = expected

    holiday = Holiday(connection)
    actual = holiday.add_holiday(datetime.now())

    connection.execute.assert_called_once()
    connection.commit.assert_called_once()
    connection.get_last_row_id.assert_called_once()
    assert actual is expected
Exemple #9
0
def main() -> None:
    # Load up environment configuration
    load_dotenv(join(dirname(__file__), 'data', '.env'))
    config = Config()

    # Connect to the database
    db = Database(config)

    # Add the connection to the two models.
    holiday = Holiday(db)
    punch = Punch(db)

    # Set the options to have chrome be headless
    op = Options()
    op.add_argument('--headless')

    # Instantiate the driver
    driver = Chrome(options=op)
    driver.implicitly_wait(config.get_implicit_wait())

    # Instantiate the pager
    smtp = SMTP_SSL(GMAIL_DOMAIN)
    pager = PagerDuty(config, smtp)

    # Set the args in a dictionary for future use
    args = {
        'config': config,
        'driver': driver,
        'holiday': holiday,
        'pager': pager,
        'punch': punch
    }

    punch_card_manager = PunchCardManager(args)

    try:
        # Start the process manager
        punch_card_manager.start()
    except:
        exception_type, value = exc_info()[:2]
        pager.alert(
            'PROGRAM CRASH, needs restart.\nException - %s\nValue - %s' %
            (exception_type, value))
def test_remove_holiday_returns_true_on_success(connection):
    holiday = Holiday(connection)
    actual = holiday.remove_holiday(randint(1,999))

    assert actual is True