def setUp(self):
     self.pinned_report = models.PinnedReport(
         name='Test Pinned Report',
         program_id=42,
         report_type='timeperiods',
         query_string='level=3&level=2&timeframe=1&numrecentperiods=&indicators=5476&targetperiods=1',
     )
    def test_relative_to_today_timeperiods(self):
        pr = models.PinnedReport()
        pr.query_string = 'timeperiods=7&numrecentperiods=2&timeframe=2'

        self.assertEqual(pr.date_range_str, u'Most recent 2 Meses')

        pr.query_string = 'timeperiods=3&numrecentperiods=2&timeframe=2'

        self.assertEqual(pr.date_range_str, u'Most recent 2 A\xf1os')
    def test_relative_to_today_targetperiods(self):
        pr = models.PinnedReport()
        pr.query_string = 'targetperiods=7&numrecentperiods=2&timeframe=2'

        self.assertEqual(pr.date_range_str, 'Most recent 2 months')

        pr.query_string = 'targetperiods=3&numrecentperiods=2&timeframe=2'

        self.assertEqual(pr.date_range_str, 'Most recent 2 years')

        pr.query_string = 'targetperiods=4&numrecentperiods=2&timeframe=2'

        self.assertEqual(pr.date_range_str, 'Most recent 2 semi-annual periods')
    def test_possible_bad_input(self):
        # the current quickstart UI allows this invalid form input -> query str
        pr = models.PinnedReport()
        pr.query_string = 'targetperiods=1&timeframe=2&numrecentperiods=2'

        self.assertEquals(pr.date_range_str, 'Show all results')
    def test_missing_qs(self):
        pr = models.PinnedReport()
        pr.query_string = ''

        self.assertEqual(pr.date_range_str, '')
    def test_lop(self):
        pr = models.PinnedReport()
        pr.query_string = 'targetperiods=1&timeframe=1'

        self.assertEqual(pr.date_range_str, 'Show all results')
    def test_show_all(self):
        pr = models.PinnedReport()
        pr.query_string = 'timeperiods=4&numrecentperiods=&timeframe=1'

        self.assertEqual(pr.date_range_str, u'Show all Periodos semestrales')
    def test_fixed_date_range_targetperiods(self):
        pr = models.PinnedReport()
        pr.query_string = 'start_period=2017-07-01&numrecentperiods=&end_period=2020-06-30&targetperiods=3'

        self.assertEqual(pr.date_range_str, u'1 Jul. 2017 \u2013 30 Jun. 2020')
    def test_fixed_date_range_timeperiods(self):
        pr = models.PinnedReport()
        pr.query_string = 'timeperiods=7&numrecentperiods=&start_period=2018-01-01&end_period=2018-06-30'

        self.assertEqual(pr.date_range_str, u'1 Ene. 2018 \u2013 30 Jun. 2018')