예제 #1
0
    def setUp(self):
        self.process = MagicMock()
        self.child = MagicMock()

        def getitem(name):
            return name

        self.child.__getitem__.side_effect = getitem

        self.params = MagicMock()
        self.params.readoutTime = 0.002
        self.process.get_block.return_value = self.child
        self.o = DetectorDriverPart(self.process, self.params)
        list(self.o.create_attributes())
    def setUp(self):
        self.process = MagicMock()
        self.child = MagicMock()

        def getitem(name):
            return name

        self.child.__getitem__.side_effect = getitem

        self.params = MagicMock()
        self.params.readoutTime = 0.002
        self.process.get_block.return_value = self.child
        self.o = DetectorDriverPart(self.process, self.params)
        list(self.o.create_attributes())
class TestSimDetectorDriverPart(unittest.TestCase):

    def setUp(self):
        self.process = MagicMock()
        self.child = MagicMock()

        def getitem(name):
            return name

        self.child.__getitem__.side_effect = getitem

        self.params = MagicMock()
        self.params.readoutTime = 0.002
        self.process.get_block.return_value = self.child
        self.o = DetectorDriverPart(self.process, self.params)
        list(self.o.create_attributes())

    def test_configure(self):
        task = MagicMock()
        params = MagicMock()
        xs = LineGenerator("x", "mm", 0.0, 0.5, 3, alternate_direction=True)
        ys = LineGenerator("y", "mm", 0.0, 0.1, 2)
        duration = FixedDurationMutator(0.1)
        params.generator = CompoundGenerator([ys, xs], [], [duration])
        completed_steps = 0
        steps_to_do = 6
        part_info = ANY
        self.o.configure(task, completed_steps, steps_to_do, part_info, params)
        task.put_many.assert_called_once_with(self.child, dict(
            exposure=0.1 - 0.002,
            imageMode="Multiple",
            numImages=steps_to_do,
            arrayCounter=completed_steps,
            arrayCallbacks=True))
        task.post_async.assert_has_calls([

            call(self.child["start"])])

    def test_run(self):
        task = MagicMock()
        update_completed_steps = MagicMock()
        self.o.start_future = MagicMock()
        self.o.run(task, update_completed_steps)
        task.subscribe.assert_called_once_with(
            self.child["arrayCounter"], update_completed_steps, self.o)
        task.wait_all.assert_called_once_with(self.o.start_future)

    def test_abort(self):
        task = MagicMock()
        self.o.abort(task)
        task.post.assert_called_once_with(self.child["stop"])
예제 #4
0
class TestSimDetectorDriverPart(unittest.TestCase):

    def setUp(self):
        self.process = MagicMock()
        self.child = MagicMock()

        def getitem(name):
            return name

        self.child.__getitem__.side_effect = getitem

        self.params = MagicMock()
        self.params.readoutTime = 0.002
        self.process.get_block.return_value = self.child
        self.o = DetectorDriverPart(self.process, self.params)
        list(self.o.create_attributes())

    def test_configure(self):
        task = MagicMock()
        params = MagicMock()
        xs = LineGenerator("x", "mm", 0.0, 0.5, 3, alternate=True)
        ys = LineGenerator("y", "mm", 0.0, 0.1, 2)
        params.generator = CompoundGenerator([ys, xs], [], [], 0.1)
        completed_steps = 0
        steps_to_do = 6
        part_info = ANY
        self.o.configure(task, completed_steps, steps_to_do, part_info, params)
        task.put_many.assert_called_once_with(self.child, dict(
            exposure=0.1 - 0.002,
            imageMode="Multiple",
            numImages=steps_to_do,
            arrayCounter=completed_steps,
            arrayCallbacks=True))
        task.post_async.assert_has_calls([

            call(self.child["start"])])

    def test_run(self):
        task = MagicMock()
        update_completed_steps = MagicMock()
        self.o.start_future = MagicMock()
        self.o.run(task, update_completed_steps)
        task.subscribe.assert_called_once_with(
            self.child["arrayCounter"], update_completed_steps, self.o)
        task.wait_all.assert_called_once_with(self.o.start_future)

    def test_abort(self):
        task = MagicMock()
        self.o.abort(task)
        task.post.assert_called_once_with(self.child["stop"])