# Amara, universalsubtitles.org
#
# Copyright (C) 2015 Participatory Culture Foundation
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program.  If not, see http://www.gnu.org/licenses/agpl-3.0.html.

from nose.tools import *

def assert_writable_fields(options_response, method, correct_writable_fields):
    field_data =  options_response.data['actions'][method]
    writable_fields = [
        name for name in field_data if not field_data[name]['read_only']
    ]
    assert_items_equal(writable_fields, correct_writable_fields)

def assert_required_fields(options_response, method, correct_required_fields):
    field_data =  options_response.data['actions'][method]
    required_fields = [
        name for name in field_data if field_data[name]['required']
    ]
    assert_items_equal(required_fields, correct_required_fields)

__all__ = ['assert_writable_fields', 'assert_required_fields']
