def test_validate_token_scope_valid_project(self): form = forms.CreateMacaroonForm( data={"description": "dummy", "token_scope": "scope:project:foo"}, user_id=pretend.stub(), macaroon_service=pretend.stub(get_macaroon_by_description=lambda *a: None), project_names=["foo"], ) assert form.validate()
def test_validate_description_missing(self): form = forms.CreateMacaroonForm( data={"token_scope": "scope:user"}, user_id=pretend.stub(), macaroon_service=pretend.stub(), project_names=pretend.stub(), ) assert not form.validate() assert form.description.errors.pop() == "Specify a description"
def test_validate_token_scope_invalid_project(self): form = forms.CreateMacaroonForm( data={"description": "dummy", "token_scope": "scope:project:foo"}, user_id=pretend.stub(), macaroon_service=pretend.stub(get_macaroon_by_description=lambda *a: None), project_names=["bar"], ) assert not form.validate() assert form.token_scope.errors.pop() == "Unknown or invalid project name: foo"
def test_validate_token_scope_invalid_format(self, scope): form = forms.CreateMacaroonForm( data={"description": "dummy", "token_scope": scope}, user_id=pretend.stub(), macaroon_service=pretend.stub(get_macaroon_by_description=lambda *a: None), project_names=pretend.stub(), ) assert not form.validate() assert form.token_scope.errors.pop() == f"Unknown token scope: {scope}"
def test_validate_token_scope_unspecified(self): form = forms.CreateMacaroonForm( data={"description": "dummy", "token_scope": "scope:unspecified"}, user_id=pretend.stub(), macaroon_service=pretend.stub(get_macaroon_by_description=lambda *a: None), project_names=pretend.stub(), ) assert not form.validate() assert form.token_scope.errors.pop() == "Specify the token scope"
def test_validate_description_in_use(self): form = forms.CreateMacaroonForm( data={"description": "dummy", "token_scope": "scope:user"}, user_id=pretend.stub(), macaroon_service=pretend.stub( get_macaroon_by_description=lambda *a: pretend.stub() ), project_names=pretend.stub(), ) assert not form.validate() assert form.description.errors.pop() == "API token name already in use"
def test_creation(self): user_id = pretend.stub() macaroon_service = pretend.stub() project_names = pretend.stub() form = forms.CreateMacaroonForm( user_id=user_id, macaroon_service=macaroon_service, project_names=project_names, ) assert form.user_id is user_id assert form.macaroon_service is macaroon_service assert form.project_names is project_names