def setUp(self):
     self.renderer = Renderer(self.layer['portal'], self.layer['request'],
                              None, None, {})
     year = 2014
     month = 5
     self.renderer.update()
     calendar = self.renderer.calendar
     last_day = calendar._getCalendar().monthrange(year, month)[1]
     self.first_date = calendar.getBeginAndEndTimes(1, month, year)[0]
     self.last_date = calendar.getBeginAndEndTimes(last_day, month, year)[1]
     self.renderer.year = year
     self.renderer.month = month
 def setUp(self):
     self.renderer = Renderer(self.layer['portal'], self.layer['request'],
                              None, None, {})
     year = 2014
     month = 5
     self.renderer.update()
     calendar = self.renderer.calendar
     last_day = calendar._getCalendar().monthrange(year, month)[1]
     self.first_date = calendar.getBeginAndEndTimes(1, month, year)[0]
     self.last_date = calendar.getBeginAndEndTimes(last_day, month, year)[1]
     self.renderer.year = year
     self.renderer.month = month
class TestRendererBase(unittest.TestCase):

    layer = INTEGRATION_TESTING

    def setUp(self):
        self.renderer = Renderer(self.layer['portal'], self.layer['request'],
                                 None, None, {})
        year = 2014
        month = 5
        self.renderer.update()
        calendar = self.renderer.calendar
        last_day = calendar._getCalendar().monthrange(year, month)[1]
        self.first_date = calendar.getBeginAndEndTimes(1, month, year)[0]
        self.last_date = calendar.getBeginAndEndTimes(last_day, month, year)[1]
        self.renderer.year = year
        self.renderer.month = month

    def test_fix_range_criteria_start(self):
        renderer = self.renderer
        d1 = DateTime('2014/05/10')
        renderer.options = {'start': {'query': d1, 'range': 'min'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(
            renderer.options,
            {'start': {
                'query': [d1, self.last_date],
                'range': 'minmax'
            }})
        d1 = DateTime('2014/05/25')
        renderer.options = {'start': {'query': d1, 'range': 'max'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(
            renderer.options,
            {'start': {
                'query': [d1, self.last_date],
                'range': 'max'
            }})
        d1 = DateTime('2014/05/10')
        d2 = DateTime('2014/06/08')
        renderer.options = {'start': {'query': [d1, d2], 'range': 'minmax'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(
            renderer.options,
            {'start': {
                'query': [d1, self.last_date],
                'range': 'minmax'
            }})

    def test_fix_range_criteria_start_new_collection(self):
        # WTF: new style collections are returning "strings"
        renderer = self.renderer
        d1 = '2014/05/10'
        renderer.options = {'start': {'query': d1, 'range': 'min'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(renderer.options, {
            'start': {
                'query': [DateTime(d1), self.last_date],
                'range': 'minmax'
            }
        })
        d1 = DateTime('2014/05/25')
        renderer.options = {'start': {'query': d1, 'range': 'max'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(
            renderer.options,
            {'start': {
                'query': [d1, self.last_date],
                'range': 'max'
            }})
        d1 = DateTime('2014/05/10')
        d2 = DateTime('2014/06/08')
        renderer.options = {'start': {'query': [d1, d2], 'range': 'minmax'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(
            renderer.options,
            {'start': {
                'query': [d1, self.last_date],
                'range': 'minmax'
            }})

    def test_fix_range_criteria_end(self):
        renderer = self.renderer
        d1 = DateTime('2014/05/20')
        renderer.options = {'end': {'query': d1, 'range': 'max'}}
        renderer._fix_range_criteria('end')
        self.assertEqual(
            renderer.options,
            {'end': {
                'query': [d1, self.first_date],
                'range': 'minmax'
            }})
        d1 = DateTime('2014/05/15')
        renderer.options = {'end': {'query': d1, 'range': 'min'}}
        renderer._fix_range_criteria('end')
        self.assertEqual(
            renderer.options,
            {'end': {
                'query': [d1, self.first_date],
                'range': 'min'
            }})
        d1 = DateTime('2014/02/05')
        d2 = DateTime('2014/05/15')
        renderer.options = {'end': {'query': [d1, d2], 'range': 'minmax'}}
        renderer._fix_range_criteria('end')
        self.assertEqual(
            renderer.options,
            {'end': {
                'query': [d2, self.first_date],
                'range': 'minmax'
            }})
class TestRendererBase(unittest.TestCase):

    layer = INTEGRATION_TESTING

    def setUp(self):
        self.renderer = Renderer(self.layer['portal'], self.layer['request'],
                                 None, None, {})
        year = 2014
        month = 5
        self.renderer.update()
        calendar = self.renderer.calendar
        last_day = calendar._getCalendar().monthrange(year, month)[1]
        self.first_date = calendar.getBeginAndEndTimes(1, month, year)[0]
        self.last_date = calendar.getBeginAndEndTimes(last_day, month, year)[1]
        self.renderer.year = year
        self.renderer.month = month

    def test_fix_range_criteria_start(self):
        renderer = self.renderer
        d1 = DateTime('2014/05/10')
        renderer.options = {'start': {'query': d1, 'range': 'min'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(renderer.options,
                         {'start': {'query': [d1, self.last_date],
                                    'range': 'minmax'}})
        d1 = DateTime('2014/05/25')
        renderer.options = {'start': {'query': d1, 'range': 'max'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(renderer.options,
                         {'start': {'query': [d1, self.last_date],
                                    'range': 'max'}})
        d1 = DateTime('2014/05/10')
        d2 = DateTime('2014/06/08')
        renderer.options = {'start': {'query': [d1, d2], 'range': 'minmax'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(renderer.options,
                         {'start': {'query': [d1, self.last_date],
                                    'range': 'minmax'}})

    def test_fix_range_criteria_start_new_collection(self):
        # WTF: new style collections are returning "strings"
        renderer = self.renderer
        d1 = '2014/05/10'
        renderer.options = {'start': {'query': d1, 'range': 'min'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(renderer.options,
                         {'start': {'query': [DateTime(d1), self.last_date],
                                    'range': 'minmax'}})
        d1 = DateTime('2014/05/25')
        renderer.options = {'start': {'query': d1, 'range': 'max'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(renderer.options,
                         {'start': {'query': [d1, self.last_date],
                                    'range': 'max'}})
        d1 = DateTime('2014/05/10')
        d2 = DateTime('2014/06/08')
        renderer.options = {'start': {'query': [d1, d2], 'range': 'minmax'}}
        renderer._fix_range_criteria('start')
        self.assertEqual(renderer.options,
                         {'start': {'query': [d1, self.last_date],
                                    'range': 'minmax'}})

    def test_fix_range_criteria_end(self):
        renderer = self.renderer
        d1 = DateTime('2014/05/20')
        renderer.options = {'end': {'query': d1, 'range': 'max'}}
        renderer._fix_range_criteria('end')
        self.assertEqual(renderer.options,
                         {'end': {'query': [d1, self.first_date],
                                  'range': 'minmax'}})
        d1 = DateTime('2014/05/15')
        renderer.options = {'end': {'query': d1, 'range': 'min'}}
        renderer._fix_range_criteria('end')
        self.assertEqual(renderer.options,
                         {'end': {'query': [d1, self.first_date],
                                  'range': 'min'}})
        d1 = DateTime('2014/02/05')
        d2 = DateTime('2014/05/15')
        renderer.options = {'end': {'query': [d1, d2], 'range': 'minmax'}}
        renderer._fix_range_criteria('end')
        self.assertEqual(renderer.options,
                         {'end': {'query': [d2, self.first_date],
                                  'range': 'minmax'}})