예제 #1
0
    def get_url_rev_options(self, url):

        # type: (HiddenText) -> Tuple[HiddenText, RevOptions]
        """

        Return the URL and RevOptions object to use in obtain() and in

        some cases export(), as a tuple (url, rev_options).

        """

        secret_url, rev, user_pass = self.get_url_rev_and_auth(url.secret)

        username, secret_password = user_pass

        password = None  # type: Optional[HiddenText]

        if secret_password is not None:

            password = hide_value(secret_password)

        extra_args = self.make_rev_args(username, password)

        rev_options = self.make_rev_options(rev, extra_args=extra_args)

        return hide_url(secret_url), rev_options
예제 #2
0
파일: test_vcs.py 프로젝트: cjc7373/pip
 def test_obtain(self):
     self.svn.obtain(self.dest, hide_url(self.url))
     self.assert_call_args([
         'svn', 'checkout', '-q', '--non-interactive', '--username',
         'username', '--password', hide_value('password'),
         hide_url('http://svn.example.com/'), '/tmp/test',
     ])
예제 #3
0
    def get_url_rev_options(self, url):
        
        secret_url, rev, user_pass = self.get_url_rev_and_auth(url.secret)
        username, secret_password = user_pass
        password = None  # type: Optional[HiddenText]
        if secret_password is not None:
            password = hide_value(secret_password)
        extra_args = self.make_rev_args(username, password)
        rev_options = self.make_rev_options(rev, extra_args=extra_args)

        return hide_url(secret_url), rev_options
예제 #4
0
def test_subversion__get_url_rev_options() -> None:
    """
    Test Subversion.get_url_rev_options().
    """
    secret_url = "svn+https://user:[email protected]/[email protected]#egg=MyProject"
    hidden_url = hide_url(secret_url)
    url, rev_options = Subversion().get_url_rev_options(hidden_url)
    assert url == hide_url("https://svn.example.com/MyProject")
    assert rev_options.rev == "v1.0"
    assert rev_options.extra_args == (
        ["--username", "user", "--password", hide_value("pass")]
    )
예제 #5
0
 def test_obtain(self) -> None:
     self.svn.obtain(self.dest, hide_url(self.url), verbosity=0)
     self.assert_call_args([
         "svn",
         "checkout",
         "--quiet",
         "--non-interactive",
         "--username",
         "username",
         "--password",
         hide_value("password"),
         hide_url("http://svn.example.com/"),
         "/tmp/test",
     ])
예제 #6
0
파일: test_vcs.py 프로젝트: Martinn1996/pip
def test_subversion__get_url_rev_options():
    """
    Test Subversion.get_url_rev_options().
    """
    secret_url = (
        'svn+https://user:[email protected]/[email protected]#egg=MyProject')
    hidden_url = hide_url(secret_url)
    url, rev_options = Subversion().get_url_rev_options(hidden_url)
    assert url == hide_url('https://svn.example.com/MyProject')
    assert rev_options.rev == 'v1.0'
    assert rev_options.extra_args == ([
        '--username', 'user', '--password',
        hide_value('pass')
    ])
예제 #7
0
    format_command_args,
    make_command,
    make_subprocess_output_error,
    subprocess_logger,
)


@pytest.mark.parametrize(
    'args, expected',
    [
        (['pip', 'list'], 'pip list'),
        (['foo', 'space space', 'new\nline', 'double"quote', "single'quote"],
         """foo 'space space' 'new\nline' 'double"quote' 'single'"'"'quote'"""
         ),
        # Test HiddenText arguments.
        (make_command(hide_value('secret1'), 'foo',
                      hide_value('secret2')), "'****' foo '****'"),
    ])
def test_format_command_args(args, expected):
    actual = format_command_args(args)
    assert actual == expected


def test_make_subprocess_output_error():
    cmd_args = ['test', 'has space']
    cwd = '/path/to/cwd'
    lines = ['line1\n', 'line2\n', 'line3\n']
    actual = make_subprocess_output_error(
        cmd_args=cmd_args,
        cwd=cwd,
        lines=lines,
예제 #8
0
                                                   Optional[str]]]) -> None:
    """
    Test Subversion.get_url_rev_and_auth().
    """
    actual = Subversion.get_url_rev_and_auth(url)
    assert actual == expected


# The non-SVN backends all use the same make_rev_args(), so only test
# Git as a representative.
@pytest.mark.parametrize(
    "username, password, expected",
    [
        (None, None, []),
        ("user", None, []),
        ("user", hide_value("pass"), []),
    ],
)
def test_git__make_rev_args(username: Optional[str],
                            password: Optional[HiddenText],
                            expected: CommandArgs) -> None:
    """
    Test VersionControl.make_rev_args().
    """
    actual = Git.make_rev_args(username, password)
    assert actual == expected


@pytest.mark.parametrize(
    "username, password, expected",
    [
예제 #9
0
from pip._internal.utils.misc import hide_value
from pip._internal.utils.subprocess import (
    call_subprocess,
    format_command_args,
    make_command,
    make_subprocess_output_error,
)
from pip._internal.utils.ui import SpinnerInterface


@pytest.mark.parametrize('args, expected', [
    (['pip', 'list'], 'pip list'),
    (['foo', 'space space', 'new\nline', 'double"quote', "single'quote"],
     """foo 'space space' 'new\nline' 'double"quote' 'single'"'"'quote'"""),
    # Test HiddenText arguments.
    (make_command(hide_value('secret1'), 'foo', hide_value('secret2')),
        "'****' foo '****'"),
])
def test_format_command_args(args, expected):
    actual = format_command_args(args)
    assert actual == expected


def test_make_subprocess_output_error():
    cmd_args = ['test', 'has space']
    cwd = '/path/to/cwd'
    lines = ['line1\n', 'line2\n', 'line3\n']
    actual = make_subprocess_output_error(
        cmd_args=cmd_args,
        cwd=cwd,
        lines=lines,
예제 #10
0
def test_hide_value():
    hidden = hide_value('my-secret')
    assert repr(hidden) == "<HiddenText '****'>"
    assert str(hidden) == '****'
    assert hidden.redacted == '****'
    assert hidden.secret == 'my-secret'
예제 #11
0
파일: test_vcs.py 프로젝트: Martinn1996/pip
         ('svn+ssh://[email protected]/MyProject', None, (None, None))),
    ])
def test_subversion__get_url_rev_and_auth(url, expected):
    """
    Test Subversion.get_url_rev_and_auth().
    """
    actual = Subversion.get_url_rev_and_auth(url)
    assert actual == expected


# The non-SVN backends all use the same make_rev_args(), so only test
# Git as a representative.
@pytest.mark.parametrize('username, password, expected', [
    (None, None, []),
    ('user', None, []),
    ('user', hide_value('pass'), []),
])
def test_git__make_rev_args(username, password, expected):
    """
    Test VersionControl.make_rev_args().
    """
    actual = Git.make_rev_args(username, password)
    assert actual == expected


@pytest.mark.parametrize('username, password, expected', [
    (None, None, []),
    ('user', None, ['--username', 'user']),
    ('user', hide_value('pass'),
     ['--username', 'user', '--password',
      hide_value('pass')]),
예제 #12
0

@pytest.mark.parametrize(
    "args, expected",
    [
        (["pip", "list"], "pip list"),
        (
            [
                "foo", "space space", "new\nline", 'double"quote',
                "single'quote"
            ],
            """foo 'space space' 'new\nline' 'double"quote' 'single'"'"'quote'""",
        ),
        # Test HiddenText arguments.
        (
            make_command(hide_value("secret1"), "foo", hide_value("secret2")),
            "'****' foo '****'",
        ),
    ],
)
def test_format_command_args(args: CommandArgs, expected: str) -> None:
    actual = format_command_args(args)
    assert actual == expected


def test_make_subprocess_output_error() -> None:
    cmd_args = ["test", "has space"]
    cwd = "/path/to/cwd"
    lines = ["line1\n", "line2\n", "line3\n"]
    actual = make_subprocess_output_error(
        cmd_args=cmd_args,
예제 #13
0
파일: test_vcs.py 프로젝트: cjc7373/pip
     ('svn+ssh://[email protected]/MyProject', None, (None, None))),
])
def test_subversion__get_url_rev_and_auth(url, expected):
    """
    Test Subversion.get_url_rev_and_auth().
    """
    actual = Subversion.get_url_rev_and_auth(url)
    assert actual == expected


# The non-SVN backends all use the same make_rev_args(), so only test
# Git as a representative.
@pytest.mark.parametrize('username, password, expected', [
    (None, None, []),
    ('user', None, []),
    ('user', hide_value('pass'), []),
])
def test_git__make_rev_args(username, password, expected):
    """
    Test VersionControl.make_rev_args().
    """
    actual = Git.make_rev_args(username, password)
    assert actual == expected


@pytest.mark.parametrize('username, password, expected', [
    (None, None, []),
    ('user', None, ['--username', 'user']),
    ('user', hide_value('pass'),
     ['--username', 'user', '--password', hide_value('pass')]),
])
예제 #14
0
파일: test_utils.py 프로젝트: pradyunsg/pip
def test_hide_value() -> None:
    hidden = hide_value("my-secret")
    assert repr(hidden) == "<HiddenText '****'>"
    assert str(hidden) == "****"
    assert hidden.redacted == "****"
    assert hidden.secret == "my-secret"
예제 #15
0
) -> None:
    """
    Test Subversion.get_url_rev_and_auth().
    """
    actual = Subversion.get_url_rev_and_auth(url)
    assert actual == expected


# The non-SVN backends all use the same make_rev_args(), so only test
# Git as a representative.
@pytest.mark.parametrize(
    "username, password, expected",
    [
        (None, None, []),
        ("user", None, []),
        ("user", hide_value("pass"), []),
    ],
)
def test_git__make_rev_args(
    username: Optional[str], password: Optional[HiddenText], expected: CommandArgs
) -> None:
    """
    Test VersionControl.make_rev_args().
    """
    actual = Git.make_rev_args(username, password)
    assert actual == expected


@pytest.mark.parametrize(
    "username, password, expected",
    [