class VirtualWorldXilinxExperimentTestCase(unittest.TestCase): def setUp(self): from voodoo.configuration import ConfigurationManager from voodoo.sessions.session_id import SessionId self.cfg_manager = ConfigurationManager() self.cfg_manager.append_module(configuration_module) self.cfg_manager._set_value("webcam", "http://localhost") # For later. self.cfg_manager._set_value("weblab_xilinx_experiment_xilinx_device", "FPGA") UdXilinxCommandSenders._SerialPort = FakeSerialPort UdXilinxCommandSenders._HttpDevice = FakeHttpDevice self.experiment = UdXilinxExperiment.UdXilinxExperiment(None, None, self.cfg_manager) self.configjson = self.experiment.do_start_experiment() self.lab_session_id = SessionId('my-session-id') def cleanUp(self): self.experiment.do_dispose() def test_basic_state_command(self): resp = self.experiment.do_send_command_to_device("VIRTUALWORLD_STATE") self.assertEquals("{}", resp) def _test_virtualworld_mode_command(self): resp = self.experiment.do_send_command_to_device("VIRTUALWORLD_MODE watertank") self.assertEquals("ok", resp) def test_virtualworld_non_existant(self): resp = self.experiment.do_send_command_to_device("VIRTUALWORLD_MODE thisdoesntexist") self.assertEquals("unknown_virtualworld", resp)
class BasicUdXilinxExperimentTestCase(unittest.TestCase): def setUp(self): from voodoo.configuration import ConfigurationManager from voodoo.sessions.session_id import SessionId self.cfg_manager = ConfigurationManager() self.cfg_manager.append_module(configuration_module) self.cfg_manager._set_value("webcam", "http://localhost") # For later. self.cfg_manager._set_value("weblab_xilinx_experiment_xilinx_device", "FPGA") UdXilinxCommandSenders._SerialPort = FakeSerialPort UdXilinxCommandSenders._HttpDevice = FakeHttpDevice self.experiment = UdXilinxExperiment.UdXilinxExperiment(None, None, self.cfg_manager) self.lab_session_id = SessionId('my-session-id') def cleanUp(self): pass def test_basic_start(self): configjson = self.experiment.do_start_experiment() self.assertIsNotNone(configjson) def test_basic_start_config(self): configjson = self.experiment.do_start_experiment() self.assertEquals(UdXilinxExperiment.STATE_NOT_READY, self.experiment._current_state) initconfig = json.loads(configjson) self.assertIsNotNone(initconfig) self.assertTrue("initial_configuration" in initconfig) config = json.loads(initconfig["initial_configuration"]) self.assertTrue("webcam" in config) def test_basic_start_end(self): self.experiment.do_start_experiment() self.experiment.do_dispose() def test_check_state(self): self.experiment.do_start_experiment() resp = self.experiment.do_send_command_to_device("STATE") self.assertEquals(resp, "STATE=" + UdXilinxExperiment.STATE_NOT_READY) # TODO: This test is currently failing. REPORT_SWITCHES shouldn't return a list, but a string. def _test_report_switches(self): self.experiment.do_start_experiment() resp = self.experiment.do_send_command_to_device("REPORT_SWITCHES") self.assertEquals("1111111111", resp) def test_api_version(self): api = self.experiment.do_get_api() self.assertEquals("2", api)
class PermissionsXilinxExperimentTestCase(unittest.TestCase): def setUp(self): from voodoo.configuration import ConfigurationManager from voodoo.sessions.session_id import SessionId self.cfg_manager = ConfigurationManager() self.cfg_manager.append_module(configuration_module) self.cfg_manager._set_value("webcam", "http://localhost") self.cfg_manager._set_value("weblab_xilinx_experiment_xilinx_device", "FPGA") self.cfg_manager._set_value("xilinx_max_use_time", "3600") self.cfg_manager._set_value("xilinx_bit_allowed", False) UdXilinxCommandSenders._SerialPort = FakeSerialPort UdXilinxCommandSenders._HttpDevice = FakeHttpDevice self.experiment = UdXilinxExperiment.UdXilinxExperiment(None, None, self.cfg_manager) self.lab_session_id = SessionId('my-session-id') def cleanUp(self): self.experiment.do_dispose() def test_bit_disallowed(self): new_state = self.experiment.do_send_file_to_device("CONTENTS", "bit") self.assertEquals("STATE=not_allowed", new_state) def test_vhd_allowed(self): new_state = self.experiment.do_send_file_to_device("CONTENTS", "vhd") self.assertNotEquals("STATE=not_allowed", new_state) def test_all_disallowed(self): new_state = self.experiment.do_send_file_to_device("CONTENTS", "wha"); self.assertEquals("STATE=not_allowed", new_state)
class CompilerXilinxExperimentTestCase(unittest.TestCase): def setUp(self): from voodoo.configuration import ConfigurationManager from voodoo.sessions.session_id import SessionId self.cfg_manager = ConfigurationManager() self.cfg_manager.append_module(configuration_module) self.cfg_manager._set_value("webcam", "http://localhost") # For later. self.cfg_manager._set_value("weblab_xilinx_experiment_xilinx_device", "FPGA") UdXilinxCommandSenders._SerialPort = FakeSerialPort UdXilinxCommandSenders._HttpDevice = FakeHttpDevice self.experiment = UdXilinxExperiment.UdXilinxExperiment(None, None, self.cfg_manager) self.configjson = self.experiment.do_start_experiment() self.lab_session_id = SessionId('my-session-id') @mock.patch("experiments.xilinxc.compiler.Compiler") def test_compile(self, compiler_class): pass # TODO: Test isn't working for now. # thr = self.experiment._compile_program_file_t("CONTENTS") # print thr def cleanUp(self): self.experiment.do_dispose()
class CompilerXilinxExperimentTestCase(unittest.TestCase): def setUp(self): from voodoo.configuration import ConfigurationManager from voodoo.sessions.session_id import SessionId self.cfg_manager = ConfigurationManager() self.cfg_manager.append_module(configuration_module) self.cfg_manager._set_value("webcam", "http://localhost") # For later. self.cfg_manager._set_value("weblab_xilinx_experiment_xilinx_device", "FPGA") UdXilinxCommandSenders._SerialPort = FakeSerialPort UdXilinxCommandSenders._HttpDevice = FakeHttpDevice self.experiment = UdXilinxExperiment.UdXilinxExperiment( None, None, self.cfg_manager) self.configjson = self.experiment.do_start_experiment() self.lab_session_id = SessionId('my-session-id') @mock.patch("experiments.xilinxc.compiler.Compiler") def test_compile(self, compiler_class): pass # TODO: Test isn't working for now. # thr = self.experiment._compile_program_file_t("CONTENTS") # print thr def cleanUp(self): self.experiment.do_dispose()
class PermissionsXilinxExperimentTestCase(unittest.TestCase): def setUp(self): from voodoo.configuration import ConfigurationManager from voodoo.sessions.session_id import SessionId self.cfg_manager = ConfigurationManager() self.cfg_manager.append_module(configuration_module) self.cfg_manager._set_value("webcam", "http://localhost") self.cfg_manager._set_value("weblab_xilinx_experiment_xilinx_device", "FPGA") self.cfg_manager._set_value("xilinx_max_use_time", "3600") self.cfg_manager._set_value("xilinx_bit_allowed", False) UdXilinxCommandSenders._SerialPort = FakeSerialPort UdXilinxCommandSenders._HttpDevice = FakeHttpDevice self.experiment = UdXilinxExperiment.UdXilinxExperiment( None, None, self.cfg_manager) self.lab_session_id = SessionId('my-session-id') def cleanUp(self): self.experiment.do_dispose() def test_bit_disallowed(self): new_state = self.experiment.do_send_file_to_device("CONTENTS", "bit") self.assertEquals("STATE=not_allowed", new_state) def test_vhd_allowed(self): new_state = self.experiment.do_send_file_to_device("CONTENTS", "vhd") self.assertNotEquals("STATE=not_allowed", new_state) def test_all_disallowed(self): new_state = self.experiment.do_send_file_to_device("CONTENTS", "wha") self.assertEquals("STATE=not_allowed", new_state)
class EarlyKickingXilinxExperimentTestCase(unittest.TestCase): def setUp(self): from voodoo.configuration import ConfigurationManager from voodoo.sessions.session_id import SessionId self.cfg_manager = ConfigurationManager() self.cfg_manager.append_module(configuration_module) self.cfg_manager._set_value("webcam", "http://localhost") self.cfg_manager._set_value("weblab_xilinx_experiment_xilinx_device", "FPGA") self.cfg_manager._set_value("xilinx_max_use_time", "3600") UdXilinxCommandSenders._SerialPort = FakeSerialPort UdXilinxCommandSenders._HttpDevice = FakeHttpDevice self.experiment = UdXilinxExperiment.UdXilinxExperiment( None, None, self.cfg_manager) self.lab_session_id = SessionId('my-session-id') def test_basic_start_config(self): configjson = self.experiment.do_start_experiment() self.assertEquals(UdXilinxExperiment.STATE_NOT_READY, self.experiment._current_state) initconfig = json.loads(configjson) self.assertIsNotNone(initconfig) self.assertTrue("initial_configuration" in initconfig) config = json.loads(initconfig["initial_configuration"]) self.assertTrue("webcam" in config) self.assertTrue("max_use_time" in config) def test_cleanup(self): self.experiment.do_start_experiment() self.experiment.do_dispose() self.assertIsNone(self.experiment._use_time_start) def test_report(self): self.experiment.do_start_experiment() resp = self.experiment.do_send_command_to_device( "REPORT_USE_TIME_LEFT") self.assertEquals("unknown", resp)
class EarlyKickingXilinxExperimentTestCase(unittest.TestCase): def setUp(self): from voodoo.configuration import ConfigurationManager from voodoo.sessions.session_id import SessionId self.cfg_manager = ConfigurationManager() self.cfg_manager.append_module(configuration_module) self.cfg_manager._set_value("webcam", "http://localhost") self.cfg_manager._set_value("weblab_xilinx_experiment_xilinx_device", "FPGA") self.cfg_manager._set_value("xilinx_max_use_time", "3600") UdXilinxCommandSenders._SerialPort = FakeSerialPort UdXilinxCommandSenders._HttpDevice = FakeHttpDevice self.experiment = UdXilinxExperiment.UdXilinxExperiment(None, None, self.cfg_manager) self.lab_session_id = SessionId('my-session-id') def test_basic_start_config(self): configjson = self.experiment.do_start_experiment() self.assertEquals(UdXilinxExperiment.STATE_NOT_READY, self.experiment._current_state) initconfig = json.loads(configjson) self.assertIsNotNone(initconfig) self.assertTrue("initial_configuration" in initconfig) config = json.loads(initconfig["initial_configuration"]) self.assertTrue("webcam" in config) self.assertTrue("max_use_time" in config) def test_cleanup(self): self.experiment.do_start_experiment() self.experiment.do_dispose() self.assertIsNone(self.experiment._use_time_start) def test_report(self): self.experiment.do_start_experiment() resp = self.experiment.do_send_command_to_device("REPORT_USE_TIME_LEFT") self.assertEquals("unknown", resp)
class VirtualWorldXilinxExperimentTestCase(unittest.TestCase): def setUp(self): from voodoo.configuration import ConfigurationManager from voodoo.sessions.session_id import SessionId self.cfg_manager = ConfigurationManager() self.cfg_manager.append_module(configuration_module) self.cfg_manager._set_value("webcam", "http://localhost") # For later. self.cfg_manager._set_value("weblab_xilinx_experiment_xilinx_device", "FPGA") UdXilinxCommandSenders._SerialPort = FakeSerialPort UdXilinxCommandSenders._HttpDevice = FakeHttpDevice self.experiment = UdXilinxExperiment.UdXilinxExperiment( None, None, self.cfg_manager) self.configjson = self.experiment.do_start_experiment() self.lab_session_id = SessionId('my-session-id') def cleanUp(self): self.experiment.do_dispose() def test_basic_state_command(self): resp = self.experiment.do_send_command_to_device("VIRTUALWORLD_STATE") self.assertEquals("{}", resp) def _test_virtualworld_mode_command(self): resp = self.experiment.do_send_command_to_device( "VIRTUALWORLD_MODE watertank") self.assertEquals("ok", resp) def test_virtualworld_non_existant(self): resp = self.experiment.do_send_command_to_device( "VIRTUALWORLD_MODE thisdoesntexist") self.assertEquals("unknown_virtualworld", resp)
class VirtualWorldXilinxExperimentTestCase(unittest.TestCase): def setUp(self): from voodoo.configuration import ConfigurationManager from voodoo.sessions.session_id import SessionId self.cfg_manager = ConfigurationManager() self.cfg_manager.append_module(configuration_module) self.cfg_manager._set_value("webcam", "http://localhost") # For later. self.cfg_manager._set_value("weblab_xilinx_experiment_xilinx_device", "FPGA") UdXilinxCommandSenders._SerialPort = FakeSerialPort UdXilinxCommandSenders._HttpDevice = FakeHttpDevice self.experiment = UdXilinxExperiment.UdXilinxExperiment(None, None, self.cfg_manager) self.configjson = self.experiment.do_start_experiment() self.lab_session_id = SessionId('my-session-id') def cleanUp(self): self.experiment.do_dispose() def test_basic_state_command(self): resp = self.experiment.do_send_command_to_device("VIRTUALWORLD_STATE") self.assertEquals("{}", resp) def _test_virtualworld_mode_command(self): resp = self.experiment.do_send_command_to_device("VIRTUALWORLD_MODE watertank") self.assertEquals("ok", resp) def test_virtualworld_non_existant(self): resp = self.experiment.do_send_command_to_device("VIRTUALWORLD_MODE thisdoesntexist") self.assertEquals("unknown_virtualworld", resp) class FakeOpen(object): def read(self): return """ { "inputs" : [ { "inputNumber": "0", "value": "0" }, { "inputNumber": "1", "value": "1" }, { "inputNumber": "2", "value": "1" }, { "inputNumber": "3", "value": "0" }, { "inputNumber": "4", "value": "1" }, { "inputNumber": "5", "value": "1" }, { "inputNumber": "6", "value": "0" }, { "inputNumber": "7", "value": "1" } ] } """ def _ret_fake(self): return VirtualWorldXilinxExperimentTestCase.FakeOpen() @patch("urllib2.urlopen", new=_ret_fake) def test_read_leds(self): resp = self.experiment.query_leds_from_json() self.assertEquals(["0", "1", "1", "0", "1", "1", "0", "1"], resp) resp = self.experiment.do_send_command_to_device("READ_LEDS") self.assertEquals("01101101", resp)
class BasicUdXilinxExperimentTestCase(unittest.TestCase): def setUp(self): from voodoo.configuration import ConfigurationManager from voodoo.sessions.session_id import SessionId self.cfg_manager = ConfigurationManager() self.cfg_manager.append_module(configuration_module) self.cfg_manager._set_value("webcam", "http://localhost") # For later. self.cfg_manager._set_value("weblab_xilinx_experiment_xilinx_device", "FPGA") UdXilinxCommandSenders._SerialPort = FakeSerialPort UdXilinxCommandSenders._HttpDevice = FakeHttpDevice self.experiment = UdXilinxExperiment.UdXilinxExperiment( None, None, self.cfg_manager) self.lab_session_id = SessionId('my-session-id') def cleanUp(self): pass def test_basic_start(self): configjson = self.experiment.do_start_experiment() self.assertIsNotNone(configjson) def test_basic_start_config(self): configjson = self.experiment.do_start_experiment() self.assertEquals(UdXilinxExperiment.STATE_NOT_READY, self.experiment._current_state) initconfig = json.loads(configjson) self.assertIsNotNone(initconfig) self.assertTrue("initial_configuration" in initconfig) config = json.loads(initconfig["initial_configuration"]) self.assertTrue("webcam" in config) def test_basic_start_end(self): self.experiment.do_start_experiment() self.experiment.do_dispose() def test_check_state(self): self.experiment.do_start_experiment() resp = self.experiment.do_send_command_to_device("STATE") self.assertEquals(resp, "STATE=" + UdXilinxExperiment.STATE_NOT_READY) # TODO: This test is currently failing. REPORT_SWITCHES shouldn't return a list, but a string. def _test_report_switches(self): self.experiment.do_start_experiment() resp = self.experiment.do_send_command_to_device("REPORT_SWITCHES") self.assertEquals("1111111111", resp) def test_api_version(self): api = self.experiment.do_get_api() self.assertEquals("2", api)