Example #1
0
    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
Example #2
0
    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
Example #3
0
    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)
Example #4
0
    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)
Example #6
0
    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)
Example #7
0
    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)
Example #10
0
    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)
Example #11
0
    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)
Example #12
0
 def cases(self, size, tenant):
     CaseFactory.create_batch(size, tenant=tenant)
Example #13
0
 def cases(self, size, tenant):
     CaseFactory.create_batch(size / 2, tenant=tenant)
     CaseFactory.create_batch(size / 2, tenant=tenant, groups=[LilyGroupFactory(tenant=tenant)])
Example #14
0
 def cases(self, size, tenant):
     CaseFactory.create_batch(size / 2, tenant=tenant)
     CaseFactory.create_batch(size / 2,
                              tenant=tenant,
                              groups=[LilyGroupFactory(tenant=tenant)])
Example #15
0
 def cases(self, size, tenant):
     CaseFactory.create_batch(size, tenant=tenant)