def test_txn_contract_get_or_create(): """Test TransactionFPDS.get_or_create_2 method.""" agency1 = mommy.make("references.Agency") awd1 = mommy.make("awards.Award", awarding_agency=agency1) txn1 = mommy.make( "awards.TransactionNormalized", award=awd1, modification_number="1", awarding_agency=agency1, last_modified_date=date(2012, 3, 1), ) mommy.make("awards.TransactionFPDS", transaction=txn1, piid="abc", base_and_all_options_value=1000) assert TransactionFPDS.objects.all().count() == 1 # an updated transaction should also update existing TransactionFPDS # data, not insert a new record tc_dict = {"piid": "abc", "base_and_all_options_value": 5000} tc2 = TransactionFPDS.get_or_create_2(txn1, **tc_dict) tc2.save() assert TransactionFPDS.objects.all().count() == 1 t = TransactionNormalized.objects.get(id=txn1.id) assert t.contract_data.piid == "abc" assert t.contract_data.base_and_all_options_value == "5000" # a new transaction gets a new TransactionFABS record tc_dict = {"piid": "xyz", "base_and_all_options_value": 5555} tc3 = TransactionFPDS.get_or_create_2( mommy.make("awards.TransactionNormalized"), **tc_dict) tc3.save() assert TransactionFPDS.objects.all().count() == 2
def test_txn_contract_get_or_create(): """Test TransactionFPDS.get_or_create_2 method.""" agency1 = mommy.make('references.Agency') awd1 = mommy.make('awards.Award', awarding_agency=agency1) txn1 = mommy.make( 'awards.TransactionNormalized', award=awd1, modification_number='1', awarding_agency=agency1, last_modified_date=date(2012, 3, 1), ) mommy.make('awards.TransactionFPDS', transaction=txn1, piid='abc', base_and_all_options_value=1000) assert TransactionFPDS.objects.all().count() == 1 # an updated transaction should also update existing TransactionFPDS # data, not insert a new record tc_dict = { 'piid': 'abc', 'base_and_all_options_value': 5000, } tc2 = TransactionFPDS.get_or_create_2(txn1, **tc_dict) tc2.save() assert TransactionFPDS.objects.all().count() == 1 t = TransactionNormalized.objects.get(id=txn1.id) assert t.contract_data.piid == 'abc' assert t.contract_data.base_and_all_options_value == '5000' # a new transaction gets a new TransactionFABS record tc_dict = { 'piid': 'xyz', 'base_and_all_options_value': 5555, } tc3 = TransactionFPDS.get_or_create_2( mommy.make('awards.TransactionNormalized'), **tc_dict) tc3.save() assert TransactionFPDS.objects.all().count() == 2