def test_get_last_checkpoint_no_table(self, manager): # test that we can still get the time of last run no table # also tests that new checkoints are created with the tables manager.create_checkpoint_table() with session_scope(manager.Session) as session: since_param = datetime.datetime.utcnow().isoformat() session.add( Checkpoint(id=uuid.uuid4().hex, query_file_name=manager.query, query_file_md5=manager.query_md5, project=None, commcare=None, since_param=since_param, time_of_run=datetime.datetime.utcnow().isoformat(), final=True)) session.add( Checkpoint(id=uuid.uuid4().hex, query_file_name=manager.query, query_file_md5=manager.query_md5, project=manager.project, commcare=manager.commcare, since_param=since_param, time_of_run=datetime.datetime.utcnow().isoformat(), final=True)) manager = manager.for_tables(['t1', 't2']) checkpoint = manager.get_last_checkpoint() assert checkpoint.since_param == since_param assert checkpoint.table_name in manager.table_names checkpoints = manager.get_latest_checkpoints() assert len(checkpoints) == 2 assert {c.table_name for c in checkpoints} == set(manager.table_names)
def test_get_time_of_last_checkpoint_no_args(self, manager): # test that we can still get the time of last run no project and commcare args manager.create_checkpoint_table() with session_scope(manager.Session) as session: since_param = datetime.datetime.utcnow().isoformat() session.add(Checkpoint( id=uuid.uuid4().hex, query_file_name=manager.query, query_file_md5=manager.query_md5, project=None, commcare=None, since_param=since_param, time_of_run=datetime.datetime.utcnow().isoformat(), final=True )) assert manager.get_time_of_last_checkpoint() == since_param
def test_get_last_checkpoint_no_args(self, manager): # test that we can still get the time of last run no project and commcare args manager.create_checkpoint_table() with session_scope(manager.Session) as session: since_param = datetime.datetime.utcnow().isoformat() session.add( Checkpoint(id=uuid.uuid4().hex, query_file_name=manager.query, query_file_md5=manager.query_md5, project=None, commcare=None, since_param=since_param, time_of_run=datetime.datetime.utcnow().isoformat(), final=True)) manager = manager.for_tables(['t1', 't2']) checkpoint = manager.get_last_checkpoint() assert checkpoint.since_param == since_param assert checkpoint.project == manager.project assert checkpoint.commcare == manager.commcare assert len(manager.get_latest_checkpoints()) == 2
def _get_non_final_rows_count(): with session_scope(manager.Session) as session: return session.query(Checkpoint).filter_by(final=False).count()