Beispiel #1
0
def test_token_done():
    token = Token("test")
    token.done("foo")

    assert token.state == TokenState.DONE
    assert token.progress == 1.0
    assert token.status == "foo"
Beispiel #2
0
def test_token_start():
    token = Token("test")
    token.start("foo")

    assert token.state == TokenState.RUNNING
    assert token.progress == 0.01
    assert token.status == "foo"
Beispiel #3
0
def test_token_error():
    token = Token("test")
    token.error("foo")

    assert token.state == TokenState.ERROR
    assert token.progress == 1.0
    assert token.status == "foo"
Beispiel #4
0
def test_token_cancel():
    token = Token("test")
    token.cancel("foo")

    assert token.state == TokenState.CANCELLED
    assert token.progress == 1.0
    assert token.status == "foo"
Beispiel #5
0
def test_subtoken_update():
    token = Token("test")
    subtoken1 = token.create_subtoken("subtest1")
    subtoken2 = token.create_subtoken("subtest2")

    subtoken1.update(0.5, "progress made in subtest1")

    assert token.state == TokenState.RUNNING
    assert token.progress == 0.5
    assert token.status == "progress made in subtest1"
    assert subtoken1.state == TokenState.RUNNING
    assert subtoken1.progress == 0.5
    assert subtoken1.status == "progress made in subtest1"
    assert subtoken2.state == TokenState.NOTSTARTED
    assert subtoken2.progress == 0.0
    assert subtoken2.status == "Not started"

    subtoken2.update(0.25, "progress made in subtest2")

    assert token.state == TokenState.RUNNING
    assert token.progress == (0.5 + 0.25) / 2
    assert token.status == "progress made in subtest2"
    assert subtoken1.state == TokenState.RUNNING
    assert subtoken1.progress == 0.5
    assert subtoken1.status == "progress made in subtest1"
    assert subtoken2.state == TokenState.RUNNING
    assert subtoken2.progress == 0.25
    assert subtoken2.status == "progress made in subtest2"
Beispiel #6
0
def test_token_update():
    token = Token("test")
    token.update(0.5, "Progress made", TokenState.RUNNING)

    assert token.state == TokenState.RUNNING
    assert token.progress == 0.5
    assert token.status == "Progress made"
Beispiel #7
0
def test_token_subtokens():
    token = Token("test")
    subtoken1 = token.create_subtoken("subtest1")
    subtoken2 = token.create_subtoken("subtest2")

    subtokens = token.get_subtokens()
    assert len(subtokens) == 2
    assert subtoken1 in subtokens
    assert subtoken2 in subtokens
Beispiel #8
0
def test_token_initalize():
    token = Token("test")

    assert token.name == "test"
    assert token.state == TokenState.NOTSTARTED
    assert token.progress == 0.0
    assert token.status == "Not started"
Beispiel #9
0
async def test_casino2_cancel(event_loop, options, tmpdir):
    # Increase number of electrons
    options.program.number_trajectories = 10000

    worker = Casino2Worker()
    token = Token("test")
    simulation = Simulation(options)
    outputdir = str(tmpdir)

    task = asyncio.create_task(worker.run(token, simulation, outputdir))

    await asyncio.sleep(0.5)

    task.cancel()

    try:
        await task
    except asyncio.CancelledError:
        assert True, "Task was cancelled properly"
    else:
        assert False

    assert token.state == TokenState.CANCELLED
    assert token.progress == 1.0
    assert token.status == "Cancelled"
    assert len(simulation.results) == 0
Beispiel #10
0
def test_subtoken_initialize():
    token = Token("test")
    subtoken1 = token.create_subtoken("subtest1")
    subtoken2 = token.create_subtoken("subtest2")

    assert token.name == "test"
    assert token.state == TokenState.NOTSTARTED
    assert token.progress == 0.0
    assert token.status == "Not started"
    assert subtoken1.name == "subtest1"
    assert token.state == TokenState.NOTSTARTED
    assert subtoken1.progress == 0.0
    assert subtoken1.status == "Not started"
    assert subtoken2.name == "subtest2"
    assert token.state == TokenState.NOTSTARTED
    assert subtoken2.progress == 0.0
    assert subtoken2.status == "Not started"
Beispiel #11
0
    def __init__(self, project=None, token=None, max_workers=1):
        if project is None:
            project = Project()
        self._project = project

        if token is None:
            token = Token("simulation runner")
        self._token = token

        self._submitted_options = []
Beispiel #12
0
async def testrun(event_loop, options, tmpdir):
    worker = WorkerMock()
    token = Token("test")
    simulation = Simulation(options)

    await worker.run(token, simulation, tmpdir)

    assert token.state == TokenState.DONE
    assert token.progress == 1.0
    assert token.status == "Done"
    assert len(simulation.results) == 1
Beispiel #13
0
async def test_casino2_worker(event_loop, options, sample, tmpdir):
    options.sample = sample

    worker = Casino2Worker()
    token = Token("test")
    simulation = Simulation(options)
    outputdir = str(tmpdir)

    await worker.run(token, simulation, outputdir)

    assert token.state == TokenState.DONE
    assert token.progress == 1.0
    assert token.status == "Done"
    assert len(simulation.results) == 1
Beispiel #14
0
async def testrun_error(event_loop, options, tmpdir):
    options.beam.energy_eV = 0.0  # To cause WorkerErrorr

    worker = WorkerMock()
    token = Token("test")
    simulation = Simulation(options)

    try:
        await worker.run(token, simulation, tmpdir)
    except ExportError:
        assert True
    else:
        assert False

    assert token.state == TokenState.ERROR
Beispiel #15
0
async def testrun_cancel(event_loop, options, tmpdir):
    worker = WorkerMock()
    token = Token("test")
    simulation = Simulation(options)

    task = asyncio.create_task(worker.run(token, simulation, tmpdir))

    await asyncio.sleep(0.5)
    task.cancel()

    try:
        await task
    except asyncio.CancelledError:
        assert True, "Task was cancelled properly"
    else:
        assert False

    assert token.state == TokenState.CANCELLED
Beispiel #16
0
async def test_penepma_worker(event_loop, options, sample, tmp_path):
    options.sample = sample

    worker = PenepmaWorker()
    token = Token("test")
    simulation = Simulation(options)
    outputdir = tmp_path

    await worker.run(token, simulation, outputdir)

    assert token.state == TokenState.DONE
    assert token.progress == 1.0
    assert token.status == "Done"
    assert len(simulation.results) == 2

    assert outputdir.joinpath("pe-geometry.rep").exists()
    assert outputdir.joinpath("penepma.dat").exists()
    assert outputdir.joinpath("penepma-res.dat").exists()
    assert outputdir.joinpath("dump1.dat").exists()
    assert outputdir.joinpath("pe-intens-01.dat").exists()
    assert outputdir.joinpath("pe-material.dat").exists()
Beispiel #17
0
def test_token_subtokens_with_category():
    token = Token("test")
    subtoken1 = token.create_subtoken("subtest1", "cat1")
    subtoken2 = token.create_subtoken("subtest2", "cat2")

    subtokens = token.get_subtokens()
    assert len(subtokens) == 2
    assert subtoken1 in subtokens
    assert subtoken2 in subtokens

    subtokens = token.get_subtokens("cat1")
    assert len(subtokens) == 1
    assert subtoken1 in subtokens

    subtokens = token.get_subtokens("cat2")
    assert len(subtokens) == 1
    assert subtoken2 in subtokens