def test_plain_filter_or(self): """Convert OrGroupFilter to plain object.""" filt = ContactsFilter(partner=OrGroupFilter([ MatchFilter(1), MatchFilter(2), ])) self.assertEqual({'partner': [1, 2]}, plain_filter(filt))
def test_plain_filter_or(self): """Convert OrGroupFilter to plain object.""" filt = ContactsFilter( partner=OrGroupFilter([ MatchFilter(1), MatchFilter(2), ])) self.assertEqual({'partner': [1, 2]}, plain_filter(filt))
def test_plain_filter_unlinked(self): """Convert unlinked filter to plain object.""" filt = ContactsFilter(tags=UnlinkedFilter()) self.assertEqual({ 'tags': { 'nolink': True }, }, plain_filter(filt))
def test__plain_filter_date_range(self): """Convert date range to plain object.""" filt = ContactsFilter( date=DateRangeFilter([ datetime(2015, 9, 1), datetime(2015, 9, 30)])) self.assertEqual({ 'date': [datetime(2015, 9, 1), datetime(2015, 9, 30)], }, plain_filter(filt))
def test__plain_filter_date_range(self): """Convert date range to plain object.""" filt = ContactsFilter(date=DateRangeFilter( [datetime(2015, 9, 1), datetime(2015, 9, 30)])) self.assertEqual( { 'date': [datetime(2015, 9, 1), datetime(2015, 9, 30)], }, plain_filter(filt))
def get_default_filter(self, data_type, company): """Get a filter object with default values prepopulated. data_type: name of query variant, i.e. unaggregated, per_year company: company model object for this run. returns: an adorned filter with default values see adorn_filter """ return plain_filter(self.ds.get_default_filter(data_type, company))
def adorn_filter(self, company, filter_spec): """Get a version of the filter help added where available. company: company model object for this run. filter_spec: string with json object for the current user filter. returns: a json object shaped like filter_spec values on fields with help available will be replaced with help """ filter_obj = self.build_filter(filter_spec) return plain_filter(adorn_filter(company, self.ds, filter_obj))
def test_plain_filter_composite_and(self): """Convert CompositeAndFilter to plain object.""" filt = ContactsFilter( locations=CompositeAndFilter({ 'city': MatchFilter('indy'), 'state': MatchFilter('IN'), })) self.assertEqual({ 'locations': { 'city': 'indy', 'state': 'IN', }, }, plain_filter(filt))
def test_plain_filter_and(self): """Convert AndGroupFilter to plain object.""" filt = ContactsFilter( tags=AndGroupFilter([ OrGroupFilter([ MatchFilter(1), MatchFilter(2), ]), OrGroupFilter([ MatchFilter(3), MatchFilter(4), ])])) self.assertEqual({'tags': [[1, 2], [3, 4]]}, plain_filter(filt))
def test_plain_filter_and(self): """Convert AndGroupFilter to plain object.""" filt = ContactsFilter(tags=AndGroupFilter([ OrGroupFilter([ MatchFilter(1), MatchFilter(2), ]), OrGroupFilter([ MatchFilter(3), MatchFilter(4), ]) ])) self.assertEqual({'tags': [[1, 2], [3, 4]]}, plain_filter(filt))
def test_plain_filter_unlinked(self): """Convert unlinked filter to plain object.""" filt = ContactsFilter(tags=UnlinkedFilter()) self.assertEqual({ 'tags': {'nolink': True}, }, plain_filter(filt))
def test_plain_filter_match(self): """Convert MatchFilter to plain object.""" filt = PartnersFilter(uri=MatchFilter('www')) self.assertEqual({ 'uri': 'www', }, plain_filter(filt))