def _test_exception_on_import(self, code): f = self.write_temp_py(code) sandbox = SubprocessSandbox([f.name]) players = sandbox.get_players() self.assertEqual(len(players), 1) self.run_players(players) self.assertEqual(self.server.crashed, 2) self.assertEqual(self.server.stopped, 2) self.assertEqual(len(self.server.crash_report), 2) self.assertTrue("Traceback" in self.server.crash_report[0])
def test_new_names(self): f = self.write_temp_py("""from spectrumwars import Transceiver class Destination(Transceiver): pass class Source(Transceiver): pass """) sandbox = SubprocessSandbox([f.name]) players = sandbox.get_players() self.assertEqual(len(players), 1) self.run_players(players) self.assertEqual(self.server.crashed, 0)
def test_simple(self): f = self.write_temp_py("""from spectrumwars import Transceiver class Receiver(Transceiver): pass class Transmitter(Transceiver): pass """) sandbox = SubprocessSandbox([f.name]) players = sandbox.get_players() self.assertEqual(len(players), 1) self.run_players(players) self.assertEqual(self.server.stopped, 2) self.assertEqual(self.server.crashed, 0)
def test_loop(self): f = self.write_temp_py("""from spectrumwars import Transceiver class Receiver(Transceiver): def start(self): while True: pass class Transmitter(Transceiver): pass """) sandbox = SubprocessSandbox([f.name]) players = sandbox.get_players() self.assertEqual(len(players), 1) player = players[0] player.dst.init(1.) player.src.init(1.) player.dst.start(self.endpoint) player.src.start(self.endpoint) now = time.time() deadline = now + 1 player.dst.join(deadline=deadline) player.src.join(deadline=deadline) self.assertEqual(self.server.crashed, 1) self.assertEqual(self.server.stopped, 2) self.assertEqual(len(self.server.crash_report), 1) self.assertTrue("Time" in self.server.crash_report[0])