def test_filter_by_tags_and(self):
        """Show only commrec with correct tags in 'and' configuration."""
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(tags=AndGroupFilter([
                OrGroupFilter([MatchFilter('EaSt')]),
                OrGroupFilter([MatchFilter('wEsT')])])),
            [])
        subjects = {r['subject'] for r in recs}
        expected = set()
        self.assertEqual(expected, subjects)

        # Now try adding another tag.
        self.record_1.tags.add(self.west_tag)
        self.record_1.save()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(tags=AndGroupFilter([
                OrGroupFilter([MatchFilter('EaSt')]),
                OrGroupFilter([MatchFilter('wEsT')])])),
            [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_1.subject}
        self.assertEqual(expected, subjects)
Esempio n. 2
0
    def test_filter_by_tags_and(self):
        """Show only commrec with correct tags in 'and' configuration."""
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(tags=AndGroupFilter([
                OrGroupFilter([MatchFilter('EaSt')]),
                OrGroupFilter([MatchFilter('wEsT')])
            ])), [])
        subjects = {r['subject'] for r in recs}
        expected = set()
        self.assertEqual(expected, subjects)

        # Now try adding another tag.
        self.record_1.tags.add(self.west_tag)
        self.record_1.save()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(tags=AndGroupFilter([
                OrGroupFilter([MatchFilter('EaSt')]),
                OrGroupFilter([MatchFilter('wEsT')])
            ])), [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_1.subject}
        self.assertEqual(expected, subjects)
Esempio n. 3
0
 def test_filter_by_date_after(self):
     """Should show only commrec with last_action_time after date."""
     ds = CommRecordsDataSource()
     date_range = DateRangeFilter([datetime(2015, 10, 1), None])
     recs = ds.run_unaggregated(self.company,
                                CommRecordsFilter(date_time=date_range), [])
     subjects = {r['subject'] for r in recs}
     expected = {self.record_3.subject}
     self.assertEqual(expected, subjects)
Esempio n. 4
0
 def test_filter_by_city(self):
     """Should show only commrecs with correct city."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(
         self.company,
         CommRecordsFilter(locations=CompositeAndFilter(
             {'city': MatchFilter('Los Angeles')})), [])
     subjects = {r['subject'] for r in recs}
     expected = {self.record_3.subject}
     self.assertEqual(expected, subjects)
Esempio n. 5
0
 def test_filter_by_communication_type(self):
     """Check communication_type filter works at all."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(
         self.company,
         CommRecordsFilter(
             communication_type=OrGroupFilter([MatchFilter('email')])), [])
     subjects = {r['subject'] for r in recs}
     expected = {self.record_1.subject}
     self.assertEqual(expected, subjects)
 def test_filter_by_tags(self):
     """Show only commrec with correct tags."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(
         self.company,
         CommRecordsFilter(tags=[['EaSt']]),
         [])
     subjects = set([r['subject'] for r in recs])
     expected = {self.record_1.subject, self.record_2.subject}
     self.assertEqual(expected, subjects)
 def test_filter_by_communication_type(self):
     """Check communication_type filter works at all."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(
         self.company,
         CommRecordsFilter(communication_type='Email'),
         [])
     subjects = set([r['subject'] for r in recs])
     expected = {self.record_1.subject}
     self.assertEqual(expected, subjects)
 def test_filter_by_contact(self):
     """Check partner filter works at all."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(
         self.company,
         CommRecordsFilter(contact=[self.sue.pk]),
         [])
     subjects = set([r['subject'] for r in recs])
     expected = {self.record_3.subject}
     self.assertEqual(expected, subjects)
Esempio n. 9
0
 def test_run_unfiltered(self):
     """Make sure we only get data for this user."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(self.company, CommRecordsFilter(), [])
     subjects = {r['subject'] for r in recs}
     expected = {
         self.record_1.subject,
         self.record_2.subject,
         self.record_3.subject,
     }
     self.assertEqual(expected, subjects)
 def test_run_unfiltered(self):
     """Make sure we only get data for this user."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(self.company, CommRecordsFilter(), [])
     subjects = set([r['subject'] for r in recs])
     expected = {
         self.record_1.subject,
         self.record_2.subject,
         self.record_3.subject,
     }
     self.assertEqual(expected, subjects)
 def test_filter_by_date_after(self):
     """Should show only commrec with last_action_time after date."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(
         self.company,
         CommRecordsFilter(
             date_time=[datetime(2015, 10, 1), None]),
         [])
     subjects = set([r['subject'] for r in recs])
     expected = {self.record_3.subject}
     self.assertEqual(expected, subjects)
 def test_filter_by_state(self):
     """Should show only commrecs with correct state."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(
         self.company,
         CommRecordsFilter(
             locations=CompositeAndFilter({'state': MatchFilter('CA')})),
         [])
     subjects = {r['subject'] for r in recs}
     expected = {self.record_3.subject}
     self.assertEqual(expected, subjects)
 def test_filter_by_date_before(self):
     """Should show only commrec with last_action_time before date."""
     ds = CommRecordsDataSource()
     date_range = DateRangeFilter(
         [None, datetime(2015, 9, 30)])
     recs = ds.run_unaggregated(
         self.company,
         CommRecordsFilter(date_time=date_range),
         [])
     subjects = {r['subject'] for r in recs}
     expected = {self.record_1.subject, self.record_2.subject}
     self.assertEqual(expected, subjects)
Esempio n. 14
0
    def test_filter_by_partner_tags_untagged(self):
        """
        Check that we can find a record attached to an untagged partner.

        """
        self.partner_b.tags.clear()
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company, CommRecordsFilter(partner_tags=UnlinkedFilter()), [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_3.subject}
        self.assertEqual(expected, subjects)
 def test_filter_by_city(self):
     """Should show only commrecs with correct city."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(
         self.company,
         CommRecordsFilter(
             locations={
                 'city': 'Los Angeles'
             }),
         [])
     subjects = set([r['subject'] for r in recs])
     expected = {self.record_3.subject}
     self.assertEqual(expected, subjects)
Esempio n. 16
0
    def test_filter_by_partner_tags(self):
        """
        Test that we can filter by partner tags.

        """
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(partner_tags=AndGroupFilter(
                [OrGroupFilter([MatchFilter('rigHt')])])), [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_3.subject}
        self.assertEqual(expected, subjects)
Esempio n. 17
0
    def test_filter_by_contact(self):
        """
        Check partner filter works at all.

        """
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(
                contact=OrGroupFilter([MatchFilter(self.sue.pk)])), [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_3.subject}
        self.assertEqual(expected, subjects)
Esempio n. 18
0
    def test_filter_by_tags_unlinked(self):
        """
       Only return untagged commrecs.

        """
        self.record_1.tags.clear()
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(self.company,
                                   CommRecordsFilter(tags=UnlinkedFilter()),
                                   [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_1.subject}
        self.assertEqual(expected, subjects)
 def test_order(self):
     """Check ordering results works at all."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(
         self.company,
         CommRecordsFilter(),
         ["-subject"])
     subjects = [r['subject'] for r in recs]
     expected = [
         self.record_3.subject,
         self.record_2.subject,
         self.record_1.subject,
     ]
     self.assertEqual(expected, subjects)
    def test_filter_by_tags(self):
        """
        Show only commrec with correct tags.

        """
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(tags=AndGroupFilter([
                OrGroupFilter([MatchFilter('EaSt')])])),
            [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_1.subject, self.record_2.subject}
        self.assertEqual(expected, subjects)
    def test_filter_by_tags_unlinked(self):
        """
       Only return untagged commrecs.

        """
        self.record_1.tags.clear()
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(tags=UnlinkedFilter()),
            [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_1.subject}
        self.assertEqual(expected, subjects)
    def test_filter_by_partner(self):
        """
        Check partner filter works at all.

        """
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(
                partner=OrGroupFilter([MatchFilter(self.partner_a.pk)])),
            [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_1.subject, self.record_2.subject}
        self.assertEqual(expected, subjects)
    def test_filter_by_partner_tags_untagged(self):
        """
        Check that we can find a record attached to an untagged partner.

        """
        self.partner_b.tags.clear()
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(partner_tags=UnlinkedFilter()),
            [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_3.subject}
        self.assertEqual(expected, subjects)
Esempio n. 24
0
    def test_filter_by_tags(self):
        """
        Show only commrec with correct tags.

        """
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(
                tags=AndGroupFilter([OrGroupFilter([MatchFilter('EaSt')])])),
            [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_1.subject, self.record_2.subject}
        self.assertEqual(expected, subjects)
 def test_filter_by_empty_things(self):
     """Empty filters should not filter, just like missing filters."""
     ds = CommRecordsDataSource()
     recs = ds.run_unaggregated(
         self.company,
         CommRecordsFilter(
             locations={'city': '', 'state': ''}),
         [])
     subjects = set([r['subject'] for r in recs])
     expected = {
         self.record_1.subject,
         self.record_2.subject,
         self.record_3.subject,
     }
     self.assertEqual(expected, subjects)
    def test_filter_by_partner_tags(self):
        """
        Test that we can filter by partner tags.

        """
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(
                partner_tags=AndGroupFilter([
                    OrGroupFilter([MatchFilter('rigHt')])])),
            [])
        subjects = {r['subject'] for r in recs}
        expected = {self.record_3.subject}
        self.assertEqual(expected, subjects)
    def test_values(self):
        """
        Check limiting values works at all

        """
        self.maxDiff = 10000
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(
            self.company,
            CommRecordsFilter(),
            ["partner", "subject"])
        expected = [
            {'partner': u'aaa', 'subject': u'record 1'},
            {'partner': u'aaa', 'subject': u'record 2'},
            {'partner': u'bbb', 'subject': u'record 3'},
        ]
        self.assertEqual(expected, recs)
Esempio n. 28
0
    def test_values(self):
        """
        Check limiting values works at all

        """
        self.maxDiff = 10000
        ds = CommRecordsDataSource()
        recs = ds.run_unaggregated(self.company, CommRecordsFilter(),
                                   ["partner", "subject"])
        expected = [
            {
                'partner': u'aaa',
                'subject': u'record 1'
            },
            {
                'partner': u'aaa',
                'subject': u'record 2'
            },
            {
                'partner': u'bbb',
                'subject': u'record 3'
            },
        ]
        self.assertEqual(expected, recs)