def test_token_done(): token = Token("test") token.done("foo") assert token.state == TokenState.DONE assert token.progress == 1.0 assert token.status == "foo"
def test_token_start(): token = Token("test") token.start("foo") assert token.state == TokenState.RUNNING assert token.progress == 0.01 assert token.status == "foo"
def test_token_error(): token = Token("test") token.error("foo") assert token.state == TokenState.ERROR assert token.progress == 1.0 assert token.status == "foo"
def test_token_cancel(): token = Token("test") token.cancel("foo") assert token.state == TokenState.CANCELLED assert token.progress == 1.0 assert token.status == "foo"
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"
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"
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
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"
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
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"
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 = []
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
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
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
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
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()
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