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
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', ])
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
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")] )
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", ])
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') ])
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,
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", [
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,
def test_hide_value(): hidden = hide_value('my-secret') assert repr(hidden) == "<HiddenText '****'>" assert str(hidden) == '****' assert hidden.redacted == '****' assert hidden.secret == 'my-secret'
('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')]),
@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,
('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')]), ])
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"
) -> 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", [