Beispiel #1
0
def test_failure(database):
    """ Test failure for when the provided PrimaryPlaceofPerformanceZIP+4 must be in the state specified by
        PrimaryPlaceOfPerformanceCode. In this specific submission row, the first five digits are valid and located
        in the correct state, but the last 4 are invalid."""
    zips = Zips(zip5="12345", zip_last4="6789", state_abbreviation="NY")

    # invalid 9 digit zip - first 5 digits good
    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="ny10986",
        place_of_performance_zip4a="123456788")
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="NY*****",
        place_of_performance_zip4a='123456788')
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="Ny**123",
        place_of_performance_zip4a='12345-6788')
    errors = number_of_errors(
        _FILE, database, models=[det_award_1, det_award_2, det_award_3, zips])
    assert errors == 3
def test_failure(database):
    """ Test failure PrimaryPlaceOfPerformanceCongressionalDistrict must be blank for PII-redacted non-aggregate records
        (RecordType = 3).
    """

    det_award_1 = DetachedAwardFinancialAssistanceFactory(place_of_performance_congr='01', record_type=3,
                                                          correction_delete_indicatr='')

    errors = number_of_errors(_FILE, database, models=[det_award_1])
    assert errors == 1
Beispiel #3
0
def test_success(database):
    """ AwardingSubTierAgencyCode must be provided when AwardingOfficeCode is not provided. """

    # Missing office code, has sub tier code
    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        awarding_sub_tier_agency_c='000', awarding_office_code='')

    # Both codes present
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        awarding_sub_tier_agency_c='000', awarding_office_code='0000')

    # Missing sub tier code, has office code
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        awarding_sub_tier_agency_c=None, awarding_office_code='0000')

    errors = number_of_errors(_FILE,
                              database,
                              models=[det_award_1, det_award_2, det_award_3])
    assert errors == 0
Beispiel #4
0
def test_failure(database):
    """ Test failure FundingSubTierAgencyCode is an optional field, but when provided must be a valid 4-digit sub-tier
        agency code.
    """

    det_award = DetachedAwardFinancialAssistanceFactory(
        funding_sub_tier_agency_co='bad', correction_delete_indicatr='')

    errors = number_of_errors(_FILE, database, models=[det_award])
    assert errors == 1
def test_success(database):
    """ PrimaryPlaceOfPerformanceCode last three digits must be a valid county code when format is XX**###. """

    county_code = CountyCode(county_number="123", state_code="NY")
    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="NY*****")
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="00FO333")
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="NY**123")
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="Ny**123")
    errors = number_of_errors(_FILE,
                              database,
                              models=[
                                  det_award_1, det_award_2, det_award_3,
                                  det_award_4, county_code
                              ])
    assert errors == 0
Beispiel #6
0
def test_failure(database):
    """ Test fail when provided, FundingOfficeCode must be a valid value from the Federal Hierarchy, including being
        designated specifically as a Funding Office in the hierarchy.
    """

    office_1 = OfficeFactory(office_code='123456', funding_office=True)
    office_2 = OfficeFactory(office_code='987654', funding_office=False)
    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        funding_office_code='12345')
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        funding_office_code='1234567')
    # Test fail if funding office is false even if code matches
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        funding_office_code='987654')
    errors = number_of_errors(
        _FILE,
        database,
        models=[office_1, office_2, det_award_1, det_award_2, det_award_3])
    assert errors == 3
Beispiel #7
0
def test_failure(database):
    """ Test failure for if PrimaryPlaceOfPerformanceCode is not USA, Congressional District must be blank """

    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        place_of_perform_country_c='Nk',
        place_of_performance_congr='12',
        correction_delete_indicatr='')
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        place_of_perform_country_c='CA',
        place_of_performance_congr='32',
        correction_delete_indicatr=None)
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        place_of_perform_country_c='Mx',
        place_of_performance_congr='09',
        correction_delete_indicatr='c')
    errors = number_of_errors(_FILE,
                              database,
                              models=[det_award_1, det_award_2, det_award_3])
    assert errors == 3
Beispiel #8
0
def test_failure(database):
    """ OriginalLoanSubsidyCost must be blank for non-loans (i.e., when AssistanceType is not 07 or 08). """

    det_award = DetachedAwardFinancialAssistanceFactory(
        assistance_type='05',
        original_loan_subsidy_cost=20,
        correction_delete_indicatr='C')

    errors = number_of_errors(_FILE, database, models=[det_award])
    assert errors == 1
def test_failure(database):
    """ Test failure when LegalEntityZIP5 isn't blank for foreign recipients """

    det_award = DetachedAwardFinancialAssistanceFactory(
        legal_entity_country_code='UK',
        legal_entity_zip5='Test',
        correction_delete_indicatr='')

    errors = number_of_errors(_FILE, database, models=[det_award])
    assert errors == 1
Beispiel #10
0
def test_failure(database):
    """ Test failure for if no PrimaryPlaceOfPerformanceZIP+4 is provided, a
        PrimaryPlaceOfPerformanceCongressionalDistrict must be provided. Only applies to domestic records
        and aggregate or non-aggregate records (RecordType = 1 or 2)."""

    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_zip4a="",
        place_of_performance_congr="",
        place_of_perform_country_c="USA",
        record_type=1)
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_zip4a=None,
        place_of_performance_congr="",
        place_of_perform_country_c="UsA",
        record_type=2)
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_zip4a="",
        place_of_performance_congr=None,
        place_of_perform_country_c="USA",
        record_type=1)
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_zip4a=None,
        place_of_performance_congr=None,
        place_of_perform_country_c="USA",
        record_type=2)
    det_award_5 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_zip4a='city-wide',
        place_of_performance_congr=None,
        place_of_perform_country_c="USA",
        record_type=1)
    det_award_6 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_zip4a='city-wide',
        place_of_performance_congr="",
        place_of_perform_country_c="USA",
        record_type=2)
    det_award_7 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_zip4a="12345",
        place_of_performance_congr="",
        place_of_perform_country_c="usa",
        record_type=1)
    det_award_8 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_zip4a="12345",
        place_of_performance_congr=None,
        place_of_perform_country_c="USA",
        record_type=2)
    errors = number_of_errors(_FILE,
                              database,
                              models=[
                                  det_award_1, det_award_2, det_award_3,
                                  det_award_4, det_award_5, det_award_6,
                                  det_award_7, det_award_8
                              ])
    assert errors == 8
def test_failure(database):
    """ FederalActionObligation is required for non-loans (i.e., when AssistanceType is not 07 or 08). """

    det_award = DetachedAwardFinancialAssistanceFactory(
        assistance_type='03',
        federal_action_obligation=None,
        correction_delete_indicatr='C')

    errors = number_of_errors(_FILE, database, models=[det_award])
    assert errors == 1
def test_pubished_date_failure(database):
    """ Test failure for AssistanceType of 02, 03, 04, or 05 whose ActionDate is after October 1, 2010
        and ActionType = B, C, or D, AwardeeOrRecipientUniqueIdentifier should be active on the ActionDate,
        unless the record is an aggregate record (RecordType=1) or individual recipient (BusinessTypes
        includes 'P')."""

    duns_1 = DUNS(awardee_or_recipient_uniqu="111111111",
                  registration_date="06/21/2017",
                  expiration_date="06/21/2018")
    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        awardee_or_recipient_uniqu="111111111",
        action_type="B",
        assistance_type="02",
        action_date="06/20/2017",
        record_type=2,
        business_types="A")
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        awardee_or_recipient_uniqu="111111111",
        action_type="C",
        assistance_type="03",
        action_date="06/20/2017",
        record_type=2,
        business_types="A")
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        awardee_or_recipient_uniqu="111111111",
        action_type="D",
        assistance_type="04",
        action_date="06/22/2018",
        record_type=2,
        business_types="A")
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        awardee_or_recipient_uniqu="111111111",
        action_type="D",
        assistance_type="05",
        action_date="06/22/2018",
        record_type=2,
        business_types="A")

    errors = number_of_errors(
        _FILE,
        database,
        models=[duns_1, det_award_1, det_award_2, det_award_3, det_award_4])
    assert errors == 4
Beispiel #13
0
def test_failure(database):
    """ Tests that all combinations of FAIN, AwardModificationAmendmentNumber, URI, and AwardingSubTierAgencyCode
        in File D2 (Detached Award Financial Assistance) are not unique"""

    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        fain="ABC",
        award_modification_amendme="ABC",
        uri="ABC",
        awarding_sub_tier_agency_c="ABC",
        correction_late_delete_ind=None)
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        fain="ABC",
        award_modification_amendme="ABC",
        uri="ABC",
        awarding_sub_tier_agency_c="ABC",
        correction_late_delete_ind=None)
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        fain="ABC",
        award_modification_amendme="ABC",
        uri="ABC",
        awarding_sub_tier_agency_c="ABC",
        correction_late_delete_ind="L")
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        fain="ABC",
        award_modification_amendme="ABC",
        uri="ABC",
        awarding_sub_tier_agency_c="ABC",
        correction_late_delete_ind="C")
    det_award_5 = DetachedAwardFinancialAssistanceFactory(
        fain="ABC",
        award_modification_amendme="ABC",
        uri="ABC",
        awarding_sub_tier_agency_c="ABC",
        correction_late_delete_ind="D")

    errors = number_of_errors(_FILE,
                              database,
                              models=[
                                  det_award_1, det_award_2, det_award_3,
                                  det_award_4, det_award_5
                              ])
    assert errors == 4
def test_pubished_date_failure(database):
    """ Test invalid for For AssistanceType of 02, 03, 04, or 05 whose ActionDate is after October 1, 2010,
        AwardeeOrRecipientUniqueIdentifier must be found in our records, unless the record is an aggregate
        or PII-redacted non-aggregate record (RecordType=1 or 3) or individual recipient
        (BusinessTypes includes 'P').
    """

    duns_1 = DUNS(awardee_or_recipient_uniqu='111111111')
    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        awardee_or_recipient_uniqu='111111112',
        assistance_type='02',
        action_date='10/02/2010',
        record_type=2,
        business_types='A',
        correction_delete_indicatr='')
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        awardee_or_recipient_uniqu='111111113',
        assistance_type='03',
        action_date='10/03/2010',
        record_type=2,
        business_types='a',
        correction_delete_indicatr='c')
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        awardee_or_recipient_uniqu='111111114',
        assistance_type='04',
        action_date='10/04/2010',
        record_type=2,
        business_types='A',
        correction_delete_indicatr='C')
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        awardee_or_recipient_uniqu='111111114',
        assistance_type='05',
        action_date='10/05/2010',
        record_type=2,
        business_types='A',
        correction_delete_indicatr=None)

    errors = number_of_errors(
        _FILE,
        database,
        models=[duns_1, det_award_1, det_award_2, det_award_3, det_award_4])
    assert errors == 4
Beispiel #15
0
def test_success(database):
    """ The combination of FAIN, AwardModificationAmendmentNumber, URI, and AwardingSubTierAgencyCode must be unique
        from currently published ones unless the record is a correction or deletion
        (i.e., if CorrectionLateDeleteIndicator = C or D). Ignores inactive records"""
    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        afa_generated_unique="ama1asta1fain1uri1",
        correction_late_delete_ind=None)
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        afa_generated_unique="ama1asta1fain2uri1",
        correction_late_delete_ind="C")
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        afa_generated_unique="ama2asta1fain1uri1",
        correction_late_delete_ind="D")
    pub_award_1 = PublishedAwardFinancialAssistanceFactory(
        afa_generated_unique="ama1asta1fain1uri2",
        correction_late_delete_ind=None,
        is_active=True)
    pub_award_2 = PublishedAwardFinancialAssistanceFactory(
        afa_generated_unique="ama1asta2fain1uri1",
        correction_late_delete_ind=None,
        is_active=True)
    pub_award_3 = PublishedAwardFinancialAssistanceFactory(
        afa_generated_unique="ama1asta1fain2uri1",
        correction_late_delete_ind=None,
        is_active=True)
    pub_award_4 = PublishedAwardFinancialAssistanceFactory(
        afa_generated_unique="ama2asta1fain1uri1",
        correction_late_delete_ind=None,
        is_active=True)
    pub_award_5 = PublishedAwardFinancialAssistanceFactory(
        afa_generated_unique="ama1asta1fain1uri1",
        correction_late_delete_ind=None,
        is_active=False)

    errors = number_of_errors(_FILE,
                              database,
                              models=[
                                  det_award_1, det_award_2, det_award_3,
                                  pub_award_1, pub_award_2, pub_award_3,
                                  pub_award_4, pub_award_5
                              ])
    assert errors == 0
def test_failure(database):
    """ Test failure PrimaryPlaceOfPerformanceForeignLocationDescription is required for foreign places of performance
        (i.e., when PrimaryPlaceOfPerformanceCountryCode does not equal USA) for record type 2.
    """

    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_forei='',
        place_of_perform_country_c='UK',
        record_type=2,
        correction_delete_indicatr='')
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_forei=None,
        place_of_perform_country_c='UK',
        record_type=2,
        correction_delete_indicatr='c')

    errors = number_of_errors(_FILE,
                              database,
                              models=[det_award_1, det_award_2])
    assert errors == 2
Beispiel #17
0
def test_success(database):
    """ Test LegalEntityZIPLast4 is required for domestic recipients (i.e., when LegalEntityCountryCode = USA)
        for non-aggregate records (i.e., when RecordType = 2) record type 1 and non-USA don't affect success """
    det_award = DetachedAwardFinancialAssistanceFactory(
        legal_entity_country_code="USA",
        record_type=2,
        legal_entity_zip_last4="12345")
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        legal_entity_country_code="USA",
        record_type=1,
        legal_entity_zip_last4=None)
    det_award_null = DetachedAwardFinancialAssistanceFactory(
        legal_entity_country_code="UK",
        record_type=1,
        legal_entity_zip_last4='')

    errors = number_of_errors(_FILE,
                              database,
                              models=[det_award, det_award_2, det_award_null])
    assert errors == 0
Beispiel #18
0
def test_success(database):
    """ Test BusinessFundsIndicator is required for all submissions except delete records. """

    det_award = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='C', business_funds_indicator='REC')
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='', business_funds_indicator='NON')
    # Test ignoring for D records
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='d', business_funds_indicator=None)
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='D', business_funds_indicator='')
    det_award_5 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='D', business_funds_indicator='RE')

    errors = number_of_errors(
        _FILE,
        database,
        models=[det_award, det_award_2, det_award_3, det_award_4, det_award_5])
    assert errors == 0
Beispiel #19
0
def test_failure(database):
    """ Test failure for PrimaryPlaceofPerformanceZIP+4 should not be provided for any format of
        PrimaryPlaceOfPerformanceCode other than XX##### for record type 1 and 2. """

    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="00FORGN",
        place_of_performance_zip4a="1234",
        record_type=1)
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="00*****",
        place_of_performance_zip4a="4312",
        record_type=1)
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="ny**987",
        place_of_performance_zip4a="4312",
        record_type=2)
    errors = number_of_errors(_FILE,
                              database,
                              models=[det_award_1, det_award_2, det_award_3])
    assert errors == 3
def test_failure(database):
    """ Test failure for PrimaryPlaceOfPerformanceZip+4 must be blank for PII-redacted non-aggregate records
        (i.e., RecordType = 3).
    """

    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_zip4a='12345',
        record_type=3,
        correction_delete_indicatr='')
    errors = number_of_errors(_FILE, database, models=[det_award_1])
    assert errors == 1
def test_failure(database):
    """ Tests that all combinations of FAIN, AwardModificationAmendmentNumber, URI, CFDA_Number, and
        AwardingSubTierAgencyCode in File D2 (Detached Award Financial Assistance) are not unique. Make sure casing is
        ignored.
    """

    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        afa_generated_unique='abc_def_ghi', correction_delete_indicatr=None)
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        afa_generated_unique='aBC_def_ghi', correction_delete_indicatr='C')
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        afa_generated_unique='abc_deF_ghi', correction_delete_indicatr='D')
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        afa_generated_unique='abc_def_GHI', correction_delete_indicatr='')

    errors = number_of_errors(
        _FILE,
        database,
        models=[det_award_1, det_award_2, det_award_3, det_award_4])
    assert errors == 3
def test_success(database):
    """ Tests that future ActionDate is valid if it occurs within the current fiscal year. """
    today = date.today() + relativedelta(days=1)
    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        action_date=str(today), correction_delete_indicatr=None)
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        action_date=None, correction_delete_indicatr='C')
    # Ignore non-dates
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        action_date='5', correction_delete_indicatr='')
    # Ignore correction delete indicator of D
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        action_date=str(today + relativedelta(years=1)),
        correction_delete_indicatr='D')

    errors = number_of_errors(
        _FILE,
        database,
        models=[det_award_1, det_award_2, det_award_3, det_award_4])
    assert errors == 0
def test_success(database):
    """ Test AwardeeOrRecipientLegalEntityName is required for all submissions except delete records. """

    det_award = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='C', awardee_or_recipient_legal='REDACTED')
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='', awardee_or_recipient_legal='Name')
    # Test ignoring for D records
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='d', awardee_or_recipient_legal=None)
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='D', awardee_or_recipient_legal='')
    det_award_5 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='d', awardee_or_recipient_legal='Name')

    errors = number_of_errors(
        _FILE,
        database,
        models=[det_award, det_award_2, det_award_3, det_award_4, det_award_5])
    assert errors == 0
def test_success(database):
    """ Test RecordType is required for all submissions except delete records. """

    det_award = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='C', record_type=1)
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='', record_type=2)
    # Test ignoring for D records
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='d', record_type=None)
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='D', record_type=None)
    det_award_5 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='D', record_type=1)

    errors = number_of_errors(
        _FILE,
        database,
        models=[det_award, det_award_2, det_award_3, det_award_4, det_award_5])
    assert errors == 0
def test_success(database):
    """ Test LegalEntityCountryCode is required for all submissions except delete records. """

    det_award = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='C', legal_entity_country_code='USA')
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='', legal_entity_country_code='GBR')
    # Test ignoring for D records
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='d', legal_entity_country_code=None)
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='D', legal_entity_country_code='')
    det_award_5 = DetachedAwardFinancialAssistanceFactory(
        correction_delete_indicatr='D', legal_entity_country_code='U')

    errors = number_of_errors(
        _FILE,
        database,
        models=[det_award, det_award_2, det_award_3, det_award_4, det_award_5])
    assert errors == 0
Beispiel #26
0
def test_success(database):
    """ Test LegalEntityAddressLine1 is required for non-aggregate records (i.e., when RecordType = 2) """
    det_award = DetachedAwardFinancialAssistanceFactory(
        record_type=2,
        legal_entity_address_line1='12345 Test Address',
        correction_delete_indicatr=None)
    det_award_null = DetachedAwardFinancialAssistanceFactory(
        record_type=1,
        legal_entity_address_line1=None,
        correction_delete_indicatr='C')
    # Ignore correction delete indicator of D
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        record_type=2,
        legal_entity_address_line1=None,
        correction_delete_indicatr='d')

    errors = number_of_errors(_FILE,
                              database,
                              models=[det_award, det_award_null, det_award_2])
    assert errors == 0
Beispiel #27
0
def test_success(database):
    """ LegalEntityCountryCode must contain a valid three character GENC country code. U.S. Territories and Freely
        Associated States must be submitted with country code = USA and their state/territory code; they cannot be
        submitted with their GENC country code.
    """
    cc_1 = CountryCode(country_code="USA",
                       country_name="United States",
                       territory_free_state=False)
    cc_2 = CountryCode(country_code="UKR",
                       country_name="Ukraine",
                       territory_free_state=False)
    det_award = DetachedAwardFinancialAssistanceFactory(
        legal_entity_country_code="USA")
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        legal_entity_country_code="uKr")

    errors = number_of_errors(_FILE,
                              database,
                              models=[cc_1, cc_2, det_award, det_award_2])
    assert errors == 0
def test_success(database):
    """ When provided, CorrectionLateDeleteIndicator must contain one of the following values: C, D, or L. """
    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        correction_late_delete_ind="")
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        correction_late_delete_ind=None)
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        correction_late_delete_ind="c")
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        correction_late_delete_ind="D")
    det_award_5 = DetachedAwardFinancialAssistanceFactory(
        correction_late_delete_ind="L")

    errors = number_of_errors(_FILE,
                              database,
                              models=[
                                  det_award_1, det_award_2, det_award_3,
                                  det_award_4, det_award_5
                              ])
    assert errors == 0
Beispiel #29
0
def test_success(database):
    """ Test when provided, FundingOfficeCode must be a valid value from the Federal Hierarchy, including being
        designated specifically as a Funding Office in the hierarchy.
    """

    office = OfficeFactory(office_code='12345a', funding_office=True)
    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        funding_office_code='12345a')
    # test case insensitive
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        funding_office_code='12345A')
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        funding_office_code='')
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        funding_office_code=None)
    errors = number_of_errors(
        _FILE,
        database,
        models=[office, det_award_1, det_award_2, det_award_3, det_award_4])
    assert errors == 0
Beispiel #30
0
def test_success(database):
    """ For PrimaryPlaceOfPerformanceCode XX##### or XX####R, where PrimaryPlaceOfPerformanceZIP+4 is blank or
        "city-wide": city code ##### or ####R must be valid and exist in the provided state.
    """

    city_code = CityCode(city_code="10987", state_code="NY")
    city_code_2 = CityCode(city_code="1098R", state_code="NY")
    det_award_1 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="NY*****", place_of_performance_zip4a="2")
    det_award_2 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="NY**123", place_of_performance_zip4a="1")
    det_award_3 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="NY**123", place_of_performance_zip4a=None)
    det_award_4 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="ny10986",
        place_of_performance_zip4a="12345")
    det_award_5 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="Na10987",
        place_of_performance_zip4a="12345-6789")
    det_award_6 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="Ny10987", place_of_performance_zip4a=None)
    det_award_7 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="Ny10987", place_of_performance_zip4a='')
    det_award_8 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="Ny10987",
        place_of_performance_zip4a="city-wide")
    # Testing with R ending
    det_award_9 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="Ny1098R",
        place_of_performance_zip4a="city-wide")
    det_award_10 = DetachedAwardFinancialAssistanceFactory(
        place_of_performance_code="Ny1098R", place_of_performance_zip4a=None)
    errors = number_of_errors(_FILE,
                              database,
                              models=[
                                  det_award_1, det_award_2, det_award_3,
                                  det_award_4, det_award_5, det_award_6,
                                  det_award_7, det_award_8, det_award_9,
                                  det_award_10, city_code, city_code_2
                              ])
    assert errors == 0