diff --git a/app/main/forms.py b/app/main/forms.py index c347d714e..e84a3d2b6 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -525,9 +525,11 @@ class ChooseTimeForm(StripWhitespaceForm): class CreateKeyForm(StripWhitespaceForm): - def __init__(self, existing_key_names=[], *args, **kwargs): - self.existing_key_names = [x.lower() for x in existing_key_names] - super(CreateKeyForm, self).__init__(*args, **kwargs) + def __init__(self, existing_keys=[], *args, **kwargs): + self.existing_key_names = [ + key['name'].lower() for key in existing_keys + ] + super().__init__(*args, **kwargs) key_type = RadioField( 'Type of key', diff --git a/app/main/views/api_keys.py b/app/main/views/api_keys.py index f4a3aadf0..e59aaf770 100644 --- a/app/main/views/api_keys.py +++ b/app/main/views/api_keys.py @@ -87,7 +87,7 @@ def api_keys(service_id): @login_required @user_has_permissions('manage_api_keys', restrict_admin_usage=True) def create_api_key(service_id): - form = CreateKeyForm(current_service.api_key_names) + form = CreateKeyForm(current_service.api_keys) form.key_type.choices = [ (KEY_TYPE_NORMAL, 'Live – sends to anyone'), (KEY_TYPE_TEAM, 'Team and whitelist – limits who you can send to'), diff --git a/app/models/service.py b/app/models/service.py index 731b5fda6..4cdc12360 100644 --- a/app/models/service.py +++ b/app/models/service.py @@ -345,10 +345,6 @@ class Service(): key=lambda key: key['name'].lower(), ) - @property - def api_key_names(self): - return [key['name'] for key in self.api_keys] - def get_api_key(self, id): try: return next(key for key in self.api_keys if key['id'] == id) diff --git a/tests/app/main/test_create_api_key_form.py b/tests/app/main/test_create_api_key_form.py index c302093d6..374a0c46a 100644 --- a/tests/app/main/test_create_api_key_form.py +++ b/tests/app/main/test_create_api_key_form.py @@ -5,10 +5,12 @@ from app.main.forms import CreateKeyForm def test_return_validation_error_when_key_name_exists(client): - def _get_names(): - return ['some key', 'another key'] + _existing_keys = [ + {'name': 'some key'}, + {'name': 'another key'}, + ] - form = CreateKeyForm(_get_names(), + form = CreateKeyForm(_existing_keys, formdata=MultiDict([('key_name', 'Some key')])) form.key_type.choices = [('a', 'a'), ('b', 'b')] form.validate()