diff --git a/app/api/schema/ticket_fees.py b/app/api/schema/ticket_fees.py index d980c3f2e8..ec8896f1f4 100644 --- a/app/api/schema/ticket_fees.py +++ b/app/api/schema/ticket_fees.py @@ -20,7 +20,7 @@ class Meta: inflect = dasherize id = fields.Integer(dump_only=True) - currency = fields.Str(validate=validate.OneOf(choices=PAYMENT_CURRENCY_CHOICES), allow_none=True) - country = fields.String(allow_none=True) + currency = fields.Str(validate=validate.OneOf(choices=PAYMENT_CURRENCY_CHOICES), allow_none=False) + country = fields.String(allow_none=False) service_fee = fields.Float(validate=lambda n: n >= 0, allow_none=True) maximum_fee = fields.Float(validate=lambda n: n >= 0, allow_none=True) diff --git a/app/api/ticket_fees.py b/app/api/ticket_fees.py index 04fa5254c4..aae6a16f00 100644 --- a/app/api/ticket_fees.py +++ b/app/api/ticket_fees.py @@ -1,5 +1,4 @@ from flask_rest_jsonapi import ResourceDetail, ResourceList - from app import db from app.api.bootstrap import api from app.api.schema.ticket_fees import TicketFeesSchema diff --git a/app/models/ticket_fee.py b/app/models/ticket_fee.py index 803a40adce..bd8d76cdd7 100644 --- a/app/models/ticket_fee.py +++ b/app/models/ticket_fee.py @@ -10,8 +10,8 @@ class TicketFees(db.Model): __tablename__ = 'ticket_fees' id = db.Column(db.Integer, primary_key=True) - currency = db.Column(db.String) - country = db.Column(db.String) + currency = db.Column(db.String, unique=True) + country = db.Column(db.String, unique=True) service_fee = db.Column(db.Float) maximum_fee = db.Column(db.Float) diff --git a/migrations/versions/cb4ccda76a2b_.py b/migrations/versions/cb4ccda76a2b_.py new file mode 100644 index 0000000000..e7b8ba1907 --- /dev/null +++ b/migrations/versions/cb4ccda76a2b_.py @@ -0,0 +1,30 @@ +"""empty message + +Revision ID: cb4ccda76a2b +Revises: 0e80c49a6e28 +Create Date: 2019-06-03 22:57:01.500527 + +""" + +from alembic import op +import sqlalchemy as sa +import sqlalchemy_utils + + +# revision identifiers, used by Alembic. +revision = 'cb4ccda76a2b' +down_revision = '0e80c49a6e28' + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_unique_constraint(None, 'ticket_fees', ['country']) + op.create_unique_constraint(None, 'ticket_fees', ['currency']) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint(None, 'ticket_fees', type_='unique') + op.drop_constraint(None, 'ticket_fees', type_='unique') + # ### end Alembic commands ### diff --git a/tests/hook_main.py b/tests/hook_main.py index 09fbab8a10..905b3fab48 100644 --- a/tests/hook_main.py +++ b/tests/hook_main.py @@ -1709,6 +1709,7 @@ def ticket_fees_post(transaction): """ with stash['app'].app_context(): ticket_fees = TicketFeesFactory() + ticket_fees.country = 'US' db.session.add(ticket_fees) db.session.commit()