def test_in_range(self): range_ = dr._get_month_range(2015, 3) self.assertTrue(dr.in_range(date(2015, 3, 1), range_)) self.assertTrue(dr.in_range(date(2015, 3, 15), range_)) self.assertTrue(dr.in_range(date(2015, 3, 31), range_)) self.assertFalse(dr.in_range(date(2014, 3, 15), range_)) self.assertFalse(dr.in_range(date(2015, 2, 28), range_)) self.assertFalse(dr.in_range(date(2015, 4, 1), range_))
rate = None if args.hourly_rate: rate = args.hourly_rate charts = args.charts for w in lst: prj = w['project'] if prj == 'CLEARED': if uncleared: hours = {} invoice.projects = [] continue if (not date_range or in_range(w['date'], date_range)) and \ (not project or project.lower() == prj.lower()): h = float(w['hours']) if prj in hours: h += hours[prj] hours[prj] = h if rnd: for key, value in hours.items(): hours[key] = math.ceil(value) for proj, h in hours.items(): p = Project(proj) if rate is None: c_rate = project_or_default_settings(proj, 'rate')