@@ -343,127 +343,6 @@ def test_handle_supplementary_version_no_previous_version(
343343
344344 # THE FOLLOWING TWO TESTS WILL NEED REWRITING AFTER HANDLING SCENARIOS WHERE CREDITS HAVE BEEN ISSUED/REQUESTED
345345
346- # def test_handle_decreased_credit_success(
347- # self,
348- # mock_increased_handler,
349- # mock_decreased_handler,
350- # mock_no_change_handler,
351- # mock_increased_credit_handler,
352- # mock_decreased_credit_handler,
353- # ):
354- # # Arrange
355- # with pgtrigger.ignore('reporting.ReportComplianceSummary:immutable_report_version'):
356- # self.previous_summary = baker.make_recipe(
357- # 'reporting.tests.utils.report_compliance_summary',
358- # excess_emissions=0,
359- # credited_emissions=Decimal('800'),
360- # report_version=self.report_version_1,
361- # )
362- # self.new_summary = baker.make_recipe(
363- # 'reporting.tests.utils.report_compliance_summary',
364- # excess_emissions=0,
365- # credited_emissions=Decimal('500'),
366- # report_version=self.report_version_2,
367- # )
368- # self.compliance_report = baker.make_recipe(
369- # 'compliance.tests.utils.compliance_report', report=self.report, compliance_period_id=1
370- # )
371- # self.previous_compliance_report_version = baker.make_recipe(
372- # 'compliance.tests.utils.compliance_report_version',
373- # compliance_report=self.compliance_report,
374- # report_compliance_summary=self.previous_summary,
375- # is_supplementary=False,
376- # )
377- # baker.make_recipe(
378- # 'compliance.tests.utils.compliance_earned_credit',
379- # compliance_report_version=self.previous_compliance_report_version,
380- # earned_credits_amount=800,
381- # issuance_status=ComplianceEarnedCredit.IssuanceStatus.CREDITS_NOT_ISSUED,
382- # )
383- # mock_result = MagicMock(spec=ComplianceReportVersion)
384- # mock_decreased_credit_handler.return_value = mock_result
385-
386- # # Act
387- # result = SupplementaryVersionService().handle_supplementary_version(
388- # self.compliance_report, self.report_version_2, 2
389- # )
390-
391- # # Assert
392- # mock_decreased_credit_handler.assert_called_once_with(
393- # compliance_report=self.compliance_report,
394- # new_summary=self.new_summary,
395- # previous_summary=self.previous_summary,
396- # version_count=2,
397- # )
398- # assert result == mock_result
399- # mock_increased_handler.assert_not_called()
400- # mock_decreased_handler.assert_not_called()
401- # mock_no_change_handler.assert_not_called()
402- # mock_increased_credit_handler.assert_not_called()
403-
404- # @patch('compliance.service.supplementary_version_service.DecreasedCreditHandler.handle')
405- # @patch('compliance.service.supplementary_version_service.IncreasedCreditHandler.handle')
406- # @patch('compliance.service.supplementary_version_service.NoChangeHandler.handle')
407- # @patch('compliance.service.supplementary_version_service.DecreasedObligationHandler.handle')
408- # @patch('compliance.service.supplementary_version_service.IncreasedObligationHandler.handle')
409- # def test_handle_decreased_credit_success(
410- # self,
411- # mock_increased_handler,
412- # mock_decreased_handler,
413- # mock_no_change_handler,
414- # mock_increased_credit_handler,
415- # mock_decreased_credit_handler,
416- # ):
417- # # Arrange
418- # with pgtrigger.ignore('reporting.ReportComplianceSummary:immutable_report_version'):
419- # self.previous_summary = baker.make_recipe(
420- # 'reporting.tests.utils.report_compliance_summary',
421- # excess_emissions=0,
422- # credited_emissions=Decimal('800'),
423- # report_version=self.report_version_1,
424- # )
425- # self.new_summary = baker.make_recipe(
426- # 'reporting.tests.utils.report_compliance_summary',
427- # excess_emissions=0,
428- # credited_emissions=Decimal('500'),
429- # report_version=self.report_version_2,
430- # )
431- # self.compliance_report = baker.make_recipe(
432- # 'compliance.tests.utils.compliance_report', report=self.report, compliance_period_id=1
433- # )
434- # self.previous_compliance_report_version = baker.make_recipe(
435- # 'compliance.tests.utils.compliance_report_version',
436- # compliance_report=self.compliance_report,
437- # report_compliance_summary=self.previous_summary,
438- # is_supplementary=False,
439- # )
440- # baker.make_recipe(
441- # 'compliance.tests.utils.compliance_earned_credit',
442- # compliance_report_version=self.previous_compliance_report_version,
443- # earned_credits_amount=800,
444- # issuance_status=ComplianceEarnedCredit.IssuanceStatus.CREDITS_NOT_ISSUED,
445- # )
446- # mock_result = MagicMock(spec=ComplianceReportVersion)
447- # mock_decreased_credit_handler.return_value = mock_result
448-
449- # # Act
450- # result = SupplementaryVersionService().handle_supplementary_version(
451- # self.compliance_report, self.report_version_2, 2
452- # )
453-
454- # # Assert
455- # mock_decreased_credit_handler.assert_called_once_with(
456- # compliance_report=self.compliance_report,
457- # new_summary=self.new_summary,
458- # previous_summary=self.previous_summary,
459- # version_count=2,
460- # )
461- # assert result == mock_result
462- # mock_increased_handler.assert_not_called()
463- # mock_decreased_handler.assert_not_called()
464- # mock_no_change_handler.assert_not_called()
465- # mock_increased_credit_handler.assert_not_called()
466-
467346
468347class TestIncreasedObligationHandler (BaseSupplementaryVersionServiceTest ):
469348 def test_can_handle_increased_obligation (self ):
@@ -1788,7 +1667,9 @@ def test_can_handle_decreased_credits(self):
17881667 'compliance.tests.utils.compliance_earned_credit' ,
17891668 compliance_report_version = self .original_report_version ,
17901669 earned_credits_amount = 500 ,
1791- issuance_status = ComplianceEarnedCredit .IssuanceStatus .CREDITS_NOT_ISSUED ,
1670+ issuance_status = ComplianceEarnedCredit .IssuanceStatus .DECLINED ,
1671+ bccr_trading_name = 'Test Trading Name' ,
1672+ bccr_holding_account_id = '123' ,
17921673 )
17931674
17941675 # Act
@@ -1797,6 +1678,71 @@ def test_can_handle_decreased_credits(self):
17971678 # Assert
17981679 assert result is True
17991680
1681+ @patch ('compliance.service.supplementary_version_service.DecreasedCreditHandler.handle' )
1682+ @patch ('compliance.service.supplementary_version_service.IncreasedCreditHandler.handle' )
1683+ @patch ('compliance.service.supplementary_version_service.NoChangeHandler.handle' )
1684+ @patch ('compliance.service.supplementary_version_service.DecreasedObligationHandler.handle' )
1685+ @patch ('compliance.service.supplementary_version_service.IncreasedObligationHandler.handle' )
1686+ def test_correctly_calls_decreased_credit_handler (
1687+ self ,
1688+ mock_increased_handler ,
1689+ mock_decreased_handler ,
1690+ mock_no_change_handler ,
1691+ mock_increased_credit_handler ,
1692+ mock_decreased_credit_handler ,
1693+ ):
1694+ # Arrange
1695+ with pgtrigger .ignore ('reporting.ReportComplianceSummary:immutable_report_version' ):
1696+ self .previous_summary = baker .make_recipe (
1697+ 'reporting.tests.utils.report_compliance_summary' ,
1698+ excess_emissions = 0 ,
1699+ credited_emissions = Decimal ('800' ),
1700+ report_version = self .report_version_1 ,
1701+ )
1702+ self .new_summary = baker .make_recipe (
1703+ 'reporting.tests.utils.report_compliance_summary' ,
1704+ excess_emissions = 0 ,
1705+ credited_emissions = Decimal ('500' ),
1706+ report_version = self .report_version_2 ,
1707+ )
1708+ self .compliance_report = baker .make_recipe (
1709+ 'compliance.tests.utils.compliance_report' , report = self .report , compliance_period_id = 1
1710+ )
1711+ self .previous_compliance_report_version = baker .make_recipe (
1712+ 'compliance.tests.utils.compliance_report_version' ,
1713+ compliance_report = self .compliance_report ,
1714+ report_compliance_summary = self .previous_summary ,
1715+ is_supplementary = False ,
1716+ )
1717+ baker .make_recipe (
1718+ 'compliance.tests.utils.compliance_earned_credit' ,
1719+ compliance_report_version = self .previous_compliance_report_version ,
1720+ earned_credits_amount = 800 ,
1721+ issuance_status = ComplianceEarnedCredit .IssuanceStatus .DECLINED ,
1722+ bccr_trading_name = 'Test Trading Name' ,
1723+ bccr_holding_account_id = '123' ,
1724+ )
1725+ mock_result = MagicMock (spec = ComplianceReportVersion )
1726+ mock_decreased_credit_handler .return_value = mock_result
1727+
1728+ # Act
1729+ result = SupplementaryVersionService ().handle_supplementary_version (
1730+ self .compliance_report , self .report_version_2 , 2
1731+ )
1732+
1733+ # Assert
1734+ mock_decreased_credit_handler .assert_called_once_with (
1735+ compliance_report = self .compliance_report ,
1736+ new_summary = self .new_summary ,
1737+ previous_summary = self .previous_summary ,
1738+ version_count = 2 ,
1739+ )
1740+ assert result == mock_result
1741+ mock_increased_handler .assert_not_called ()
1742+ mock_decreased_handler .assert_not_called ()
1743+ mock_no_change_handler .assert_not_called ()
1744+ mock_increased_credit_handler .assert_not_called ()
1745+
18001746 def test_handle_decreased_credits_success (self ):
18011747 # Arrange
18021748 with pgtrigger .ignore ('reporting.ReportComplianceSummary:immutable_report_version' ):
@@ -1821,22 +1767,28 @@ def test_handle_decreased_credits_success(self):
18211767 'compliance.tests.utils.compliance_earned_credit' ,
18221768 compliance_report_version = self .original_report_version ,
18231769 earned_credits_amount = 800 ,
1824- issuance_status = ComplianceEarnedCredit .IssuanceStatus .CREDITS_NOT_ISSUED ,
1770+ issuance_status = ComplianceEarnedCredit .IssuanceStatus .DECLINED ,
1771+ bccr_trading_name = 'Test Trading Name' ,
1772+ bccr_holding_account_id = '123' ,
18251773 )
18261774 # Act
18271775 new_compliance_version = DecreasedCreditHandler .handle (
18281776 self .original_report_version .compliance_report , self .new_summary , self .previous_summary , 2
18291777 )
1830- credit_record = ComplianceEarnedCredit .objects .get (compliance_report_version = self .original_report_version )
1778+ original_credit_record = ComplianceEarnedCredit .objects .get (
1779+ compliance_report_version = self .original_report_version
1780+ )
1781+ new_credit_record = ComplianceEarnedCredit .objects .get (compliance_report_version = new_compliance_version )
18311782
18321783 # Assert
1833- assert new_compliance_version .status == ComplianceReportVersion .ComplianceStatus .NO_OBLIGATION_OR_EARNED_CREDITS
1784+ assert new_compliance_version .status == ComplianceReportVersion .ComplianceStatus .EARNED_CREDITS
18341785 assert new_compliance_version .credited_emissions_delta_from_previous == Decimal ("-300" )
18351786 assert new_compliance_version .report_compliance_summary_id == self .new_summary .id
18361787 assert new_compliance_version .is_supplementary is True
18371788 assert new_compliance_version .previous_version == self .original_report_version
1838- assert credit_record .earned_credits_amount == Decimal ('500' )
1839- assert credit_record .issuance_status == ComplianceEarnedCredit .IssuanceStatus .CREDITS_NOT_ISSUED
1789+ assert original_credit_record .earned_credits_amount == Decimal ('800' )
1790+ assert new_credit_record .earned_credits_amount == Decimal ('500' )
1791+ assert new_credit_record .issuance_status == ComplianceEarnedCredit .IssuanceStatus .CREDITS_NOT_ISSUED
18401792
18411793
18421794class TestSupercededHandler (BaseSupplementaryVersionServiceTest ):
0 commit comments