Skip to content
Snippets Groups Projects
Unverified Commit 595e4e3a authored by Nora Abi Akar's avatar Nora Abi Akar Committed by GitHub
Browse files

Propagate python unit test failure to github actions. (#1505)

* Exit with correct exit code from Python test runners.
* Fix unit tests that were using older APIs.
parent ad551040
No related branches found
No related tags found
No related merge requests found
......@@ -184,7 +184,10 @@ jobs:
mpirun -n 4 -oversubscribe build/bin/ring
mpirun -n 4 -oversubscribe build/bin/single-cell
- name: Run python tests
run: python python/test/unit/runner.py
run: |
cd build
python ../python/test/unit/runner.py
cd -
- if: ${{ matrix.config.mpi == 'ON' }}
name: Run python+MPI tests
run: mpirun -n 4 -oversubscribe python python/test/unit_distributed/runner.py
......
......@@ -58,4 +58,5 @@ def suite():
if __name__ == "__main__":
v = options.parse_arguments().verbosity
runner = unittest.TextTestRunner(verbosity = v)
runner.run(suite())
result = runner.run(suite())
sys.exit(not(result.wasSuccessful()))
......@@ -22,27 +22,21 @@ all tests for event generators (regular, explicit, poisson)
class EventGenerator(unittest.TestCase):
def test_event_generator_regular_schedule(self):
cm = arb.cell_member(42,3)
rs = arb.regular_schedule(2.0, 1., 100.)
rg = arb.event_generator(cm, 3.14, rs)
self.assertEqual(rg.target.gid, 42)
self.assertEqual(rg.target.index, 3)
rg = arb.event_generator(3, 3.14, rs)
self.assertEqual(rg.target, 3)
self.assertAlmostEqual(rg.weight, 3.14)
def test_event_generator_explicit_schedule(self):
cm = arb.cell_member(0,42)
es = arb.explicit_schedule([0,1,2,3,4.4])
eg = arb.event_generator(cm, -0.01, es)
self.assertEqual(eg.target.gid, 0)
self.assertEqual(eg.target.index, 42)
eg = arb.event_generator(42, -0.01, es)
self.assertEqual(eg.target, 42)
self.assertAlmostEqual(eg.weight, -0.01)
def test_event_generator_poisson_schedule(self):
cm = arb.cell_member(4,2)
ps = arb.poisson_schedule(0., 10., 0)
pg = arb.event_generator(cm, 42., ps)
self.assertEqual(pg.target.gid, 4)
self.assertEqual(pg.target.index, 2)
pg = arb.event_generator(2, 42., ps)
self.assertEqual(pg.target, 2)
self.assertEqual(pg.weight, 42.)
def suite():
......
......@@ -72,7 +72,9 @@ if __name__ == "__main__":
sys.stdout = open(os.devnull, 'w')
runner = unittest.TextTestRunner(stream=sys.stdout)
runner.run(suite())
result = runner.run(suite())
if not arb.mpi_is_finalized():
arb.mpi_finalize()
sys.exit(not(result.wasSuccessful()))
......@@ -79,22 +79,22 @@ class gj_switch:
return getattr(self, 'case_' + str(arg), lambda: default)()
def case_1(self):
return [arb.gap_junction_connection(arb.cell_member(7 + self.shift_, 0), arb.cell_member(self.gid_, 0), 0.1)]
return [arb.gap_junction_connection(arb.cell_member(7 + self.shift_, 0), 0, 0.1)]
def case_2(self):
return [arb.gap_junction_connection(arb.cell_member(6 + self.shift_, 0), arb.cell_member(self.gid_, 0), 0.1),
arb.gap_junction_connection(arb.cell_member(9 + self.shift_, 0), arb.cell_member(self.gid_, 0), 0.1)]
return [arb.gap_junction_connection(arb.cell_member(6 + self.shift_, 0), 0, 0.1),
arb.gap_junction_connection(arb.cell_member(9 + self.shift_, 0), 0, 0.1)]
def case_6(self):
return [arb.gap_junction_connection(arb.cell_member(2 + self.shift_, 0), arb.cell_member(self.gid_, 0), 0.1),
arb.gap_junction_connection(arb.cell_member(7 + self.shift_, 0), arb.cell_member(self.gid_, 0), 0.1)]
return [arb.gap_junction_connection(arb.cell_member(2 + self.shift_, 0), 0, 0.1),
arb.gap_junction_connection(arb.cell_member(7 + self.shift_, 0), 0, 0.1)]
def case_7(self):
return [arb.gap_junction_connection(arb.cell_member(6 + self.shift_, 0), arb.cell_member(self.gid_, 0), 0.1),
arb.gap_junction_connection(arb.cell_member(1 + self.shift_, 0), arb.cell_member(self.gid_, 0), 0.1)]
return [arb.gap_junction_connection(arb.cell_member(6 + self.shift_, 0), 0, 0.1),
arb.gap_junction_connection(arb.cell_member(1 + self.shift_, 0), 0, 0.1)]
def case_9(self):
return [arb.gap_junction_connection(arb.cell_member(2 + self.shift_, 0), arb.cell_member(self.gid_, 0), 0.1)]
return [arb.gap_junction_connection(arb.cell_member(2 + self.shift_, 0), 0, 0.1)]
class gj_symmetric (arb.recipe):
def __init__(self, num_ranks):
......@@ -137,9 +137,9 @@ class gj_non_symmetric (arb.recipe):
id = gid%self.size
if (id == group and group != (self.groups - 1)):
return [arb.gap_junction_connection(arb.cell_member(gid + self.size, 0), arb.cell_member(gid, 0), 0.1)]
return [arb.gap_junction_connection(arb.cell_member(gid + self.size, 0), 0, 0.1)]
elif (id == group - 1):
return [arb.gap_junction_connection(arb.cell_member(gid - self.size, 0), arb.cell_member(gid, 0), 0.1)]
return [arb.gap_junction_connection(arb.cell_member(gid - self.size, 0), 0, 0.1)]
else:
return []
......
......@@ -32,10 +32,10 @@ class lifN_recipe(A.recipe):
return self.n_cell
def num_targets(self, gid):
return 0
return 1
def num_sources(self, gid):
return 0
return 1
def cell_kind(self, gid):
return A.cell_kind.lif
......@@ -46,7 +46,7 @@ class lifN_recipe(A.recipe):
def event_generators(self, gid):
sched_dt = 0.25
weight = 400
return [A.event_generator((gid,0), weight, A.regular_schedule(sched_dt)) for gid in range(0, self.num_cells())]
return [A.event_generator(0, weight, A.regular_schedule(sched_dt)) for gid in range(0, self.num_cells())]
def probes(self, gid):
return []
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment