def setUp(self): super(TestReportsApi, self).setUp() contact = ContactFactory.create( name="a", email="*****@*****.**", partner=self.partner, locations=[ LocationFactory.create(city="Chicago", state="IL"), LocationFactory.create(city="Champaign", state="IL"), ]) contact.tags.add(TagFactory.create(name="Disability")) contact.tags.add(TagFactory.create(name="Veteran")) contact.tags.add(TagFactory.create(name="Senior"))
def setUp(self): super(TestReportsApi, self).setUp() contact = ContactFactory.create( name="a", email="*****@*****.**", partner=self.partner, locations=[ LocationFactory.create(city="Chicago", state="IL"), LocationFactory.create(city="Champaign", state="IL"), ], ) contact.tags.add(TagFactory.create(name="Disability")) contact.tags.add(TagFactory.create(name="Veteran")) contact.tags.add(TagFactory.create(name="Senior"))
def test_dynamic_partners_report_comm_per_month(self): """Run the comm_rec per month per partner report.""" self.client.login_user(self.user) partner = PartnerFactory(owner=self.company) partner.tags.add(TagFactory.create(name="this")) contact = ContactFactory.create(name='somename', partner=partner) for i in range(0, 20): # unicode here to push through report generation/download ContactRecordFactory(partner=partner, contact=contact, date_time=datetime(2015, 2, 4), subject=u"subject-%s \u2019" % i) report_data = self.find_report_data( 'partners', data_type="count_comm_rec_per_month") resp = self.client.post(reverse('run_dynamic_report'), data={ 'report_data_id': report_data.pk, 'name': 'The Report', 'filter': json.dumps({ 'tags': [['this']], }), }) self.assertEqual(200, resp.status_code) report_id = json.loads(resp.content)['id'] resp = self.client.get(reverse('list_dynamic_reports')) self.assertEqual(200, resp.status_code) self.assertEqual( { 'reports': [ { 'id': report_id, 'name': 'The Report', 'report_type': 'partners' }, ] }, json.loads(resp.content)) report_presentation = self.find_report_presentation( report_data, 'json_pass') data = { 'id': report_id, 'report_presentation_id': report_presentation.pk, } resp = self.client.get(reverse('download_dynamic_report'), data) self.assertEquals(200, resp.status_code) response_data = json.loads(resp.content) self.assertEquals(12, len(response_data['records'])) january = response_data['records'][0] self.assertEqual('1', january['Month']) self.assertEqual('0', january['Communication Record Count']) february = response_data['records'][1] self.assertEqual('2', february['Month']) self.assertEqual('20', february['Communication Record Count'])
def test_dynamic_partners_report_comm_per_month(self): """Run the comm_rec per month per partner report.""" self.client.login_user(self.user) partner = PartnerFactory(owner=self.company) partner.tags.add(TagFactory.create(name="this")) contact = ContactFactory.create(name='somename', partner=partner) for i in range(0, 20): # unicode here to push through report generation/download ContactRecordFactory( partner=partner, contact=contact, date_time=datetime(2015, 2, 4), subject=u"subject-%s \u2019" % i) report_presentation = self.find_report_presentation( 'partners', 'json_pass', data_type="count_comm_rec_per_month") resp = self.client.post( reverse('run_dynamic_report'), data={ 'rp_id': report_presentation.pk, 'name': 'The Report', 'filter': json.dumps({ 'tags': [['this']], }), }) self.assertEqual(200, resp.status_code) report_id = json.loads(resp.content)['id'] resp = self.client.get(reverse('list_dynamic_reports')) self.assertEqual(200, resp.status_code) self.assertEqual( {'reports': [ {'id': report_id, 'name': 'The Report'}, ]}, json.loads(resp.content)) resp = self.client.get(reverse('download_dynamic_report'), {'id': report_id}) self.assertEquals(200, resp.status_code) response_data = json.loads(resp.content) self.assertEquals(12, len(response_data['records'])) january = response_data['records'][0] self.assertEqual('1', january['month']) self.assertEqual('0', january['comm_rec_count']) february = response_data['records'][1] self.assertEqual('2', february['month']) self.assertEqual('20', february['comm_rec_count'])
def setUp(self): super(TestHelpers, self).setUp() tags = [ TagFactory(name=name, company=self.company) for name in ['test', 'stuff', 'working'] ] # Returns a list rather than a QuerySet, which is what the helper # functions use, so saving this to a variable isn't really helpful ContactRecordFactory.create_batch(10, partner=self.partner, contact__name='Joe Shmoe', tags=tags) self.records = ContactRecord.objects.all()
def test_pss_contact_record_tagged(self): """ When a contact record is created from a saved search being sent, that record should have the saved search's tag. """ company = CompanyFactory() partner = PartnerFactory(owner=company) tag = TagFactory(name="Test Tag") search = PartnerSavedSearchFactory(user=self.user, created_by=self.user, provider=company, partner=partner) search.tags.add(tag) search.send_email() record = ContactRecord.objects.get(tags__name=tag.name) self.assertTrue(record.contactlogentry.successful)
def test_dynamic_partners_report_comm_per_month(self): """Run the comm_rec per month per partner report.""" self.client.login_user(self.user) partner = PartnerFactory(owner=self.company) partner.tags.add(TagFactory.create(name="this")) contact = ContactFactory.create(name="somename", partner=partner) for i in range(0, 20): # unicode here to push through report generation/download ContactRecordFactory( partner=partner, contact=contact, date_time=datetime(2015, 2, 4), subject=u"subject-%s \u2019" % i ) report_data = self.find_report_data("partners", data_type="count_comm_rec_per_month") resp = self.client.post( reverse("run_dynamic_report"), data={"report_data_id": report_data.pk, "name": "The Report", "filter": json.dumps({"tags": [["this"]]})}, ) self.assertEqual(200, resp.status_code) report_id = json.loads(resp.content)["id"] resp = self.client.get(reverse("list_dynamic_reports")) self.assertEqual(200, resp.status_code) self.assertEqual( {"reports": [{"id": report_id, "name": "The Report", "report_type": "partners"}]}, json.loads(resp.content) ) report_presentation = self.find_report_presentation(report_data, "json_pass") data = {"id": report_id, "report_presentation_id": report_presentation.pk} resp = self.client.get(reverse("download_dynamic_report"), data) self.assertEquals(200, resp.status_code) response_data = json.loads(resp.content) self.assertEquals(12, len(response_data["records"])) january = response_data["records"][0] self.assertEqual("1", january["Month"]) self.assertEqual("0", january["Communication Record Count"]) february = response_data["records"][1] self.assertEqual("2", february["Month"]) self.assertEqual("20", february["Communication Record Count"])
def test_tag_added_to_taggable_models(self): tag = TagFactory(company=self.company) tag.save() tag2 = TagFactory(name="bar", company=self.company) tag2.save() cr = ContactRecordFactory(partner=self.partner) # Add tag to models cr.tags.add(tag) self.partner.tags.add(tag) self.partner.save() self.contact.tags.add(tag) self.contact.save() # Check to make sure it was added self.assertEquals(1, len(cr.tags.all())) self.assertEquals(1, len(self.partner.tags.all())) self.assertEquals(1, len(self.contact.tags.all())) # Add a 2nd tag and check self.partner.tags.add(tag2) self.partner.save() self.assertEquals(2, len(self.partner.tags.all()))
def setUp(self): super(TestCommRecordsDataSource, self).setUp() # A company to work with self.company = CompanyFactory(name='right') self.company.save() # A separate company that should not show up in results. self.other_company = CompanyFactory(name='wrong') self.other_company.save() self.partner_a = PartnerFactory( owner=self.company, uri='http://www.example.com/', data_source="zap", name="aaa") self.partner_b = PartnerFactory( owner=self.company, uri='http://www.asdf.com/', data_source="bcd", name="bbb") # An unapproved parther. Associated data should be filtered out. self.partner_unapp = PartnerFactory( owner=self.company, name="unapproved", approval_status__code=Status.UNPROCESSED) # An archived parther. Associated data should be filtered out. self.partner_archived = PartnerFactory(owner=self.company) self.east_tag = TagFactory.create(name='east', hex_color="aaaaaa") self.west_tag = TagFactory.create(name='west', hex_color="bbbbbb") self.bad_tag = TagFactory.create(name='bad', hex_color="cccccc") self.john_user = UserFactory(email="*****@*****.**") self.john = ContactFactory( partner=self.partner_a, name='john adams', user=self.john_user, email="*****@*****.**", last_action_time='2015-10-03') self.john.locations.add( LocationFactory.create( city="Indianapolis", state="IN")) self.john.locations.add( LocationFactory.create( city="Chicago", state="IL")) self.sue_user = UserFactory(email="*****@*****.**") self.sue = ContactFactory( partner=self.partner_b, name='Sue Baxter', user=self.sue_user, email="*****@*****.**", last_action_time='2015-09-30 13:23') self.sue.locations.add( LocationFactory.create( address_line_one="123", city="Los Angeles", state="CA")) self.sue.locations.add( LocationFactory.create( address_line_one="234", city="Los Angeles", state="CA")) self.partner_a.primary_contact = self.john self.partner_b.primary_contact = self.sue self.partner_a.save() self.partner_b.save() self.record_1 = ContactRecordFactory( subject='record 1', date_time='2015-09-30 13:23', contact=self.john, contact_type="Email", partner=self.partner_a, location='Indianapolis, IN', tags=[self.east_tag]) self.record_2 = ContactRecordFactory( subject='record 2', date_time='2015-01-01', contact=self.john, contact_type="Meeting Or Event", partner=self.partner_a, location='Indianapolis, IN', tags=[self.east_tag]) self.record_3 = ContactRecordFactory( subject='record 3', date_time='2015-10-03', contact=self.sue, contact_type="Phone", partner=self.partner_b, location='Los Angeles, CA', tags=[self.west_tag]) # Archive archived data here. Doing this earlier in the set up results # in odd exceptions. self.partner_archived.archive()
def setUp(self): super(TestContactsDataSource, self).setUp() # A company to work with self.company = CompanyFactory(name='right') self.company.save() # A separate company that should not show up in results. self.other_company = CompanyFactory(name='wrong') self.other_company.save() self.partner = PartnerFactory(owner=self.company) self.other_partner = PartnerFactory(owner=self.other_company) self.partner_a = PartnerFactory(owner=self.company, name="aaa") self.partner_b = PartnerFactory(owner=self.company, name="bbb") # An unapproved parther. Associated data should be filtered out. self.partner_unapp = PartnerFactory( owner=self.company, name="unapproved", approval_status__code=Status.UNPROCESSED) # An archived parther. Associated data should be filtered out. self.partner_archived = PartnerFactory(owner=self.company) self.east_tag = TagFactory.create(company=self.company, name='east', hex_color="aaaaaa") self.west_tag = TagFactory.create(company=self.company, name='west', hex_color="bbbbbb") self.left_tag = TagFactory.create(company=self.company, name='left', hex_color="cccccc") self.right_tag = TagFactory.create(company=self.company, name='right', hex_color="dddddd") self.bad_tag = TagFactory.create(company=self.company, name='bad', hex_color="cccccc") self.partner_a.tags.add(self.left_tag) self.partner_b.tags.add(self.right_tag) self.john_user = UserFactory(email="*****@*****.**") self.john = ContactFactory(partner=self.partner_a, name='john adams', user=self.john_user, email="*****@*****.**", last_action_time='2015-10-03') self.john.locations.add( LocationFactory.create(city="Indianapolis", state="IN")) self.john.locations.add( LocationFactory.create(city="Chicago", state="IL")) self.john.tags.add(self.east_tag) self.sue_user = UserFactory(email="*****@*****.**") self.sue = ContactFactory(partner=self.partner_b, name='Sue Baxter', user=self.sue_user, email="*****@*****.**", last_action_time='2015-09-30 13:23') self.sue.locations.add( LocationFactory.create(address_line_one="123", city="Los Angeles", state="CA")) self.sue.locations.add( LocationFactory.create(address_line_one="234", city="Los Angeles", state="CA")) self.sue.tags.add(self.west_tag) # Poision data. Should never show up. self.archived_partner_user = (UserFactory( email="*****@*****.**")) self.archived_partner = ContactFactory( partner=self.partner_archived, name='Archived Partner Contact', user=self.archived_partner_user, email="*****@*****.**", last_action_time='2015-09-30 13:23') self.archived_partner.locations.add( LocationFactory.create(address_line_one="123", city="Nowhere", state="NO")) self.archived_partner.locations.add( LocationFactory.create(address_line_one="234", city="Nowhere", state="NO")) self.archived_partner.tags.add(self.west_tag) # Poision data. Should never show up. self.archived_contact_user = (UserFactory( email="*****@*****.**")) self.archived_contact = ContactFactory( partner=self.partner_b, name='Archived Contact', user=self.archived_contact_user, email="*****@*****.**", last_action_time='2015-09-30 13:23') self.archived_contact.locations.add( LocationFactory.create(address_line_one="123", city="Nowhere", state="NO")) self.archived_contact.locations.add( LocationFactory.create(address_line_one="234", city="Nowhere", state="NO")) self.archived_contact.tags.add(self.west_tag) # Poision data. Should never show up. self.unapproved_partner_user = (UserFactory( email="*****@*****.**")) self.unapproved_partner_contact = ContactFactory( partner=self.partner_unapp, name='Unapproved Partner Contact', user=self.unapproved_partner_user, email="*****@*****.**", last_action_time='2015-09-30 13:23') self.unapproved_partner_contact.locations.add( LocationFactory.create(address_line_one="123", city="Nowhere", state="NO")) self.unapproved_partner_contact.locations.add( LocationFactory.create(address_line_one="234", city="Nowhere", state="NO")) self.unapproved_partner_contact.tags.add(self.west_tag) # Poision data. Should never show up. self.unapproved_contact_user = (UserFactory( email="*****@*****.**")) self.unapproved_contact = ContactFactory( partner=self.partner_b, name='Unapproved Contact', user=self.unapproved_contact_user, email="*****@*****.**", last_action_time='2015-09-30 13:23', approval_status__code=Status.UNPROCESSED) self.unapproved_contact.locations.add( LocationFactory.create(address_line_one="123", city="Nowhere", state="NO")) self.unapproved_contact.locations.add( LocationFactory.create(address_line_one="234", city="Nowhere", state="NO")) self.unapproved_contact.tags.add(self.west_tag) # Poision data. Should never show up. self.wrong_user = UserFactory(email="*****@*****.**") self.wrong = ContactFactory(partner=self.other_partner, name='wrong person', user=self.wrong_user, email="*****@*****.**", last_action_time='2015-09-03') self.wrong.locations.add( LocationFactory.create(city="Los Angeles", state="CA")) self.wrong.tags.add(self.east_tag) self.wrong.tags.add(self.west_tag) self.wrong.tags.add(self.bad_tag) # Archive archived data here. Doing this earlier in the set up results # in odd exceptions. self.partner_archived.archive() self.archived_contact.archive()
def setUp(self): super(TestCommRecordsDataSource, self).setUp() # A company to work with self.company = CompanyFactory(name='right') self.company.save() # A separate company that should not show up in results. self.other_company = CompanyFactory(name='wrong') self.other_company.save() self.partner_a = PartnerFactory(owner=self.company, uri='http://www.example.com/', data_source="zap", name="aaa") self.partner_b = PartnerFactory(owner=self.company, uri='http://www.asdf.com/', data_source="bcd", name="bbb") # An unapproved parther. Associated data should be filtered out. self.partner_unapp = PartnerFactory( owner=self.company, name="unapproved", approval_status__code=Status.UNPROCESSED) # An archived parther. Associated data should be filtered out. self.partner_archived = PartnerFactory(owner=self.company) self.east_tag = TagFactory.create(company=self.company, name='east', hex_color="aaaaaa") self.west_tag = TagFactory.create(company=self.company, name='west', hex_color="bbbbbb") self.north_tag = TagFactory.create(company=self.company, name='north', hex_color="cccccc") self.south_tag = TagFactory.create(company=self.company, name='south', hex_color="dddddd") self.left_tag = TagFactory.create(company=self.company, name='left', hex_color="eeeeee") self.right_tag = TagFactory.create(company=self.company, name='right', hex_color="ffffff") self.bad_tag = TagFactory.create(company=self.company, name='bad', hex_color="cccccc") self.partner_a.tags.add(self.left_tag) self.partner_b.tags.add(self.right_tag) self.john_user = UserFactory(email="*****@*****.**") self.john = ContactFactory(partner=self.partner_a, name='john adams', user=self.john_user, email="*****@*****.**", last_action_time='2015-10-03') self.john.locations.add( LocationFactory.create(city="Indianapolis", state="IN")) self.john.locations.add( LocationFactory.create(city="Chicago", state="IL")) self.john.tags.add(self.north_tag) self.sue_user = UserFactory(email="*****@*****.**") self.sue = ContactFactory(partner=self.partner_b, name='Sue Baxter', user=self.sue_user, email="*****@*****.**", last_action_time='2015-09-30 13:23') self.sue.locations.add( LocationFactory.create(address_line_one="123", city="Los Angeles", state="CA")) self.sue.locations.add( LocationFactory.create(address_line_one="234", city="Los Angeles", state="CA")) self.sue.tags.add(self.south_tag) self.partner_a.primary_contact = self.john self.partner_b.primary_contact = self.sue self.partner_a.save() self.partner_b.save() self.record_1 = ContactRecordFactory(subject='record 1', date_time='2015-09-30 13:23', contact=self.john, contact_type="Email", partner=self.partner_a, location='Indianapolis, IN', tags=[self.east_tag]) self.record_2 = ContactRecordFactory(subject='record 2', date_time='2015-01-01', contact=self.john, contact_type="Meeting Or Event", partner=self.partner_a, location='Indianapolis, IN', tags=[self.east_tag]) self.record_3 = ContactRecordFactory(subject='record 3', date_time='2015-10-03', contact=self.sue, contact_type="Phone", partner=self.partner_b, location='Los Angeles, CA', tags=[self.west_tag]) # Archive archived data here. Doing this earlier in the set up results # in odd exceptions. self.partner_archived.archive()
def setUp(self): super(TestContactsDataSource, self).setUp() # A company to work with self.company = CompanyFactory(name='right') self.company.save() # A separate company that should not show up in results. self.other_company = CompanyFactory(name='wrong') self.other_company.save() self.partner = PartnerFactory( owner=self.company) self.other_partner = PartnerFactory( owner=self.other_company) self.partner_a = PartnerFactory(owner=self.company, name="aaa") self.partner_b = PartnerFactory(owner=self.company, name="bbb") # An unapproved parther. Associated data should be filtered out. self.partner_unapp = PartnerFactory( owner=self.company, name="unapproved", approval_status__code=Status.UNPROCESSED) # An archived parther. Associated data should be filtered out. self.partner_archived = PartnerFactory(owner=self.company) self.east_tag = TagFactory.create( company=self.company, name='east', hex_color="aaaaaa") self.west_tag = TagFactory.create( company=self.company, name='west', hex_color="bbbbbb") self.left_tag = TagFactory.create( company=self.company, name='left', hex_color="cccccc") self.right_tag = TagFactory.create( company=self.company, name='right', hex_color="dddddd") self.bad_tag = TagFactory.create( company=self.company, name='bad', hex_color="cccccc") self.partner_a.tags.add(self.left_tag) self.partner_b.tags.add(self.right_tag) self.john_user = UserFactory(email="*****@*****.**") self.john = ContactFactory( partner=self.partner_a, name='john adams', user=self.john_user, email="*****@*****.**", last_action_time='2015-10-03') self.john.locations.add( LocationFactory.create( city="Indianapolis", state="IN")) self.john.locations.add( LocationFactory.create( city="Chicago", state="IL")) self.john.tags.add(self.east_tag) self.sue_user = UserFactory(email="*****@*****.**") self.sue = ContactFactory( partner=self.partner_b, name='Sue Baxter', user=self.sue_user, email="*****@*****.**", last_action_time='2015-09-30 13:23') self.sue.locations.add( LocationFactory.create( address_line_one="123", city="Los Angeles", state="CA")) self.sue.locations.add( LocationFactory.create( address_line_one="234", city="Los Angeles", state="CA")) self.sue.tags.add(self.west_tag) # Poision data. Should never show up. self.archived_partner_user = ( UserFactory(email="*****@*****.**")) self.archived_partner = ContactFactory( partner=self.partner_archived, name='Archived Partner Contact', user=self.archived_partner_user, email="*****@*****.**", last_action_time='2015-09-30 13:23') self.archived_partner.locations.add( LocationFactory.create( address_line_one="123", city="Nowhere", state="NO")) self.archived_partner.locations.add( LocationFactory.create( address_line_one="234", city="Nowhere", state="NO")) self.archived_partner.tags.add(self.west_tag) # Poision data. Should never show up. self.archived_contact_user = ( UserFactory(email="*****@*****.**")) self.archived_contact = ContactFactory( partner=self.partner_b, name='Archived Contact', user=self.archived_contact_user, email="*****@*****.**", last_action_time='2015-09-30 13:23') self.archived_contact.locations.add( LocationFactory.create( address_line_one="123", city="Nowhere", state="NO")) self.archived_contact.locations.add( LocationFactory.create( address_line_one="234", city="Nowhere", state="NO")) self.archived_contact.tags.add(self.west_tag) # Poision data. Should never show up. self.unapproved_partner_user = ( UserFactory(email="*****@*****.**")) self.unapproved_partner_contact = ContactFactory( partner=self.partner_unapp, name='Unapproved Partner Contact', user=self.unapproved_partner_user, email="*****@*****.**", last_action_time='2015-09-30 13:23') self.unapproved_partner_contact.locations.add( LocationFactory.create( address_line_one="123", city="Nowhere", state="NO")) self.unapproved_partner_contact.locations.add( LocationFactory.create( address_line_one="234", city="Nowhere", state="NO")) self.unapproved_partner_contact.tags.add(self.west_tag) # Poision data. Should never show up. self.unapproved_contact_user = ( UserFactory(email="*****@*****.**")) self.unapproved_contact = ContactFactory( partner=self.partner_b, name='Unapproved Contact', user=self.unapproved_contact_user, email="*****@*****.**", last_action_time='2015-09-30 13:23', approval_status__code=Status.UNPROCESSED) self.unapproved_contact.locations.add( LocationFactory.create( address_line_one="123", city="Nowhere", state="NO")) self.unapproved_contact.locations.add( LocationFactory.create( address_line_one="234", city="Nowhere", state="NO")) self.unapproved_contact.tags.add(self.west_tag) # Poision data. Should never show up. self.wrong_user = UserFactory(email="*****@*****.**") self.wrong = ContactFactory( partner=self.other_partner, name='wrong person', user=self.wrong_user, email="*****@*****.**", last_action_time='2015-09-03') self.wrong.locations.add( LocationFactory.create( city="Los Angeles", state="CA")) self.wrong.tags.add(self.east_tag) self.wrong.tags.add(self.west_tag) self.wrong.tags.add(self.bad_tag) # Archive archived data here. Doing this earlier in the set up results # in odd exceptions. self.partner_archived.archive() self.archived_contact.archive()