Exemplo n.º 1
0
 def test__check_lead_duplication_fail_if_your_and_over_leads_found_and_audited_by_others(
         self):
     you = User(id=1)
     your_project = Project(user=you)
     your_pixel = Pixel(project=your_project)
     someone = User(id=2)
     someone_project = Project(user=someone)
     someone_pixel = Pixel(project=someone_project)
     sometwo = User(id=3)
     sometwo_audit2 = Audit(processed=strptime('2018-02-27'), user=sometwo)
     your_lead1 = Lead(pixel=your_pixel, created=strptime('2018-02-24'))
     someone_lead2 = Lead(pixel=someone_pixel,
                          created=strptime('2018-02-25'))
     your_lead3 = Lead(pixel=your_pixel, created=strptime('2018-02-26'))
     with mock.patch(
             'collector.models.analytics.Lead.audits') as mock_manager:
         mock_manager.all.return_value = [sometwo_audit2]
         leads = [
             your_lead1,
             someone_lead2,
             your_lead3,
         ]
         res = lead_duplication._check_lead_duplication(you, leads)
         self.assertEquals(
             {
                 'success': False,
                 'resolution': 'Lead was sold 2 times',
                 'created': strptime('2018-02-26'),
                 'your_audits': [],
                 'duplicates': [strptime('2018-02-24')],
                 'sales': [strptime('2018-02-27'),
                           strptime('2018-02-25')]
             }, res)
Exemplo n.º 2
0
 def test__find_your_last_lead_none_if_no_your_leads(self):
     you = User(id=1)
     someone = User(id=2)
     someone_project = Project(user=someone)
     someone_pixel = Pixel(project=someone_project)
     someone_lead1 = Lead(pixel=someone_pixel,
                          created=strptime('2018-02-24'))
     someone_lead2 = Lead(pixel=someone_pixel,
                          created=strptime('2018-02-25'))
     leads = [
         someone_lead1,
         someone_lead2,
     ]
     yll = lead_duplication._find_your_last_lead(you, leads)
     self.assertIsNone(yll)
Exemplo n.º 3
0
 def test__find_your_last_lead_return_yll_if_your_and_other_leads(self):
     you = User(id=1)
     your_project = Project(user=you)
     your_pixel = Pixel(project=your_project)
     someone = User(id=2)
     someone_project = Project(user=someone)
     someone_pixel = Pixel(project=someone_project)
     your_lead1 = Lead(pixel=your_pixel, created=strptime('2018-02-25'))
     your_lead2 = Lead(pixel=your_pixel, created=strptime('2018-02-24'))
     someone_lead1 = Lead(pixel=someone_pixel,
                          created=strptime('2018-02-26'))
     leads = [
         your_lead1,
         someone_lead1,
         your_lead2,
     ]
     yll = lead_duplication._find_your_last_lead(you, leads)
     self.assertEquals(your_lead1, yll)
Exemplo n.º 4
0
 def test__find_duplicates_exclude_yll_and_alien_leads(self):
     you = User(id=1)
     your_project = Project(user=you)
     your_pixel = Pixel(project=your_project)
     your_lead1 = Lead(pixel=your_pixel, created=strptime('2018-02-24'))
     your_lead2 = Lead(pixel=your_pixel, created=strptime('2018-02-25'))
     yll = Lead(pixel=your_pixel, created=strptime('2018-02-26'))
     someone = User(id=2)
     someone_project = Project(user=someone)
     someone_pixel = Pixel(project=someone_project)
     someone_lead1 = Lead(pixel=someone_pixel,
                          created=strptime('2018-02-26'))
     leads = [
         your_lead2,
         yll,
         someone_lead1,
         your_lead1,
     ]
     duplicates = lead_duplication._find_duplicates(yll, leads)
     self.assertEquals([strptime('2018-02-25'),
                        strptime('2018-02-24')], duplicates)
Exemplo n.º 5
0
 def test__check_lead_duplication_fail_if_only_your_leads_found(self):
     you = User(id=1)
     your_project = Project(user=you)
     your_pixel = Pixel(project=your_project)
     your_lead1 = Lead(pixel=your_pixel, created=strptime('2018-02-24'))
     your_lead2 = Lead(pixel=your_pixel, created=strptime('2018-02-25'))
     your_lead3 = Lead(pixel=your_pixel, created=strptime('2018-02-26'))
     leads = [
         your_lead1,
         your_lead2,
         your_lead3,
     ]
     res = lead_duplication._check_lead_duplication(you, leads)
     self.assertEquals(
         {
             'success': False,
             'resolution': 'Lead has 2 duplicates',
             'created': strptime('2018-02-26'),
             'your_audits': [],
             'duplicates': [strptime('2018-02-25'),
                            strptime('2018-02-24')],
             'sales': []
         }, res)
Exemplo n.º 6
0
 def test__check_lead_duplication_fail_if_only_others_leads_found(self):
     you = User(id=1)
     someone = User(id=2)
     someone_project = Project(user=someone)
     someone_pixel = Pixel(project=someone_project)
     someone1_lead = Lead(pixel=someone_pixel,
                          created=strptime('2018-02-25'))
     someone2_lead = Lead(pixel=someone_pixel,
                          created=strptime('2018-02-26'))
     leads = [
         someone2_lead,
         someone1_lead,
     ]
     res = lead_duplication._check_lead_duplication(you, leads)
     self.assertEquals(
         {
             'success': False,
             'resolution': 'Lead was sold to you outside the system',
             'created': None,
             'your_audits': [],
             'duplicates': [],
             'sales': [strptime('2018-02-26')]
         }, res)
Exemplo n.º 7
0
 def test__check_lead_duplication_success_if_one_your_lead_found(self):
     you = User(id=1)
     your_project = Project(user=you)
     your_pixel = Pixel(project=your_project)
     leads = [Lead(pixel=your_pixel, created=strptime('2018-02-26'))]
     res = lead_duplication._check_lead_duplication(you, leads)
     self.assertEquals(
         {
             'success': True,
             'resolution': 'New lead',
             'created': strptime('2018-02-26'),
             'your_audits': [],
             'duplicates': [],
             'sales': []
         }, res)
Exemplo n.º 8
0
 def test__check_lead_duplication_success_if_one_your_lead_found_and_audited_by_you(
         self):
     you = User(id=1)
     your_project = Project(user=you)
     your_pixel = Pixel(project=your_project)
     your_audit = Audit(processed=strptime('2018-02-27'), user=you)
     your_lead = Lead(pixel=your_pixel, created=strptime('2018-02-26'))
     with mock.patch(
             'collector.models.analytics.Lead.audits') as mock_manager:
         mock_manager.all.return_value = [your_audit]
         leads = [your_lead]
         res = lead_duplication._check_lead_duplication(you, leads)
         self.assertEquals(
             {
                 'success': True,
                 'resolution': 'You already audited this lead 1 times',
                 'created': strptime('2018-02-26'),
                 'your_audits': [strptime('2018-02-27')],
                 'duplicates': [],
                 'sales': []
             }, res)