示例#1
0
 def set_readonly_props(self) -> None:
     if not hasattr(self, 'start_date') \
             or not hasattr(self, 'end_date') \
             or not hasattr(self, 'start_price') \
             or not hasattr(self, 'end_price') \
             or not hasattr(self, 'no_of_shares') \
             or not hasattr(self, 'action'):
         return
     delta: timedelta = DateUtils.get_diff(self._end_date, self._start_date)
     if self._action == AppConsts.ACTION_BUY:
         self._net_change_in_price = NumberUtils.round(self._end_price -
                                                       self._start_price)
     elif self._action == AppConsts.ACTION_SELL:
         self._net_change_in_price = NumberUtils.round(self._start_price -
                                                       self._end_price)
     self._year = self._end_date.year
     self._quarter = DateUtils.get_quarter(self._end_date.month)
     self._month = self._end_date.month
     self._hold_length_days = delta.days if delta else 0
     self._change_in_capital = NumberUtils.round(self._net_change_in_price *
                                                 self._no_of_shares)
     self._has_profit = (self._change_in_capital > 0)
示例#2
0
    def test_get_quarter_should_return_appropriately(self) -> None:
        # ARRANGE
        less_than_1_case: int = 0
        more_than_12_case: int = 13
        invalid_type_case: str = 'foo'
        january_case: int = 1
        february_case: int = 2
        march_case: int = 3
        april_case: int = 4
        may_case: int = 5
        june_case: int = 6
        july_case: int = 7
        august_case: int = 8
        september_case: int = 9
        october_case: int = 10
        november_case: int = 11
        december_case: int = 12

        # ACT
        ret_less_than_1_case: int = DateUtils.get_quarter(less_than_1_case)
        ret_more_than_12_case: int = DateUtils.get_quarter(more_than_12_case)
        ret_invalid_type_case: int = DateUtils.get_quarter(invalid_type_case)
        ret_january_case: int = DateUtils.get_quarter(january_case)
        ret_february_case: int = DateUtils.get_quarter(february_case)
        ret_march_case: int = DateUtils.get_quarter(march_case)
        ret_april_case: int = DateUtils.get_quarter(april_case)
        ret_may_case: int = DateUtils.get_quarter(may_case)
        ret_june_case: int = DateUtils.get_quarter(june_case)
        ret_july_case: int = DateUtils.get_quarter(july_case)
        ret_august_case: int = DateUtils.get_quarter(august_case)
        ret_september_case: int = DateUtils.get_quarter(september_case)
        ret_october_case: int = DateUtils.get_quarter(october_case)
        ret_november_case: int = DateUtils.get_quarter(november_case)
        ret_december_case: int = DateUtils.get_quarter(december_case)

        # ASSERT
        self.assertIsNone(ret_less_than_1_case)
        self.assertIsNone(ret_more_than_12_case)
        self.assertIsNone(ret_invalid_type_case)
        self.assertEqual(ret_january_case, 1)
        self.assertEqual(ret_february_case, 1)
        self.assertEqual(ret_march_case, 1)
        self.assertEqual(ret_april_case, 2)
        self.assertEqual(ret_may_case, 2)
        self.assertEqual(ret_june_case, 2)
        self.assertEqual(ret_july_case, 3)
        self.assertEqual(ret_august_case, 3)
        self.assertEqual(ret_september_case, 3)
        self.assertEqual(ret_october_case, 4)
        self.assertEqual(ret_november_case, 4)
        self.assertEqual(ret_december_case, 4)