mirror of
https://github.com/GSA/notifications-api.git
synced 2026-03-18 17:20:30 -04:00
Merge pull request #1265 from alphagov/logoless-organsations
Make organisation logo nullable
This commit is contained in:
@@ -136,7 +136,7 @@ class Organisation(db.Model):
|
||||
__tablename__ = 'organisation'
|
||||
id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
|
||||
colour = db.Column(db.String(7), nullable=True)
|
||||
logo = db.Column(db.String(255), nullable=False)
|
||||
logo = db.Column(db.String(255), nullable=True)
|
||||
name = db.Column(db.String(255), nullable=True)
|
||||
|
||||
def serialize(self):
|
||||
|
||||
@@ -7,7 +7,7 @@ post_create_organisation_schema = {
|
||||
"name": {"type": ["string", "null"]},
|
||||
"logo": {"type": ["string", "null"]}
|
||||
},
|
||||
"required": ["logo"]
|
||||
"required": []
|
||||
}
|
||||
|
||||
post_update_organisation_schema = {
|
||||
|
||||
25
migrations/versions/0121_nullable_logos.py
Normal file
25
migrations/versions/0121_nullable_logos.py
Normal file
@@ -0,0 +1,25 @@
|
||||
"""
|
||||
|
||||
Revision ID: 0121_nullable_logos
|
||||
Revises: 0120_add_org_banner_branding
|
||||
Create Date: 2017-09-20 11:00:20.415523
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
revision = '0121_nullable_logos'
|
||||
down_revision = '0120_add_org_banner_branding'
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.alter_column(
|
||||
'organisation', 'logo',
|
||||
existing_type=sa.VARCHAR(length=255),
|
||||
nullable=True
|
||||
)
|
||||
|
||||
|
||||
def downgrade():
|
||||
pass
|
||||
@@ -21,20 +21,13 @@ def test_create_organisation(notify_db, notify_db_session):
|
||||
|
||||
|
||||
def test_create_organisation_without_name_or_colour_is_valid(notify_db, notify_db_session):
|
||||
organisation = create_organisation(name=None, colour=None)
|
||||
organisation = create_organisation(logo=None, name=None, colour=None)
|
||||
|
||||
assert Organisation.query.count() == 1
|
||||
organisation_from_db = Organisation.query.first()
|
||||
assert organisation == organisation_from_db
|
||||
|
||||
|
||||
def test_create_organisation_without_logo_raises_error(notify_db, notify_db_session):
|
||||
with pytest.raises(IntegrityError) as excinfo:
|
||||
create_organisation(logo=None)
|
||||
assert 'column "logo" violates not-null constraint' in str(excinfo.value)
|
||||
assert Organisation.query.count() == 0
|
||||
|
||||
|
||||
def test_get_organisations_gets_all_organisations(notify_db, notify_db_session):
|
||||
org_1 = create_organisation(name='test_org_1')
|
||||
org_2 = create_organisation(name='test_org_2')
|
||||
|
||||
@@ -54,7 +54,7 @@ def test_post_create_organisation(admin_request, notify_db_session):
|
||||
assert data['logo'] == response['data']['logo']
|
||||
|
||||
|
||||
def test_post_create_organisation_without_logo_raises_error(admin_request, notify_db_session):
|
||||
def test_post_create_organisation_without_logo_is_ok(admin_request, notify_db_session):
|
||||
data = {
|
||||
'name': 'test organisation',
|
||||
'colour': '#0000ff',
|
||||
@@ -62,9 +62,8 @@ def test_post_create_organisation_without_logo_raises_error(admin_request, notif
|
||||
response = admin_request.post(
|
||||
'organisation.create_organisation',
|
||||
_data=data,
|
||||
_expected_status=400
|
||||
_expected_status=201,
|
||||
)
|
||||
assert response['errors'][0]['message'] == "logo is a required property"
|
||||
|
||||
|
||||
def test_post_create_organisation_without_name_or_colour_is_valid(admin_request, notify_db_session):
|
||||
|
||||
Reference in New Issue
Block a user