def test_replace(self):
     w = Week(2011, 20)
     self.assertEqual(w.replace(), w)
     self.assertEqual(w.replace(year=2010), Week(2010, 20))
     self.assertEqual(w.replace(week=2), Week(2011, 2))
     self.assertEqual(w.replace(week=99), Week(2012, 47))
     self.assertEqual(w.replace(year=1, week=1), Week(1, 1))
示例#2
0
 def test_replace(self):
     w = Week(2011, 20)
     self.assertEqual(w.replace(), w)
     self.assertEqual(w.replace(year=2010), Week(2010, 20))
     self.assertEqual(w.replace(week=2), Week(2011, 2))
     self.assertEqual(w.replace(week=99), Week(2012, 47))
     self.assertEqual(w.replace(year=1, week=1), Week(1, 1))
示例#3
0
    def get_year_ago(self, dia=None, yearsago=None):
        if not dia:
            dia = self.day_present

        years_ago = self.years_ago
        if yearsago:
            years_ago = int(yearsago)

        logger.debug("Calculating {} year ago for {}".format(years_ago, dia))

        current = dia.isocalendar()  # 0 year, 1 week, 2, weekday
        year = current[0]
        week = current[1]
        weekday = current[2] - 1  # Isocalendar uses american weekdays

        week_current = Week(year, week)

        week_past = week_current.replace(year - years_ago, week)

        past_new = self.ensure_same_day_scenario(
            week_current, week_past, weekday)

        if past_new:
            self.day_year_ago = datetime.combine(past_new, datetime.min.time())
        else:
            self.day_year_ago = datetime.combine(
                week_past.day(weekday), datetime.min.time())

        logger.debug("SUMMARY")

        logger.debug(" - Present day: {}".format(week_current.day(weekday)))

        logger.debug(" - Past day ini: {}".format(week_past.day(weekday)))

        logger.debug(
            " - Past day correction: {}".format(self.day_year_ago.strftime("%Y-%m-%d")))

        logger.info("{} year ago from {} was {}" .format(years_ago, self.day_present.strftime(
            "%Y-%m-%d"), self.day_year_ago.strftime("%Y-%m-%d")))

        return self.day_year_ago