def add_price_for_yesterday(session): """ Create a price entry for test(s) """ value = Decimal("1.0548") app = PriceDbApplication(session=session) datum = Datum() datum.yesterday() symbol = SecuritySymbol("VANGUARD", "BOND") model = PriceModel() model.currency = "AUD" model.datum = datum model.symbol = symbol model.value = value app.add_price(model) # make sure that the price is there first = app.price_repo.query.first() assert first yesterday_str = datum.to_iso_date_string() assert first.date == yesterday_str assert first.currency == "AUD" assert first.value == 10548 assert first.denom == 10000
def get_yesterdays_file_path(self): """ Full path to the today's rates file. """ datum = Datum() datum.yesterday() yesterday = datum.get_iso_date_string() return self.__get_rate_file_path(yesterday)
def get_start_balance(self, before: date) -> Decimal: """ Calculates account balance """ assert isinstance(before, datetime) # create a new date without hours datum = Datum() datum.from_date(before) #date_corrected = datetimeutils.start_of_day(before) # now subtract 1 second. #date_corrected -= timedelta(seconds=1) #log(DEBUG, "getting balance on %s", date_corrected) datum.yesterday() datum.end_of_day() return self.get_balance_on(datum.value)
def test_latest_date(session): """ Test fetching the latest price. The date is always today, even if the latest price is not from today! """ # Preparation add_price_for_yesterday(session) # Fetch the latest price for xy app = PriceDbApplication(session=session) symbol = SecuritySymbol("VANGUARD", "BOND") latest_price = app.get_latest_price(symbol) assert latest_price yesterday = Datum() yesterday.yesterday() yesterday.start_of_day() yesterday_str = yesterday.to_iso_date_string() assert latest_price.datum.to_iso_date_string() == yesterday_str