Raise NotImplementedError in AuditableMixin if the model does not have the properties portfolio_id or application_id

This commit is contained in:
leigh-mil 2019-05-21 16:55:55 -04:00
parent 5e2f00b1c2
commit 9f66bbafe5
6 changed files with 28 additions and 3 deletions

View File

@ -52,6 +52,10 @@ class Application(
def displayname(self):
return self.name
@property
def application_id(self):
return self.id
def __repr__(self): # pragma: no cover
return "<Application(name='{}', description='{}', portfolio='{}', id='{}')>".format(
self.name, self.description, self.portfolio.name, self.id

View File

@ -90,11 +90,11 @@ class AuditableMixin(object):
@property
def portfolio_id(self):
return None
raise NotImplementedError()
@property
def application_id(self):
return None
raise NotImplementedError()
@property
def displayname(self):

View File

@ -68,9 +68,14 @@ class Portfolio(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
def all_environments(self):
return list(chain.from_iterable(p.environments for p in self.applications))
def auditable_portfolio_id(self):
@property
def portfolio_id(self):
return self.id
@property
def application_id(self):
return None
def __repr__(self):
return "<Portfolio(name='{}', user_count='{}', id='{}')>".format(
self.name, self.user_count, self.id

View File

@ -25,3 +25,7 @@ class PortfolioInvitation(Base, TimestampsMixin, InvitesMixin, AuditableMixin):
@property
def portfolio_id(self):
return self.role.portfolio_id
@property
def application_id(self):
return None

View File

@ -164,6 +164,10 @@ class PortfolioRole(
def full_name(self):
return self.user.full_name
@property
def application_id(self):
return None
Index(
"portfolio_role_user_portfolio",

View File

@ -96,6 +96,14 @@ class User(
def displayname(self):
return self.full_name
@property
def portfolio_id(self):
return None
@property
def application_id(self):
return None
def __repr__(self):
return "<User(name='{}', dod_id='{}', email='{}', has_portfolios='{}', id='{}')>".format(
self.full_name, self.dod_id, self.email, self.has_portfolios, self.id