def test_get_quota_definitions_when_has_quotas(
    mock_execute_sql,
    has_quotas,
    called_execute_sql,
):
    mock_execute_sql.return_value = []
    application = mock.MagicMock(country_name='spain',
                                 execute_sql=mock_execute_sql)
    document = Document(application)
    document.has_quotas = has_quotas
    document.q = []
    document.quota_order_number_list = []
    document.get_quota_definitions()
    assert mock_execute_sql.called is called_execute_sql
def test_get_quota_balances(
    mock_first_come_first_serve,
    mock_licensed,
    has_quotas,
    called_add_first_come_first_serve,
    called_add_licensed,
):
    mock_first_come_first_serve.return_value = None
    mock_licensed.return_value = None
    application = mock.MagicMock(country_name='spain')
    document = Document(application)
    document.has_quotas = has_quotas
    document.get_quota_balances()
    assert mock_licensed.called is called_add_licensed
    assert mock_first_come_first_serve.called is called_add_first_come_first_serve
def test_get_quota_definitions(quota_order_number_id, add_balance,
                               expected_quota_order_number_sid,
                               expected_definition):
    geographical_area_id = '1011'
    country_profile = 'spain'

    quota_order_number = QuotaOrderNumberFactory(
        id=quota_order_number_id,
        quota_order_number_sid=str(quota_order_number_id))
    if not quota_order_number_id.startswith('094'):
        QuotaDefinitionFactory(
            quota_order_number_id=quota_order_number.id,
            quota_order_number_sid=quota_order_number.quota_order_number_sid,
            initial_volume=2000,
            volume=3000,
            measurement_unit_code='')

    AgreementFactory(country_name=country_profile.capitalize(),
                     slug=country_profile,
                     country_codes=[geographical_area_id])
    application = Application(country_profile=country_profile)

    document = Document(application)
    document.has_quotas = True

    if add_balance:
        qb = get_quota_balance(
            quota_order_number_id=quota_order_number.quota_order_number_id,
            y1_balance=6000,
        )
        document.balance_dict[quota_order_number.quota_order_number_id] = qb

    document.q = [quota_order_number.quota_order_number_id]
    qon = QuotaOrderNumber(quota_order_number.quota_order_number_id)
    assert document.quota_definition_list == []
    document.quota_order_number_list = [qon]
    document.get_quota_definitions()
    assert len(qon.quota_definition_list) == 1
    assert qon.quota_definition_list[0].quota_order_number_id == str(
        quota_order_number_id)
    assert len(document.quota_definition_list) == 1
    assert_object(document.quota_definition_list[0], expected_definition)