tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_marionette_arguments.py (2868B)


      1 # This Source Code Form is subject to the terms of the Mozilla Public
      2 # License, v. 2.0. If a copy of the MPL was not distributed with this
      3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      4 
      5 import mozunit
      6 import pytest
      7 
      8 from marionette_harness.runtests import MarionetteArguments, MarionetteTestRunner
      9 
     10 
     11 @pytest.mark.parametrize("socket_timeout", ["A", "10", "1B-", "1C2", "44.35"])
     12 def test_parse_arg_socket_timeout(socket_timeout):
     13    argv = ["marionette", "--socket-timeout", socket_timeout]
     14    parser = MarionetteArguments()
     15 
     16    def _is_float_convertible(value):
     17        try:
     18            float(value)
     19            return True
     20        except ValueError:
     21            return False
     22 
     23    if not _is_float_convertible(socket_timeout):
     24        with pytest.raises(SystemExit) as ex:
     25            parser.parse_args(args=argv)
     26        assert ex.value.code == 2
     27    else:
     28        args = parser.parse_args(args=argv)
     29        assert hasattr(args, "socket_timeout") and args.socket_timeout == float(
     30            socket_timeout
     31        )
     32 
     33 
     34 @pytest.mark.parametrize(
     35    "arg_name, arg_dest, arg_value, expected_value",
     36    [
     37        ("app-arg", "app_args", "samplevalue", ["samplevalue"]),
     38        ("symbols-path", "symbols_path", "samplevalue", "samplevalue"),
     39        ("gecko-log", "gecko_log", "samplevalue", "samplevalue"),
     40        ("app", "app", "samplevalue", "samplevalue"),
     41    ],
     42 )
     43 def test_parsing_optional_arguments(
     44    mach_parsed_kwargs, arg_name, arg_dest, arg_value, expected_value
     45 ):
     46    parser = MarionetteArguments()
     47    parsed_args = parser.parse_args(["--" + arg_name, arg_value])
     48    result = vars(parsed_args)
     49    assert result.get(arg_dest) == expected_value
     50    mach_parsed_kwargs[arg_dest] = result[arg_dest]
     51    runner = MarionetteTestRunner(**mach_parsed_kwargs)
     52    built_kwargs = runner._build_kwargs()
     53    assert built_kwargs[arg_dest] == expected_value
     54 
     55 
     56 @pytest.mark.parametrize(
     57    "arg_name, arg_dest, arg_value, expected_value",
     58    [
     59        ("adb", "adb_path", "samplevalue", "samplevalue"),
     60        ("avd", "avd", "samplevalue", "samplevalue"),
     61        ("avd-home", "avd_home", "samplevalue", "samplevalue"),
     62        ("package", "package_name", "samplevalue", "samplevalue"),
     63    ],
     64 )
     65 def test_parse_opt_args_emulator(
     66    mach_parsed_kwargs, arg_name, arg_dest, arg_value, expected_value
     67 ):
     68    parser = MarionetteArguments()
     69    parsed_args = parser.parse_args(["--" + arg_name, arg_value])
     70    result = vars(parsed_args)
     71    assert result.get(arg_dest) == expected_value
     72    mach_parsed_kwargs[arg_dest] = result[arg_dest]
     73    mach_parsed_kwargs["emulator"] = True
     74    runner = MarionetteTestRunner(**mach_parsed_kwargs)
     75    built_kwargs = runner._build_kwargs()
     76    assert built_kwargs[arg_dest] == expected_value
     77 
     78 
     79 if __name__ == "__main__":
     80    mozunit.main("-p", "no:terminalreporter", "--log-tbpl=-", "--capture", "no")