def cases_case(self, **kwargs): kwargs.update({ 'size': kwargs.get('size', self.batch_size) / 3, 'tenant': kwargs.get('tenant', self.tenant), 'status': kwargs.get('status') if kwargs.get('status') else iterator(self.cases_case_status), 'type': kwargs.get('type') if kwargs.get('type') else iterator(self.cases_case_type), 'assigned_to': kwargs.get('assigned_to') if kwargs.get('assigned_to') else iterator(self.users_user), 'teams': kwargs.get('teams') if kwargs.get('teams') else iterator(self.users_team), 'account': kwargs.get('account') if kwargs.get('account') else iterator(self.accounts_account), 'contact': kwargs.get('contact') if kwargs.get('contact') else iterator(self.contacts_contact), }) contact = kwargs.pop('contact') # Remove contact for now. cases_with_account = CaseFactory.create_batch(**kwargs) kwargs['account'] = None # Replace account with contact. kwargs['contact'] = contact cases_with_contact = CaseFactory.create_batch(**kwargs) kwargs['teams'] = None # Remove all connections. kwargs['contact'] = None cases_without = CaseFactory.create_batch(**kwargs) self.stdout.write('Done with cases_case.') return cases_with_account + cases_with_contact + cases_without
def test_contact_closed_deal(self): """ Test having a contact with no open deals or cases. There is only a deal closed less than a week ago. """ CaseFactory.create_batch(size=5, tenant=self.user_obj.tenant) Case.objects.all().update(modified=datetime(2018, 1, 1, tzinfo=utc), status=self.case_status_closed) deals = DealFactory.create_batch(size=5, tenant=self.user_obj.tenant) Deal.objects.all().update(modified=datetime(2018, 1, 1, tzinfo=utc), status=self.deal_status_lost) deal = deals[0] deal.is_deleted = False deal.status = self.deal_status_lost deal.contact = self.contact deal.modified = self.five_days_ago deal.update_modified = False deal.save() assigned_to_user = deal.assigned_to # Make api call. response = self.user.get( reverse(self.search_url, kwargs={'number': self.phone_number.number})) # Verify response. self._verify_response(response, assigned_to_user)
def cases_case(self, **kwargs): kwargs.update( { "size": kwargs.get("size", self.batch_size) / 3, "tenant": kwargs.get("tenant", self.tenant), "status": kwargs.get("status") if kwargs.get("status") else iterator(self.cases_case_status), "type": kwargs.get("type") if kwargs.get("type") else iterator(self.cases_case_type), "assigned_to": kwargs.get("assigned_to") if kwargs.get("assigned_to") else iterator(self.users_user), "teams": kwargs.get("teams") if kwargs.get("teams") else iterator(self.users_team), "account": kwargs.get("account") if kwargs.get("account") else iterator(self.accounts_account), "contact": kwargs.get("contact") if kwargs.get("contact") else iterator(self.contacts_contact), } ) contact = kwargs.pop("contact") # Remove contact for now. cases_with_account = CaseFactory.create_batch(**kwargs) kwargs["account"] = None # Replace account with contact. kwargs["contact"] = contact cases_with_contact = CaseFactory.create_batch(**kwargs) kwargs["teams"] = None # Remove all connections. kwargs["contact"] = None cases_without = CaseFactory.create_batch(**kwargs) self.stdout.write("Done with cases_case.") return cases_with_account + cases_with_contact + cases_without
def test_contact_closed_deal(self): """ Test having a contact with no open deals or cases. There is only a deal closed less than a week ago. """ CaseFactory.create_batch(size=5, tenant=self.user_obj.tenant) Case.objects.all().update( modified=datetime(2018, 1, 1, tzinfo=utc), status=self.case_status_closed ) deals = DealFactory.create_batch(size=5, tenant=self.user_obj.tenant) Deal.objects.all().update( modified=datetime(2018, 1, 1, tzinfo=utc), status=self.deal_status_lost ) deal = deals[0] deal.is_deleted = False deal.status = self.deal_status_lost deal.contact = self.contact deal.modified = self.five_days_ago deal.update_modified = False deal.save() assigned_to_user = deal.assigned_to # Make api call. response = self.user.get(reverse(self.search_url, kwargs={'number': self.phone_number.number})) # Verify response. self._verify_response(response, assigned_to_user)
def test_update_modified(self): """ Test that the modified date of a case gets set properly. """ tenant = TenantFactory.create() case = CaseFactory.create(tenant=tenant) modified = case.modified time.sleep(1) case.save(update_modified=False) self.assertEqual(modified, case.modified) case.save(update_modified=True) self.assertNotEqual(modified, case.modified)
def test_contact_open_deal_open_case_no_notes(self): """ Test having a contact with open deals and cases. Both without notes. """ # There are open cases and open deals, both have no attached notes. The case is the most recent edited. cases = CaseFactory.create_batch(size=5, tenant=self.user_obj.tenant) Case.objects.all().update(modified=datetime(2018, 1, 1, tzinfo=utc)) case = cases[0] case.contact = self.contact case.is_deleted = False case.status = self.case_status_new case.modified = datetime(2018, 1, 3, tzinfo=utc) case.update_modified = False case.save() assigned_to_user = case.assigned_to deals = DealFactory.create_batch(size=5, tenant=self.user_obj.tenant) Deal.objects.all().update(modified=datetime(2018, 1, 1, tzinfo=utc)) deal = deals[0] deal.is_deleted = False deal.status = self.deal_status_open deal.contact = self.contact deal.modified = datetime(2018, 1, 2, tzinfo=utc) deal.update_modified = False deal.save() # Make api call. response = self.user.get( reverse(self.search_url, kwargs={'number': self.phone_number.number})) # Verify response. self._verify_response(response, assigned_to_user) # There are open cases and open deals, both have no attached notes. The deal is the most recent edited. Case.objects.filter(pk=case.pk).update( modified=datetime(2018, 3, 2, tzinfo=utc)) Deal.objects.filter(pk=deal.pk).update( modified=datetime(2018, 3, 3, tzinfo=utc)) assigned_to_user = deal.assigned_to # Make api call. response = self.user.get( reverse(self.search_url, kwargs={'number': self.phone_number.number})) # Verify response. self._verify_response(response, assigned_to_user)
def test_contact_open_deal_open_case_no_notes(self): """ Test having a contact with open deals and cases. Both without notes. """ # There are open cases and open deals, both have no attached notes. The case is the most recent edited. cases = CaseFactory.create_batch(size=5, tenant=self.user_obj.tenant) Case.objects.all().update(modified=datetime(2018, 1, 1, tzinfo=utc)) case = cases[0] case.contact = self.contact case.is_deleted = False case.status = self.case_status_new case.modified = datetime(2018, 1, 3, tzinfo=utc) case.update_modified = False case.save() assigned_to_user = case.assigned_to deals = DealFactory.create_batch(size=5, tenant=self.user_obj.tenant) Deal.objects.all().update(modified=datetime(2018, 1, 1, tzinfo=utc)) deal = deals[0] deal.is_deleted = False deal.status = self.deal_status_open deal.contact = self.contact deal.modified = datetime(2018, 1, 2, tzinfo=utc) deal.update_modified = False deal.save() # Make api call. response = self.user.get(reverse(self.search_url, kwargs={'number': self.phone_number.number})) # Verify response. self._verify_response(response, assigned_to_user) # There are open cases and open deals, both have no attached notes. The deal is the most recent edited. Case.objects.filter(pk=case.pk).update(modified=datetime(2018, 3, 2, tzinfo=utc)) Deal.objects.filter(pk=deal.pk).update(modified=datetime(2018, 3, 3, tzinfo=utc)) assigned_to_user = deal.assigned_to # Make api call. response = self.user.get(reverse(self.search_url, kwargs={'number': self.phone_number.number})) # Verify response. self._verify_response(response, assigned_to_user)
def test_contact_open_case(self): """ Test having a contact with only open cases. """ cases = CaseFactory.create_batch(size=5, tenant=self.user_obj.tenant) Case.objects.all().update(modified=datetime(2018, 1, 1, tzinfo=utc)) case = cases[0] case.contact = self.contact case.is_deleted = False case.status = self.case_status_new case.modified = datetime(2018, 1, 3, tzinfo=utc) case.update_modified = False case.save() assigned_to_user = case.assigned_to # Make api call. response = self.user.get(reverse(self.search_url, kwargs={'number': self.phone_number.number})) # Verify response. self._verify_response(response, assigned_to_user)
def test_contact_open_deal_open_case_notes(self): """ Test having a contact with open deals and cases. Both with notes. """ # There are open cases and open deals, both have attached notes. The most recent note is for a case. cases = CaseFactory.create_batch(size=5, tenant=self.user_obj.tenant) Case.objects.all().update(modified=datetime(2018, 1, 1, tzinfo=utc)) case = cases[0] case.contact = self.contact case.is_deleted = False case.status = self.case_status_new case.modified = datetime(2018, 1, 3, tzinfo=utc) case.update_modified = False case.save() case_notes = NoteFactory.create_batch( size=5, tenant=self.user_obj.tenant, gfk_content_type=case.content_type, gfk_object_id=case.id) for note in case_notes: case.notes.add(note)
def test_contact_open_case(self): """ Test having a contact with only open cases. """ cases = CaseFactory.create_batch(size=5, tenant=self.user_obj.tenant) Case.objects.all().update(modified=datetime(2018, 1, 1, tzinfo=utc)) case = cases[0] case.contact = self.contact case.is_deleted = False case.status = self.case_status_new case.modified = datetime(2018, 1, 3, tzinfo=utc) case.update_modified = False case.save() assigned_to_user = case.assigned_to # Make api call. response = self.user.get( reverse(self.search_url, kwargs={'number': self.phone_number.number})) # Verify response. self._verify_response(response, assigned_to_user)
def cases(self, size, tenant): CaseFactory.create_batch(size, tenant=tenant)
def cases(self, size, tenant): CaseFactory.create_batch(size / 2, tenant=tenant) CaseFactory.create_batch(size / 2, tenant=tenant, groups=[LilyGroupFactory(tenant=tenant)])