Fix some issues from a tricky merge
This commit is contained in:
parent
47957384fc
commit
d307a255b1
@ -31,8 +31,8 @@ class Requests(object):
|
|||||||
AUTO_APPROVE_THRESHOLD = 1000000
|
AUTO_APPROVE_THRESHOLD = 1000000
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def create(cls, creator_id, body):
|
def create(cls, creator, body):
|
||||||
request = Request(creator=creator_id, body=body)
|
request = Request(creator=creator, body=body)
|
||||||
request = Requests.set_status(request, RequestStatus.STARTED)
|
request = Requests.set_status(request, RequestStatus.STARTED)
|
||||||
|
|
||||||
db.session.add(request)
|
db.session.add(request)
|
||||||
@ -41,11 +41,11 @@ class Requests(object):
|
|||||||
return request
|
return request
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def exists(cls, request_id, creator_id):
|
def exists(cls, request_id, creator):
|
||||||
try:
|
try:
|
||||||
return db.session.query(
|
return db.session.query(
|
||||||
exists().where(
|
exists().where(
|
||||||
and_(Request.id == request_id, Request.creator == creator_id)
|
and_(Request.id == request_id, Request.creator == creator)
|
||||||
)
|
)
|
||||||
).scalar()
|
).scalar()
|
||||||
except exc.DataError:
|
except exc.DataError:
|
||||||
|
@ -111,7 +111,7 @@ def requests_submit(request_id=None):
|
|||||||
def _check_can_view_request(request_id):
|
def _check_can_view_request(request_id):
|
||||||
if Permissions.REVIEW_AND_APPROVE_JEDI_WORKSPACE_REQUEST in g.current_user.atat_permissions:
|
if Permissions.REVIEW_AND_APPROVE_JEDI_WORKSPACE_REQUEST in g.current_user.atat_permissions:
|
||||||
pass
|
pass
|
||||||
elif Requests.exists(request_id, g.current_user.id):
|
elif Requests.exists(request_id, g.current_user):
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
raise UnauthorizedError(g.current_user, "view request {}".format(request_id))
|
raise UnauthorizedError(g.current_user, "view request {}".format(request_id))
|
||||||
|
@ -5,7 +5,6 @@ import alembic.command
|
|||||||
|
|
||||||
from atst.app import make_app, make_config
|
from atst.app import make_app, make_config
|
||||||
from atst.database import db as _db
|
from atst.database import db as _db
|
||||||
from .mocks import MOCK_USER
|
|
||||||
import tests.factories as factories
|
import tests.factories as factories
|
||||||
|
|
||||||
|
|
||||||
@ -75,7 +74,6 @@ class DummyForm(dict):
|
|||||||
|
|
||||||
|
|
||||||
class DummyField(object):
|
class DummyField(object):
|
||||||
|
|
||||||
def __init__(self, data=None, errors=(), raw_data=None):
|
def __init__(self, data=None, errors=(), raw_data=None):
|
||||||
self.data = data
|
self.data = data
|
||||||
self.errors = list(errors)
|
self.errors = list(errors)
|
||||||
@ -93,9 +91,11 @@ def dummy_field():
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def user_session(monkeypatch):
|
def user_session(monkeypatch, session):
|
||||||
|
def set_user_session(user=None):
|
||||||
def set_user_session(user=MOCK_USER):
|
monkeypatch.setattr(
|
||||||
monkeypatch.setattr("atst.domain.auth.get_current_user", lambda *args: user)
|
"atst.domain.auth.get_current_user",
|
||||||
|
lambda *args: user or factories.UserFactory.build(),
|
||||||
|
)
|
||||||
|
|
||||||
return set_user_session
|
return set_user_session
|
||||||
|
@ -53,6 +53,6 @@ def test_dont_auto_approve_if_no_dollar_value_specified(new_request):
|
|||||||
def test_exists(session):
|
def test_exists(session):
|
||||||
user_allowed = UserFactory.create()
|
user_allowed = UserFactory.create()
|
||||||
user_denied = UserFactory.create()
|
user_denied = UserFactory.create()
|
||||||
request = RequestFactory.create(creator=user_allowed.id)
|
request = RequestFactory.create(creator=user_allowed)
|
||||||
assert Requests.exists(request.id, user_allowed.id)
|
assert Requests.exists(request.id, user_allowed)
|
||||||
assert not Requests.exists(request.id, user_denied.id)
|
assert not Requests.exists(request.id, user_denied)
|
||||||
|
@ -20,7 +20,7 @@ class RoleFactory(factory.alchemy.SQLAlchemyModelFactory):
|
|||||||
|
|
||||||
permissions = []
|
permissions = []
|
||||||
|
|
||||||
|
|
||||||
class UserFactory(factory.alchemy.SQLAlchemyModelFactory):
|
class UserFactory(factory.alchemy.SQLAlchemyModelFactory):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
@ -47,7 +47,7 @@ class RequestFactory(factory.alchemy.SQLAlchemyModelFactory):
|
|||||||
|
|
||||||
id = factory.Sequence(lambda x: uuid4())
|
id = factory.Sequence(lambda x: uuid4())
|
||||||
status_events = factory.RelatedFactory(
|
status_events = factory.RelatedFactory(
|
||||||
RequestStatusFactory, "request", new_status=RequestStatus.STARTED
|
RequestStatusEventFactory, "request", new_status=RequestStatus.STARTED
|
||||||
)
|
)
|
||||||
creator = factory.SubFactory(UserFactory)
|
creator = factory.SubFactory(UserFactory)
|
||||||
body = factory.LazyAttribute(lambda r: RequestFactory.build_request_body(r.creator))
|
body = factory.LazyAttribute(lambda r: RequestFactory.build_request_body(r.creator))
|
||||||
|
@ -33,7 +33,7 @@ def test_submit_valid_request_form(monkeypatch, client, user_session):
|
|||||||
def test_owner_can_view_request(client, user_session):
|
def test_owner_can_view_request(client, user_session):
|
||||||
user = UserFactory.create()
|
user = UserFactory.create()
|
||||||
user_session(user)
|
user_session(user)
|
||||||
request = RequestFactory.create(creator=user.id)
|
request = RequestFactory.create(creator=user)
|
||||||
|
|
||||||
response = client.get("/requests/new/1/{}".format(request.id), follow_redirects=True)
|
response = client.get("/requests/new/1/{}".format(request.id), follow_redirects=True)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user