def test_valid_download_default_location(self, valid_credentials_path,
                                             monkeypatch):
        # Mock the command line parser.
        arguments = download.get_cmd_args('"{0}" -c "{1}"'.format(
            VALID_PACKAGE_NAME, valid_credentials_path).split())
        monkeypatch.setattr(download, "get_cmd_args", lambda: arguments)

        # If this runs without errors, the apk will be saved in the Downloads folder
        # (created in the same folder as download.py).
        download.main()
    def test_valid_download_split_apk(self, valid_credentials_path,
                                      monkeypatch):
        # Mock the command line parser.
        arguments = download.get_cmd_args('"{0}" -c "{1}"'.format(
            APK_WITH_SPLIT_APK, valid_credentials_path).split())
        monkeypatch.setattr(download, "get_cmd_args", lambda: arguments)

        # If this runs without errors, the apk and the split apk(s) will be saved in
        # the Downloads folder (created in the same folder as download.py).
        download.main()
    def test_download_wrong_credentials(self, download_folder_path,
                                        wrong_credentials_path, monkeypatch):
        # Mock the command line parser.
        arguments = download.get_cmd_args('"{0}" -c "{1}"'.format(
            VALID_PACKAGE_NAME, wrong_credentials_path).split())
        monkeypatch.setattr(download, "get_cmd_args", lambda: arguments)

        with pytest.raises(SystemExit) as err:
            download.main()
        assert err.value.code == 1
Esempio n. 4
0
    def test_valid_download_additional_files(self, valid_credentials_path,
                                             monkeypatch):
        # Mock the command line parser.
        arguments = download.get_cmd_args('"{0}" -b -c "{1}"'.format(
            APK_WITH_OBB, valid_credentials_path).split())
        monkeypatch.setattr(download, 'get_cmd_args', lambda: arguments)

        # If this runs without errors, the apk and the additional files will be saved in the Downloads folder
        # (created in the same folder as download.py).
        download.main()
    def test_download_app_details_error(self, valid_credentials_path,
                                        monkeypatch):
        # Mock the command line parser.
        arguments = download.get_cmd_args('"{0}" -c "{1}"'.format(
            VALID_PACKAGE_NAME, valid_credentials_path).split())
        monkeypatch.setattr(download, "get_cmd_args", lambda: arguments)

        # Mock the Playstore.
        monkeypatch.setattr(Playstore, "app_details",
                            lambda self, package: None)

        with pytest.raises(SystemExit) as err:
            download.main()
        assert err.value.code == 1
    def test_valid_download_specific_location(self, download_folder_path,
                                              valid_credentials_path,
                                              monkeypatch):

        downloaded_apk_path = "{0}.apk".format(
            os.path.join(download_folder_path, VALID_PACKAGE_NAME))

        # Mock the command line parser.
        arguments = download.get_cmd_args('"{0}" -c "{1}" -o "{2}"'.format(
            VALID_PACKAGE_NAME, valid_credentials_path,
            downloaded_apk_path).split())
        monkeypatch.setattr(download, "get_cmd_args", lambda: arguments)

        download.main()

        assert os.path.isfile(downloaded_apk_path) is True
    def test_valid_download_specific_location(self, download_folder_path,
                                              valid_credentials_path,
                                              monkeypatch):
        downloaded_apk_path = (
            f"{os.path.join(download_folder_path, VALID_PACKAGE_NAME)}.apk")

        # Mock the command line parser.
        arguments = download.get_cmd_args(
            f'"{VALID_PACKAGE_NAME}" '
            f'-c "{valid_credentials_path}" '
            f'-o "{downloaded_apk_path}"'.split())
        monkeypatch.setattr(download, "get_cmd_args", lambda: arguments)

        download.main()

        assert os.path.isfile(downloaded_apk_path) is True
    def test_download_error(self, download_folder_path, valid_credentials_path,
                            monkeypatch):
        downloaded_apk_path = "{0}.apk".format(
            os.path.join(download_folder_path, "error", VALID_PACKAGE_NAME))

        # Mock the command line parser.
        arguments = download.get_cmd_args('"{0}" -c "{1}" -o "{2}"'.format(
            VALID_PACKAGE_NAME, valid_credentials_path,
            downloaded_apk_path).split())
        monkeypatch.setattr(download, "get_cmd_args", lambda: arguments)

        # Mock the Playstore.
        monkeypatch.setattr(Playstore, "download",
                            lambda self, package, path, download_obb: False)

        with pytest.raises(SystemExit) as err:
            download.main()
        assert err.value.code == 1
    def test_download_error(self, download_folder_path, valid_credentials_path,
                            monkeypatch):
        downloaded_apk_path = (
            f"{os.path.join(download_folder_path, 'error', VALID_PACKAGE_NAME)}.apk"
        )

        # Mock the command line parser.
        arguments = download.get_cmd_args(
            f'"{VALID_PACKAGE_NAME}" '
            f'-c "{valid_credentials_path}" '
            f'-o "{downloaded_apk_path}"'.split())
        monkeypatch.setattr(download, "get_cmd_args", lambda: arguments)

        # Mock the Playstore.
        monkeypatch.setattr(
            Playstore,
            "download",
            lambda self, package, path, download_obb, download_split_apks:
            False,
        )

        with pytest.raises(SystemExit) as err:
            download.main()
        assert err.value.code == 1