Exemple #1
0
def cli(args):
    """Entrypoint to the command-line interface (CLI) of browser-history.

    It parses arguments from sys.argv and performs the appropriate actions.
    """
    args = parser.parse_args(args)
    outputs = None
    fetch_map = {
        "history": get_history,
        "bookmarks": get_bookmarks,
    }

    if args.type not in fetch_map:
        utils.logger.error(
            "Type %s is unavailable."
            " Check --help for available types", args.type)
        sys.exit(1)

    if args.browser == "all":
        outputs = fetch_map[args.type]()
    else:
        try:
            # gets browser class by name (string).
            selected_browser = args.browser
            if selected_browser == "default":
                default = utils.default_browser()
                if default is None:
                    sys.exit(1)
                else:
                    selected_browser = default.__name__
            else:
                for browser in utils.get_browsers():
                    if browser.__name__.lower() == args.browser.lower():
                        selected_browser = browser.__name__
                        break
            browser_class = getattr(browsers, selected_browser)
        except AttributeError:
            utils.logger.error(
                "Browser %s is unavailable."
                " Check --help for available browsers",
                args.browser,
            )
            sys.exit(1)

        if args.type == "history":
            outputs = browser_class().fetch_history()
        elif args.type == "bookmarks":
            outputs = browser_class().fetch_bookmarks()

    try:
        if args.output is None:
            if args.format == "infer":
                args.format = "csv"
            print(outputs.formatted(args.format))
        elif args.output is not None:
            outputs.save(args.output, args.format)

    except ValueError as e:
        utils.logger.error(e)
        sys.exit(1)
Exemple #2
0
def test_default_browser_unknown_alias(become_windows):  # noqa: F811
    mocked_dbw = Mock()
    mocked_dbw.return_value = "garbage"
    with patch("browser_history.utils._default_browser_win", mocked_dbw):
        browser = default_browser()
    assert browser is None
Exemple #3
0
def test_default_browser_firefox_noisy_alias(become_windows):  # noqa: F811
    mocked_dbw = Mock()
    mocked_dbw.return_value = "garbage_firefoxurl"
    with patch("browser_history.utils._default_browser_win", mocked_dbw):
        browser = default_browser()
    assert browser.name == "Firefox"
def test_default_windows_firefox(
        become_windows,
        change_win_default  # noqa: F811
):
    """Test that firefox is identified correctly on Windows"""
    assert utils.default_browser() == browsers.Firefox
def test_default_windows_chrome(
        become_windows,
        change_win_default  # noqa: F811
):
    """Test that chrome is identified correctly on Windows"""
    assert utils.default_browser() == browsers.Chrome
def test_default_safari(become_mac, change_linux_default):  # noqa: F811
    """Test that Safari set as default in MacOS is NOT
    recognised correctly since default browser in MacOS is not
    supported."""
    assert utils.default_browser() is None
def test_default_none(become_linux, change_linux_default):  # noqa: F811
    """Test that no default set returns None"""
    assert utils.default_browser() is None
def test_default_chrome(become_linux, change_linux_default):  # noqa: F811
    """Test that Chrome set as default is recognised
    correctly"""
    assert utils.default_browser() == browsers.Chrome
def test_default_firefox(become_linux, change_linux_default):  # noqa: F811
    """Test that firefox set as default is recognised
    correctly"""
    assert utils.default_browser() == browsers.Firefox
def test_default_windows_none(become_windows,
                              change_win_default):  # noqa: F811
    """Test that registry returning None is handled correctly"""
    assert utils.default_browser() is None