def test_attach_parser_sets_optional_params(self, param_name): """Optional params are accepted by attach_parser.""" parser = attach_parser() arg = '--%s' % param_name value = 'val%s' % param_name with mock.patch('sys.argv', ['attach', arg, value]): args = parser.parse_args() assert value == getattr(args, param_name)
def test_attach_parser_requires_positional_token(self, capsys): """Token is required""" parser = attach_parser() with mock.patch("sys.argv", ["attach"]): with pytest.raises(SystemExit): parser.parse_args() _out, err = capsys.readouterr() assert "the following arguments are required: token" in err
def test_attach_parser_creates_a_parser_when_not_provided(self): """Create a named parser configured for 'attach'.""" m_parser = attach_parser(mock.Mock()) assert "ua attach <token> [flags]" == m_parser.usage assert "attach" == m_parser.prog assert "Flags" == m_parser._optionals.title full_parser = get_parser() with mock.patch("sys.argv", ["ua", "attach", "token"]): args = full_parser.parse_args() assert "token" == args.token
def test_attach_parser_creates_a_parser_when_not_provided(self): """Create a named parser configured for 'attach'.""" parser = attach_parser() assert "ubuntu-advantage attach [token] [flags]" == parser.usage descr = ("Attach this machine to an existing Ubuntu Advantage support" " subscription") assert descr == parser.description assert "attach" == parser.prog assert "Flags" == parser._optionals.title with mock.patch("sys.argv", ["attach", "token"]): args = parser.parse_args() assert "token" == args.token
def test_attach_parser_creates_a_parser_when_not_provided(self): """Create a named parser configured for 'attach' on no arguments.""" parser = attach_parser() assert 'ubuntu-advantage attach [token] [flags]' == parser.usage descr = ('Attach this machine to an existing Ubuntu Advantage support' ' subscription') assert descr == parser.description assert 'attach' == parser.prog assert 'Flags' == parser._optionals.title with mock.patch('sys.argv', ['attach']): args = parser.parse_args() assert None is args.password assert None is args.token assert None is args.email assert None is args.otp
def test_attach_parser_help_points_to_ua_contract_dashboard_url(self): """Contracts' dashboard URL is referenced by ua attach --help.""" parser = attach_parser() with mock.patch('sys.stdout', new_callable=StringIO) as m_stdout: parser.print_help() assert UA_DASHBOARD_URL in m_stdout.getvalue()
def test_attach_parser_accepts_positional_token(self): """Token positional param is accepted by attach_parser.""" parser = attach_parser() with mock.patch('sys.argv', ['attach', 'tokenval']): args = parser.parse_args() assert 'tokenval' == args.token
def test_attach_parser_optionals_title(self): parser = attach_parser(mock.Mock()) assert "Flags" == parser._optionals.title
def test_attach_parser_prog(self): parser = attach_parser(mock.Mock()) assert "attach" == parser.prog
def test_attach_parser_usage(self): parser = attach_parser(mock.Mock()) assert "ua attach <token> [flags]" == parser.usage
def test_attach_parser_prog(self, _m_resources): parser = attach_parser(mock.Mock()) assert "attach" == parser.prog
def test_attach_parser_defaults_to_auto_enable(self): parser = attach_parser() with mock.patch("sys.argv", ["attach", "token"]): args = parser.parse_args() assert args.auto_enable
def test_attach_parser_accepts_and_stores_no_auto_enable(self): parser = attach_parser() with mock.patch("sys.argv", ["attach", "--no-auto-enable", "token"]): args = parser.parse_args() assert not args.auto_enable
def test_attach_parser_help_points_to_ua_contract_dashboard_url( self, capsys): """Contracts' dashboard URL is referenced by ua attach --help.""" parser = attach_parser() parser.print_help() assert UA_AUTH_TOKEN_URL in capsys.readouterr()[0]