for p in permutations('AB'):
    self.done = []

def test(id):
    self.done.append('Test ' + id)
s = Schedule(threads=1)
tasks = {id: Task('Test ' + id, partial(test, id)) for id in 'AB'}
s.add_task(tasks['A'])
s.add_task(tasks['B'])
s.add_dependency(tasks[p[0]], tasks[p[1]])
s.run()
self.assertEqual(self.done, ['Test ' + p[1], 'Test ' + p[0]])
Тестирование функции, которая может возвращать недетерминированные результаты, с помощью модульного теста Python.