Exemple #1
0
def test_add_mixed_hashes(local_config):
    """Tests adding both done and not-done hashes to make sure they're separated properly."""
    manager = StateManager(local_config)
    manager.set_checkpoint('ABCDEFGH', 'default', 'ALPHA')
    manager.set_checkpoint('DEFGHIJK', 'default', 'DONE')
    return_list = manager.get_unfinished_hashes('default')
    assert return_list == [('ABCDEFGH', 'ALPHA')]
    return_list = manager.get_previous_hashes('default')
    assert return_list == ['DEFGHIJK']
Exemple #2
0
def test_exception_handling(local_config):
    """Tests that OperationalError is handled by all methods without throwing an exception."""
    manager = StateManager(local_config)
    manager._persistor._cursor_factory = BreakingCursor
    manager.set_checkpoint('ABCDEFGH', 'default', 'ALPHA')
    assert manager.get_previous_hashes('default') == []
    manager.prune("2020-01-12T00:00:00")
    manager.add_report_item(6, 'default', {'keyval': 1})
    assert manager.get_current_report_items(6, 'default') == []
    manager.clear_report_items(6, 'default')
Exemple #3
0
def test_prune(local_config):
    """Tests the prune() functionality."""
    manager = StateManager(local_config)
    manager.set_checkpoint('DEFGHIJK', 'default', 'DONE', '2020-01-15T12:00:00')
    manager.set_checkpoint('ABCDEFGH', 'default', 'DONE', '2020-01-10T12:00:00')
    manager.set_checkpoint('MNOPQRST', 'default', 'DONE', '2020-01-15T12:00:00')
    manager.set_checkpoint('JKLMNOPQ', 'default', 'DONE', '2020-01-10T14:00:00')
    manager.prune("2020-01-12T00:00:00")
    return_list = manager.get_previous_hashes('default')
    assert return_list == ['DEFGHIJK', 'MNOPQRST']
Exemple #4
0
def test_add_finished_hashes(local_config):
    """Tests adding hashes that are finished and getting them with get_previous_hashes()."""
    manager = StateManager(local_config)
    manager.set_checkpoint('DEFGHIJK', 'default', 'DONE')
    manager.set_checkpoint('ABCDEFGH', 'default', 'DONE')
    manager.set_checkpoint('MNOPQRST', 'default', 'DONE')
    manager.set_checkpoint('ABCDEFGH', 'another', 'DONE')
    return_list = manager.get_previous_hashes('default')
    assert return_list == ['ABCDEFGH', 'DEFGHIJK', 'MNOPQRST']
    return_list = manager.get_previous_hashes('another')
    assert return_list == ['ABCDEFGH']
def test_set_checkpoint(local_config):
    """Test the set_checkpoint() API."""
    manager = StateManager(local_config)
    manager.set_checkpoint("148429-4", "default", "DONE")
    assert getattr(manager._persistor, "_sc", 0) == 1
    assert getattr(manager._persistor, "_gph", 0) == 0
    assert getattr(manager._persistor, "_guh", 0) == 0
    assert getattr(manager._persistor, "_p", 0) == 0
    assert getattr(manager._persistor, "_ari", 0) == 0
    assert getattr(manager._persistor, "_gcri", 0) == 0
    assert getattr(manager._persistor, "_cri", 0) == 0
Exemple #6
0
def test_update_existing_hash(local_config):
    """Tests updating an exising hash in the database, and how it affects the retrieval APIs."""
    manager = StateManager(local_config)
    manager.set_checkpoint('ABCDEFGH', 'default', 'ALPHA')
    return_list = manager.get_unfinished_hashes('default')
    assert return_list == [('ABCDEFGH', 'ALPHA')]
    return_list = manager.get_previous_hashes('default')
    assert return_list == []
    manager.set_checkpoint('ABCDEFGH', 'default', 'DONE')
    return_list = manager.get_unfinished_hashes('default')
    assert return_list == []
    return_list = manager.get_previous_hashes('default')
    assert return_list == ['ABCDEFGH']
Exemple #7
0
def test_set_checkpoint_persistent(local_persistent_config):
    """Tests that set_checkpoint actually adds stuff to the database file on disk."""
    if os.path.exists(PERSISTENCE_FILE):
        os.remove(PERSISTENCE_FILE)
    manager = StateManager(local_persistent_config)
    manager.set_checkpoint('ABCDEFGH', 'default', 'ALPHA')
    manager.set_checkpoint('EFGHIJKL', 'default', 'BRAVO')
    manager.set_checkpoint('ABCDEFGH', 'another', 'CHARLIE')
    manager.force_close()
    manager2 = StateManager(local_persistent_config)
    return_list = manager2.get_unfinished_hashes('default')
    assert len(return_list) == 2
    return_list = manager2.get_unfinished_hashes('another')
    assert len(return_list) == 1
Exemple #8
0
def test_add_unfinished_hashes(local_config):
    """Tests adding hashes that are unfinished and getting them with get_unfinished_hashes()."""
    manager = StateManager(local_config)
    manager.set_checkpoint('ABCDEFGH', 'default', 'ALPHA')
    manager.set_checkpoint('EFGHIJKL', 'default', 'BRAVO')
    manager.set_checkpoint('ABCDEFGH', 'another', 'CHARLIE')
    return_list = manager.get_unfinished_hashes('default')
    assert len(return_list) == 2
    tmp = _unfinished_as_map(return_list)
    assert tmp['ABCDEFGH'] == 'ALPHA'
    assert tmp['EFGHIJKL'] == 'BRAVO'
    return_list = manager.get_unfinished_hashes('another')
    assert len(return_list) == 1
    tmp = _unfinished_as_map(return_list)
    assert tmp['ABCDEFGH'] == 'CHARLIE'