def setup(self): self.root = RootTask(should_stop=Event(), should_pause=Event()) self.task = TransferPulseSequenceTask(task_name='Test') self.root.children_task.append(self.task) self.root.run_time['drivers'] = {'AWG5014B': InstrHelper} self.root.write_in_database('int', 2) self.sequence = RootSequence() self.context = AWGContext() self.sequence.context = self.context self.sequence.external_vars = {'a': None} pulse1 = Pulse(def_1='1.0', def_2='{a}', channel='Ch1_M1') pulse2 = Pulse(def_1='{a} + 1.0', def_2='4.0', channel='Ch1_M1') pulse3 = Pulse(def_1='{2_stop} + 0.5', def_2='10', channel='Ch1_M1') self.sequence.items.extend([pulse1, pulse2, pulse3]) self.task.sequence = self.sequence self.task.sequence_vars = {'a': '{Root_int}'} interface = AWGTransferInterface(task=self.task) self.task.interface = interface self.task.selected_driver = 'AWG5014B' self.task.selected_profile = 'Test1' def get_ch(s, ch): return InstrHelper(({'output_state': 'OFF'}, {'select_sequence': lambda s, se: None})) prof = ({'owner': [None], 'defined_channels': ('Ch1',)}, {'get_channel': get_ch, 'to_send': lambda s, se: None}) self.root.run_time['profiles'] = {'Test1': prof}
def setup(self): self.root = RootTask(should_stop=Event(), should_pause=Event()) self.task = TransferPulseSequenceTask(task_name='Test') self.root.children_task.append(self.task) self.root.run_time['drivers'] = {'AWG5014B': InstrHelper} self.root.write_in_database('int', 2) self.sequence = RootSequence() self.context = AWGContext() self.sequence.context = self.context self.sequence.external_vars = {'a': None} pulse1 = Pulse(def_1='1.0', def_2='{a}', channel='Ch1_M1') pulse2 = Pulse(def_1='{a} + 1.0', def_2='4.0', channel='Ch1_M1') pulse3 = Pulse(def_1='{2_stop} + 0.5', def_2='10', channel='Ch1_M1') self.sequence.items.extend([pulse1, pulse2, pulse3]) self.task.sequence = self.sequence self.task.sequence_vars = {'a': '{Root_int}'} interface = AWGTransferInterface(task=self.task) self.task.interface = interface self.task.selected_driver = 'AWG5014B' self.task.selected_profile = 'Test1'
class TestTransferPulseSequenceTask(object): def setup(self): self.root = RootTask(should_stop=Event(), should_pause=Event()) self.task = TransferPulseSequenceTask(task_name='Test') self.root.children_task.append(self.task) self.root.run_time['drivers'] = {'AWG5014B': InstrHelper} self.root.write_in_database('int', 2) self.sequence = RootSequence() self.context = AWGContext() self.sequence.context = self.context self.sequence.external_vars = {'a': None} pulse1 = Pulse(def_1='1.0', def_2='{a}', channel='Ch1_M1') pulse2 = Pulse(def_1='{a} + 1.0', def_2='4.0', channel='Ch1_M1') pulse3 = Pulse(def_1='{2_stop} + 0.5', def_2='10', channel='Ch1_M1') self.sequence.items.extend([pulse1, pulse2, pulse3]) self.task.sequence = self.sequence self.task.sequence_vars = {'a': '{Root_int}'} interface = AWGTransferInterface(task=self.task) self.task.interface = interface self.task.selected_driver = 'AWG5014B' self.task.selected_profile = 'Test1' def test_check_no_sequence(self): self.task.sequence = None test, traceback = self.task.check() assert_false(test) assert_equal(len(traceback), 1) def test_check_no_interface(self): self.task.interface = None test, traceback = self.task.check() assert_false(test) assert_equal(len(traceback), 2) def test_check_errors_in_vars(self): self.task.sequence_vars = {'a': '**'} test, traceback = self.task.check() assert_false(test) assert_equal(len(traceback), 1) def test_check_compilation_errors(self): self.task.sequence.items[0].def_1 = 'b' test, traceback = self.task.check() assert_false(test) assert_equal(len(traceback), 1) def test_check_wrong_context(self): self.task.sequence.context = None test, traceback = self.task.check() assert_false(test) assert_equal(len(traceback), 1) def test_check_ok(self): test, traceback = self.task.check() assert_true(test) def test_register_preferences_seq_path(self): self.task.sequence_path = 'toto' self.task.register_preferences() assert_in('sequence_path', self.task.task_preferences) assert_not_in('sequence', self.task.task_preferences) def test_register_preferences_seq(self): self.task.register_preferences() assert_not_in('sequence_path', self.task.task_preferences) assert_in('sequence', self.task.task_preferences)