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
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