launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #27740
[Merge] ~cjwatson/launchpad:services-enumcol into launchpad:master
Colin Watson has proposed merging ~cjwatson/launchpad:services-enumcol into launchpad:master.
Commit message:
lp.services: Use DBEnum rather than EnumCol
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/412090
--
Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:services-enumcol into launchpad:master.
diff --git a/lib/lp/services/identity/model/account.py b/lib/lp/services/identity/model/account.py
index 32bfddc..beb0921 100644
--- a/lib/lp/services/identity/model/account.py
+++ b/lib/lp/services/identity/model/account.py
@@ -16,7 +16,7 @@ from zope.interface import implementer
from lp.services.database.constants import UTC_NOW
from lp.services.database.datetimecol import UtcDateTimeCol
-from lp.services.database.enumcol import EnumCol
+from lp.services.database.enumcol import DBEnum
from lp.services.database.interfaces import (
IMasterStore,
IStore,
@@ -33,13 +33,13 @@ from lp.services.identity.interfaces.account import (
from lp.services.openid.model.openididentifier import OpenIdIdentifier
-class AccountStatusEnumCol(EnumCol):
+class AccountStatusDBEnum(DBEnum):
def __set__(self, obj, value):
if self.__get__(obj) == value:
return
IAccount['status'].bind(obj)._validate(value)
- super(AccountStatusEnumCol, self).__set__(obj, value)
+ super().__set__(obj, value)
@implementer(IAccount)
@@ -50,11 +50,11 @@ class Account(SQLBase):
displayname = StringCol(dbName='displayname', notNull=True)
- creation_rationale = EnumCol(
- dbName='creation_rationale', schema=AccountCreationRationale,
- notNull=True)
- status = AccountStatusEnumCol(
- enum=AccountStatus, default=AccountStatus.NOACCOUNT, notNull=True)
+ creation_rationale = DBEnum(
+ name='creation_rationale', enum=AccountCreationRationale,
+ allow_none=False)
+ status = AccountStatusDBEnum(
+ enum=AccountStatus, default=AccountStatus.NOACCOUNT, allow_none=False)
date_status_set = UtcDateTimeCol(notNull=True, default=UTC_NOW)
status_history = StringCol(dbName='status_comment', default=None)
diff --git a/lib/lp/services/identity/model/emailaddress.py b/lib/lp/services/identity/model/emailaddress.py
index 87afe14..887dce7 100644
--- a/lib/lp/services/identity/model/emailaddress.py
+++ b/lib/lp/services/identity/model/emailaddress.py
@@ -17,7 +17,7 @@ from storm.expr import Lower
from zope.interface import implementer
from lp.app.validators.email import valid_email
-from lp.services.database.enumcol import EnumCol
+from lp.services.database.enumcol import DBEnum
from lp.services.database.interfaces import (
IMasterStore,
IStore,
@@ -56,7 +56,7 @@ class EmailAddress(SQLBase, HasOwnerMixin):
email = StringCol(
dbName='email', notNull=True, unique=True, alternateID=True)
- status = EnumCol(dbName='status', schema=EmailAddressStatus, notNull=True)
+ status = DBEnum(name='status', enum=EmailAddressStatus, allow_none=False)
person = ForeignKey(dbName='person', foreignKey='Person', notNull=False)
def __repr__(self):
diff --git a/lib/lp/services/job/model/job.py b/lib/lp/services/job/model/job.py
index f35a858..c265248 100644
--- a/lib/lp/services/job/model/job.py
+++ b/lib/lp/services/job/model/job.py
@@ -33,7 +33,7 @@ from zope.interface import implementer
from lp.services.database import bulk
from lp.services.database.constants import UTC_NOW
from lp.services.database.datetimecol import UtcDateTimeCol
-from lp.services.database.enumcol import EnumCol
+from lp.services.database.enumcol import DBEnum
from lp.services.database.interfaces import IStore
from lp.services.database.sqlbase import SQLBase
from lp.services.database.sqlobject import StringCol
@@ -76,9 +76,9 @@ class Job(SQLBase):
log = StringCol()
- _status = EnumCol(
- enum=JobStatus, notNull=True, default=JobStatus.WAITING,
- dbName='status')
+ _status = DBEnum(
+ enum=JobStatus, allow_none=False, default=JobStatus.WAITING,
+ name='status')
attempt_count = Int(default=0)
@@ -89,7 +89,7 @@ class Job(SQLBase):
base_json_data = JSON(name='json_data')
- base_job_type = EnumCol(enum=JobType, dbName='job_type')
+ base_job_type = DBEnum(enum=JobType, name='job_type')
# Mapping of valid target states from a given state.
_valid_transitions = {
diff --git a/lib/lp/services/verification/model/logintoken.py b/lib/lp/services/verification/model/logintoken.py
index 9243471..31ecb99 100644
--- a/lib/lp/services/verification/model/logintoken.py
+++ b/lib/lp/services/verification/model/logintoken.py
@@ -21,7 +21,7 @@ from lp.registry.interfaces.person import IPersonSet
from lp.services.config import config
from lp.services.database.constants import UTC_NOW
from lp.services.database.datetimecol import UtcDateTimeCol
-from lp.services.database.enumcol import EnumCol
+from lp.services.database.enumcol import DBEnum
from lp.services.database.interfaces import (
IMasterStore,
IStore,
@@ -66,7 +66,7 @@ class LoginToken(SQLBase):
# The hex SHA-256 hash of the token.
_token = StringCol(dbName='token', unique=True)
- tokentype = EnumCol(dbName='tokentype', notNull=True, enum=LoginTokenType)
+ tokentype = DBEnum(name='tokentype', allow_none=False, enum=LoginTokenType)
date_created = UtcDateTimeCol(dbName='created', notNull=True)
fingerprint = StringCol(dbName='fingerprint', notNull=False, default=None)
date_consumed = UtcDateTimeCol(default=None)
diff --git a/lib/lp/services/webhooks/model.py b/lib/lp/services/webhooks/model.py
index 82005ab..8be4cb0 100644
--- a/lib/lp/services/webhooks/model.py
+++ b/lib/lp/services/webhooks/model.py
@@ -51,7 +51,7 @@ from lp.services.config import config
from lp.services.database.bulk import load_related
from lp.services.database.constants import UTC_NOW
from lp.services.database.decoratedresultset import DecoratedResultSet
-from lp.services.database.enumcol import EnumCol
+from lp.services.database.enumcol import DBEnum
from lp.services.database.interfaces import (
IMasterStore,
IStore,
@@ -338,7 +338,7 @@ class WebhookJob(StormBase):
webhook_id = Int(name='webhook', allow_none=False)
webhook = Reference(webhook_id, 'Webhook.id')
- job_type = EnumCol(enum=WebhookJobType, notNull=True)
+ job_type = DBEnum(enum=WebhookJobType, allow_none=False)
json_data = JSON('json_data')
diff --git a/lib/lp/services/worlddata/model/language.py b/lib/lp/services/worlddata/model/language.py
index ba9cf55..d17d1ad 100644
--- a/lib/lp/services/worlddata/model/language.py
+++ b/lib/lp/services/worlddata/model/language.py
@@ -24,7 +24,7 @@ from lp.registry.model.karma import (
KarmaCategory,
)
from lp.services.database.decoratedresultset import DecoratedResultSet
-from lp.services.database.enumcol import EnumCol
+from lp.services.database.enumcol import DBEnum
from lp.services.database.interfaces import (
ISlaveStore,
IStore,
@@ -60,8 +60,8 @@ class Language(SQLBase):
pluralforms = IntCol(dbName='pluralforms')
pluralexpression = StringCol(dbName='pluralexpression')
visible = BoolCol(dbName='visible', notNull=True)
- direction = EnumCol(
- dbName='direction', notNull=True, schema=TextDirection,
+ direction = DBEnum(
+ name='direction', allow_none=False, enum=TextDirection,
default=TextDirection.LTR)
translation_teams = SQLRelatedJoin(