Exemplo n.º 1
0
 def test_receive_loop_exit(self, mocker):
     sock = self._get_mocked_socket(mocker, True)
     with mocker.patch('socket.create_connection', return_value=sock):
         cl = client.OgnClient('username')
         cl.connect()
         cl._kill = True
         cl._receive_loop(lambda x: None, None)
Exemplo n.º 2
0
 def test_receive_loop_parse(self, mocker):
     sock = self._get_mocked_socket(mocker, True)
     with mocker.patch('socket.create_connection', return_value=sock):
         cl = client.OgnClient('username')
         cl.connect()
         cb = mocker.MagicMock(side_effect=lambda x: cl.disconnect())
         cl._receive_loop(cb, None)
         cl._receive_loop(cb, lambda x: x)
Exemplo n.º 3
0
    def test_receive_loop_raw(self, mocker):
        sock = self._get_mocked_socket(mocker, True)
        with mocker.patch('socket.create_connection', return_value=sock):
            cl = client.OgnClient('username')
            cl.connect()
            cb = mocker.MagicMock(side_effect=lambda x: cl.disconnect())
            cl._receive_loop(cb, None)

            cb.assert_called_once_with(APRS_RECORDS[0])
Exemplo n.º 4
0
    def test_gen_auth_msg(self):
        cl = client.OgnClient('username')
        msg = cl._gen_auth_message()
        user, username, pass_, passcode, *other = msg.split(' ')

        assert user == 'user'
        assert pass_ == 'pass'
        assert username == 'username'
        assert passcode == '-1'
        assert len(other) == 3
Exemplo n.º 5
0
    def test_disconnect(self, mocker):
        sock = self._get_mocked_socket(mocker)
        with mocker.patch('socket.create_connection', return_value=sock):
            cl = client.OgnClient('username')
            cl.connect()
            cl.disconnect()

        assert cl._kill
        assert sock.close.call_count > 0
        assert cl._sock_file.close.call_count > 0
Exemplo n.º 6
0
    def test_reconnect_fail(self, mocker):
        mocker.patch('time.sleep')

        cl = client.OgnClient('username')
        cl.connect = mocker.MagicMock(side_effect=BrokenPipeError)

        with pytest.raises(ConnectionError):
            cl._reconnect(retries=10, wait_period=5)

        assert time.sleep.call_count == 10
        assert cl.connect.call_count == 10
        time.sleep.assert_called_with(5)
Exemplo n.º 7
0
    def test_connect_failed_auth(self, mocker):
        sock = self._get_mocked_socket(mocker)
        with mocker.patch('socket.create_connection', return_value=sock):
            cl = client.OgnClient('username')
            cl._validate_login = mocker.MagicMock(
                side_effect=exceptions.ParseError)

            with pytest.raises(exceptions.ParseError):
                cl.connect()

        cl._sock_file.close.call_count == 1
        cl._socket.close.call_count == 1
Exemplo n.º 8
0
    def test_send_fail_once(self, mocker):
        sock = self._get_mocked_socket(mocker, True)
        mocker.patch('socket.create_connection', return_value=sock)

        cl = client.OgnClient('username')
        cl._socket = mocker.Mock()
        cl._socket.sendall = mocker.Mock(side_effect=[BrokenPipeError, None])
        cl._reconnect = mocker.Mock()
        cl.send('\n\ntest\nmessage\n\n\n')

        assert cl._socket.sendall.call_count == 2
        assert cl._reconnect.call_count == 1
Exemplo n.º 9
0
    def test_receive_reconnect(self, mocker):
        sock = self._get_mocked_socket(mocker, True)
        mocker.patch('socket.create_connection', return_value=sock)
        mocker.patch('time.sleep')

        cl = client.OgnClient('username')
        cl._receive_loop = mocker.MagicMock(side_effect=BrokenPipeError)
        cl._reconnect = mocker.MagicMock(side_effect=ConnectionError)
        cl.connect()
        with pytest.raises(ConnectionError):
            cl.receive(lambda x: None)

        assert cl._reconnect.call_count == 1
Exemplo n.º 10
0
 def test_connect_sock_file(self, mocker):
     sock = self._get_mocked_socket(mocker)
     with mocker.patch('socket.create_connection', return_value=sock):
         cl = client.OgnClient('username')
         cl.connect()
     assert not cl._sock_file.close.called
Exemplo n.º 11
0
 def test_connect_responses(self, mocker):
     sock = self._get_mocked_socket(mocker)
     with mocker.patch('socket.create_connection', return_value=sock):
         cl = client.OgnClient('username')
         cl.connect()
     assert cl._authenticated
Exemplo n.º 12
0
 def test_init_port_filter(self):
     cl = client.OgnClient('username', filter_='filter')
     assert cl.port == client.OgnClient.APRS_PORT_FILTER
Exemplo n.º 13
0
 def test_init_port_set(self):
     cl = client.OgnClient('username', port=-1, filter_='filter')
     assert cl.port == -1
     cl = client.OgnClient('username', port=-1)
     assert cl.port == -1
Exemplo n.º 14
0
 def test_validate_login_not_login(self):
     cl = client.OgnClient('username', passcode='123456')
     with pytest.raises(exceptions.LoginError):
         cl._validate_login('# aprsc 2.1.4-g408ed49')
Exemplo n.º 15
0
 def test_validate_login_parse_error(self):
     cl = client.OgnClient('username', passcode='123456')
     with pytest.raises(exceptions.ParseError):
         cl._validate_login('# logresp 2.1.4-g408ed49')
Exemplo n.º 16
0
 def test_validate_login_failed_auth(self):
     cl = client.OgnClient('username', passcode='123456')
     assert not cl._validate_login('# logresp user unverified, '
                                   'server GLIDERN3')
Exemplo n.º 17
0
    def _setup_keepalive_client(self, mocker, ts):
        cl = client.OgnClient('username')
        cl.send = mocker.MagicMock()
        cl._last_send = ts

        return cl
Exemplo n.º 18
0
 def test_send_strip(self, mocker):
     cl = client.OgnClient('username')
     cl._socket = mocker.Mock()
     cl.send('\n\ntest\nmessage\n\n\n')
     cl._socket.sendall.assert_called_once_with(b'test\nmessage\n')
Exemplo n.º 19
0
 def test_validate_login_unauth(self):
     cl = client.OgnClient('username')
     assert not cl._validate_login('# logresp user unverified, '
                                   'server GLIDERN3')
Exemplo n.º 20
0
 def test_receive_exit(self, mocker):
     sock = self._get_mocked_socket(mocker, True)
     with mocker.patch('socket.create_connection', return_value=sock):
         cl = client.OgnClient('username')
         cl.connect()
         cl.receive(lambda x: cl.disconnect())
Exemplo n.º 21
0
 def test_gen_auth_msg_filter(self):
     cl = client.OgnClient('username', filter_='special_filter')
     msg = cl._gen_auth_message()
     assert msg.endswith('filter special_filter')
Exemplo n.º 22
0
 def test_send_last_send(self, mocker):
     cl = client.OgnClient('username')
     cl._socket = mocker.Mock()
     cl.send('test message')
     assert time.time() - cl._last_send < 0.001
Exemplo n.º 23
0
 def test_init_set_server(self):
     server = 'example.com'
     cl = client.OgnClient('username', server=server)
     assert cl.server != client.OgnClient.APRS_SERVER
     assert cl.server == server
Exemplo n.º 24
0
 def test_validate_login_error(self):
     cl = client.OgnClient('username', passcode='123456')
     with pytest.raises(exceptions.LoginError):
         assert not cl._validate_login('# logresp user blocked, server '
                                       'GLIDERN3')
Exemplo n.º 25
0
 def test_validate_login_success(self):
     cl = client.OgnClient('username', passcode='123456')
     assert cl._validate_login('# logresp user verified, server GLIDERN3')
Exemplo n.º 26
0
 def test_init_default_server(self):
     cl = client.OgnClient('username')
     assert cl.server == client.OgnClient.APRS_SERVER
Exemplo n.º 27
0
 def test_init_port(self):
     cl = client.OgnClient('username')
     assert cl.port == client.OgnClient.APRS_PORT_FULL
Exemplo n.º 28
0
    def test_reconnect_success(self, mocker):
        cl = client.OgnClient('username')
        cl.connect = mocker.MagicMock()
        cl._reconnect(retries=10, wait_period=5)

        assert cl.connect.call_count == 1