Exemple #1
0
    def test_delete_all(self):
        m_session = mock.Mock()

        # TODO(Dantali0n): change into setting attributes directly
        m_atribs = {
            "id": 1,
            "name": "test1",
            "interface": DeviceInterfaces.SERIAL,
            "implementation": "ArduinoGeigerPCB",
        }

        m_query = mock.Mock()
        m_device = Device()
        m_device.id = 1
        m_device.name = "test1"
        m_device.interface = DeviceInterfaces.SERIAL
        m_device.implementation = mock.Mock(
            code="ArduinoGeigerPCB", value="arduinogeigerpcb")

        m_session.query.return_value.filter_by.return_value = m_query
        m_query.all.return_value = [m_device]

        test_obj = DeviceObject(**m_atribs)
        DeviceObject.delete(m_session, test_obj, True)

        m_session.delete.assert_has_calls(
            [
                mock.call(m_device),
            ],
            any_order=True
        )
        m_session.commit.assert_called_once()
Exemple #2
0
    def test_delete_none(self):
        m_session = mock.Mock()

        # TODO(Dantali0n): change into setting attributes directly
        m_atribs = {
            "id": 1,
            "name": "test1",
            "interface": DeviceInterfaces.SERIAL,
            "implementation": "ArduinoGeigerPCB",
        }

        m_query = mock.Mock()
        m_device = Device()
        m_device.id = 1
        m_device.name = "test1"
        m_device.interface = DeviceInterfaces.SERIAL
        m_device.implementation = mock.Mock(
            code="ArduinoGeigerPCB", value="arduinogeigerpcb")

        m_session.query.return_value.filter_by.return_value = m_query
        m_query.one_or_none.return_value = None

        test_obj = DeviceObject(**m_atribs)
        DeviceObject.delete(m_session, test_obj)

        m_session.delete.assert_not_called()
        m_session.commit.assert_not_called()
Exemple #3
0
    def take_action(self, parsed_args):
        args = dict(parsed_args._get_kwargs())
        device_obj = DeviceObject(**args)

        if device_obj.id is None and device_obj.name is None:
            raise RuntimeWarning(
                _("Either the id or name must be specified to "
                  "remove a device"))

        try:
            data = DeviceObject.delete(self.app.database_session, device_obj,
                                       False)
        except MultipleResultsFound:
            raise RuntimeWarning(_("Multiple devices found"))

        if data is None:
            raise RuntimeWarning(_("Device could not be found"))

        fields = ('id', 'name', 'interface', 'implementation')
        values = (data.id, data.name, data.interface, data.implementation)

        self.app.LOG.info(_("Device removed successfully"))
        return (fields, values)