Ejemplo n.º 1
0
 def test_key_range_normalization(self):
     keys = sources.normalize_key_ranges(('id', key_range.SourceKeyRange))
     self.assertEqual(len(keys), 1)
     self.assertEqual(len(keys[0]), 2)
     self.assertEqual(keys[0][0], 'id')
     self.assert_(isinstance(keys[0][1], key_range.SourceKeyRange))
     keys = sources.normalize_key_ranges([
         ('id', key_range.SourceKeyRange),
         ('date', key_range.EpochKeyRange('start', 'end')),
     ])
     self.assertEqual(len(keys), 2)
     self.assertEqual(len(keys[0]), 2)
     self.assertEqual(len(keys[1]), 2)
     self.assertEqual(keys[0][0], 'id')
     self.assertEqual(keys[1][0], 'date')
     self.assert_(isinstance(keys[0][1], key_range.SourceKeyRange))
     self.assert_(isinstance(keys[1][1], key_range.EpochKeyRange))
Ejemplo n.º 2
0
 def test_key_range_normalization(self):
     keys = sources.normalize_key_ranges(('id', key_range.SourceKeyRange))
     self.assertEqual(len(keys), 1)
     self.assertEqual(len(keys[0]), 2)
     self.assertEqual(keys[0][0], 'id')
     self.assert_(isinstance(keys[0][1], key_range.SourceKeyRange))
     keys = sources.normalize_key_ranges([
         ('id', key_range.SourceKeyRange),
         ('date', key_range.EpochKeyRange('start', 'end')),
     ])
     self.assertEqual(len(keys), 2)
     self.assertEqual(len(keys[0]), 2)
     self.assertEqual(len(keys[1]), 2)
     self.assertEqual(keys[0][0], 'id')
     self.assertEqual(keys[1][0], 'date')
     self.assert_(isinstance(keys[0][1], key_range.SourceKeyRange))
     self.assert_(isinstance(keys[1][1], key_range.EpochKeyRange))
Ejemplo n.º 3
0
    def __init__(self, cache, merge=False):
        self.cache = cache
        
        # Grab an instance of each of the source types implied by the columns
        self.columns_dict = dict(self.columns)
        report_sources = set([c.source for c in self.columns_dict.values()])
        self._sources = [source(self) for source in report_sources]

        # Set default format labels
        for name, column in self.columns:
            if column.format.label is None:
                column.format.label = get_display_name(name)

        # Some defaults for optional settings
        self._init_footer()
        self.keys = sources.normalize_key_ranges(self.keys)
        self.cache_time = getattr(self, 'cache_time', DEFAULT_CACHE_TIME)
        fallback_sort = (self.columns[0][0], 'desc') if self.columns else None
        self.default_sort = getattr(self, 'default_sort', fallback_sort)
        self.dirty_inputs = {}
        self.clean_inputs = {}
        if not merge:
            self.clean_user_inputs() # Triggers validation for no inputs
Ejemplo n.º 4
0
    def __init__(self, cache, merge=False):
        self.cache = cache

        # Grab an instance of each of the source types implied by the columns
        self.columns_dict = dict(self.columns)
        report_sources = set([c.source for c in self.columns_dict.values()])
        self._sources = [source(self) for source in report_sources]

        # Set default format labels
        for name, column in self.columns:
            if column.format.label is None:
                column.format.label = get_display_name(name)

        # Some defaults for optional settings
        self._init_footer()
        self.keys = sources.normalize_key_ranges(self.keys)
        self.cache_time = getattr(self, 'cache_time', DEFAULT_CACHE_TIME)
        fallback_sort = (self.columns[0][0], 'desc') if self.columns else None
        self.default_sort = getattr(self, 'default_sort', fallback_sort)
        self.dirty_inputs = {}
        self.clean_inputs = {}
        if not merge:
            self.clean_user_inputs()  # Triggers validation for no inputs