test_socket_connection.py (3884B)
1 #!/usr/bin/env python 2 3 import mozunit 4 import pytest 5 from conftest import random_tcp_port 6 7 8 @pytest.fixture(params=[f"tcp:{random_tcp_port()}" for _ in range(5)]) 9 def select_test_port(request): 10 """Generate a list of ports to be used for testing.""" 11 yield request.param 12 13 14 def test_list_socket_connections_reverse(mock_adb_object): 15 assert [("['reverse',", "'--list']")] == mock_adb_object.list_socket_connections( 16 "reverse" 17 ) 18 19 20 def test_list_socket_connections_forward(mock_adb_object): 21 assert [("['forward',", "'--list']")] == mock_adb_object.list_socket_connections( 22 "forward" 23 ) 24 25 26 def test_create_socket_connection_reverse( 27 mock_adb_object, select_test_port, redirect_stdout_and_assert 28 ): 29 _expected = f"['reverse', '{select_test_port}', '{select_test_port}']" 30 redirect_stdout_and_assert( 31 mock_adb_object.create_socket_connection, 32 direction="reverse", 33 local=select_test_port, 34 remote=select_test_port, 35 text=_expected, 36 ) 37 38 39 def test_create_socket_connection_forward( 40 mock_adb_object, select_test_port, redirect_stdout_and_assert 41 ): 42 _expected = f"['forward', '{select_test_port}', '{select_test_port}']" 43 redirect_stdout_and_assert( 44 mock_adb_object.create_socket_connection, 45 direction="forward", 46 local=select_test_port, 47 remote=select_test_port, 48 text=_expected, 49 ) 50 51 52 def test_create_socket_connection_forward_adb_assigned_port( 53 mock_adb_object, select_test_port 54 ): 55 result = mock_adb_object.create_socket_connection( 56 direction="forward", local="tcp:0", remote=select_test_port 57 ) 58 assert isinstance(result, int) and result == 7777 59 60 61 def test_remove_socket_connections_reverse(mock_adb_object, redirect_stdout_and_assert): 62 _expected = "['reverse', '--remove-all']" 63 redirect_stdout_and_assert( 64 mock_adb_object.remove_socket_connections, direction="reverse", text=_expected 65 ) 66 67 68 def test_remove_socket_connections_forward(mock_adb_object, redirect_stdout_and_assert): 69 _expected = "['forward', '--remove-all']" 70 redirect_stdout_and_assert( 71 mock_adb_object.remove_socket_connections, direction="forward", text=_expected 72 ) 73 74 75 def test_legacy_forward(mock_adb_object, select_test_port, redirect_stdout_and_assert): 76 _expected = f"['forward', '{select_test_port}', '{select_test_port}']" 77 redirect_stdout_and_assert( 78 mock_adb_object.forward, 79 local=select_test_port, 80 remote=select_test_port, 81 text=_expected, 82 ) 83 84 85 def test_legacy_forward_adb_assigned_port(mock_adb_object, select_test_port): 86 result = mock_adb_object.forward(local="tcp:0", remote=select_test_port) 87 assert isinstance(result, int) and result == 7777 88 89 90 def test_legacy_reverse(mock_adb_object, select_test_port, redirect_stdout_and_assert): 91 _expected = f"['reverse', '{select_test_port}', '{select_test_port}']" 92 redirect_stdout_and_assert( 93 mock_adb_object.reverse, 94 local=select_test_port, 95 remote=select_test_port, 96 text=_expected, 97 ) 98 99 100 def test_validate_port_invalid_prefix(mock_adb_object): 101 with pytest.raises(ValueError): 102 mock_adb_object._validate_port("{}".format("invalid"), is_local=True) 103 104 105 @pytest.mark.xfail 106 def test_validate_port_non_numerical_port_identifier(mock_adb_object): 107 with pytest.raises(AttributeError): 108 mock_adb_object._validate_port( 109 "{}".format("tcp:this:is:not:a:number"), is_local=True 110 ) 111 112 113 def test_validate_port_identifier_length_short(mock_adb_object): 114 with pytest.raises(ValueError): 115 mock_adb_object._validate_port("{}".format("tcp"), is_local=True) 116 117 118 def test_validate_direction(mock_adb_object): 119 with pytest.raises(ValueError): 120 mock_adb_object._validate_direction("{}".format("bad direction")) 121 122 123 if __name__ == "__main__": 124 mozunit.main()