コード例 #1
0
 def test_handle_surface_data(self):
     for data, validated in self.surface_data:
         atom_logic = AtomsLogic(10, 10, self.__class__.server_mock)
         z = 70
         self.__set_tool_is_coming_down(atom_logic, z)
         atom_logic.set_is_surface(False)
         if validated == 'valid':
             atom_logic.handle_server_data(data)
             self.assertTrue(atom_logic.is_surface())
             self.assertEqual(z - CORRECTION_Z, atom_logic.surface_data[0,
                                                                        0])
         else:
             atom_logic.handle_server_data(data)
             self.assertFalse(atom_logic.is_surface())
             self.assertNotEqual(z - CORRECTION_Z,
                                 atom_logic.surface_data[0, 0])
         self.assertFalse(atom_logic.is_atom())
コード例 #2
0
class TestGraphWithRealAtomLogic(TestCase):
    def setUp(self) -> None:
        server_mock = Mock()
        attrs = {
            'type_object': 'Server',
            'external_handle_func': '',
        }
        server_mock.configure_mock(**attrs)
        self.atoms_logic = AtomsLogic(10, 10, server_mock)

    def tearDown(self) -> None:
        self.atoms_logic = None

    def test_update_graph_data_algorithm(self):
        self.atoms_logic.atom_release_event = True
        self.atoms_logic.atom_captured_event = True
        self.atoms_logic.set_is_atom(True)
        self.atoms_logic.set_is_surface(True)
        graph = self.__get_graph_obj()
        graph.update_graph_data_algorithm()

        calls = [
            call(*(0, 0, 0), s=5, c=COLOR_ATOM, marker='8'),
            call(*self.atoms_logic.get_tool_coordinate(),
                 s=5,
                 c=COLOR_TIP,
                 marker='8'),
            call(*self.atoms_logic.get_tool_coordinate(),
                 s=5,
                 c=COLOR_ATOM,
                 marker='8'),
            call(*self.atoms_logic.get_tool_coordinate(),
                 s=5,
                 c=COLOR_TIP,
                 marker='8'),
            call(*self.atoms_logic.get_tool_coordinate(),
                 s=5,
                 c=COLOR_ATOM,
                 marker='8'),
        ]
        self.atoms_logic.server.send_data_to_all_clients.assert_called_once_with(
            '{"sensor": "servo_z", "value": "0"}')
        graph.ax.scatter.assert_has_calls(calls, any_order=False)
        self.assertFalse(self.atoms_logic.atom_release_event)
        self.assertFalse(self.atoms_logic.atom_captured_event)
        self.assertEqual(1, len(self.atoms_logic.atom_collection.atoms_list))
        self.assertFalse(self.atoms_logic.is_atom())
        self.assertFalse(self.atoms_logic.is_atom())

    def test_update_graph_another_data_algorithm(self):
        self.atoms_logic.atom_release_event = True
        self.atoms_logic.atom_captured_event = True
        self.atoms_logic.set_is_surface(True)
        self.atoms_logic.set_is_atom(False)
        graph = self.__get_graph_obj()
        graph.update_graph_data_algorithm()

        calls = [
            call(*(0, 0, 0), s=5, c=COLOR_ATOM, marker='8'),
            call(*self.atoms_logic.get_tool_coordinate(),
                 s=5,
                 c=COLOR_TIP,
                 marker='8'),
            call(*self.atoms_logic.get_tool_coordinate(),
                 s=5,
                 c=COLOR_TIP,
                 marker='8'),
        ]
        graph.ax.scatter.assert_has_calls(calls, any_order=False)

        self.atoms_logic.server.send_data_to_all_clients.assert_called_once_with(
            '{"sensor": "servo_z", "value": "0"}')

        self.assertEqual(0, len(self.atoms_logic.atom_collection.atoms_list))
        self.assertFalse(self.atoms_logic.atom_release_event)
        self.assertFalse(self.atoms_logic.atom_captured_event)
        self.assertFalse(self.atoms_logic.is_atom())
        self.assertFalse(self.atoms_logic.is_atom())

    def __get_graph_obj(self):
        ax = Mock()
        ax.scatter = MagicMock()
        graph = FakeGraphFrame(self.atoms_logic, ax)
        ax.plot_surface = MagicMock(return_value=graph.surface)
        return graph