Beispiel #1
0
 def test__load_session_ids_must_not_return_session_with_events_older_than_5_minutes(
         self):
     # in db we have session with last event "2018-01-18T09:43"
     now = strptime('2018-01-18 09:49', '%Y-%m-%d %H:%M')
     cmd = fill_leads.Command()
     session_ids = list(cmd._load_session_ids(now))
     self.assertEquals([], session_ids)
Beispiel #2
0
 def test__get_session_form_data_leave_only_last_events(self):
     """
     events already sorted on -finished
     :return:
     """
     session = None
     events = [
         Event(event_type='form-submitted',
               field_name='',
               open_data='submit'),
         Event(event_type='field-filled',
               field_name='email',
               open_data='*****@*****.**'),
         Event(event_type='field-filled',
               field_name='name',
               open_data='username'),
         Event(event_type='field-filled', field_name='email',
               open_data='l'),
         Event(event_type='field-filled',
               field_name='name',
               open_data='usern'),
     ]
     fill_leads.Command._load_session_events = MagicMock(
         return_value=events)
     cmd = fill_leads.Command()
     res = cmd._get_session_form_data(session)
     res = sorted([(v.event_type, v.field_name, v.open_data)
                   for k, v in res.items()])
     exp = [('field-filled', 'email', '*****@*****.**'),
            ('field-filled', 'name', 'username')]
     self.assertEquals(exp, res)
Beispiel #3
0
 def test__load_session_ids_must_not_return_session_without_events_between_from_and_to(
         self):
     # in db we have session with last event "2018-01-18T09:43:.."
     now = strptime('2018-01-18 09:45', '%Y-%m-%d %H:%M')
     cmd = fill_leads.Command()
     session_ids = list(
         cmd._load_session_ids(now, '2017-01-17', '2017-01-18'))
     self.assertEquals([], session_ids)
Beispiel #4
0
 def test__load_session_ids_must_return_session_with_5_minutes_events_old(
         self):
     # in db we have session with last event "2018-01-18T09:43:.."
     now = strptime('2018-01-18 09:45', '%Y-%m-%d %H:%M')
     cmd = fill_leads.Command()
     session_ids = list(cmd._load_session_ids(now))
     self.assertEquals([uuid.UUID('99a9086a-94b7-4807-a1a6-67614b8afaec')],
                       session_ids)
Beispiel #5
0
 def test___save_lead_url_labels(self):
     """
     events already sorted on -finished
     :return:
     """
     session = SessionStorage.objects.get(
         id='99a9086a-94b7-4807-a1a6-67614b8afaec')
     lead = Lead.objects.get(id='99a9086a-94b7-4807-a1a6-67614b8afaec')
     cmd = fill_leads.Command()
     lead_utms, lead_openstat = cmd._save_lead_url_labels(session, lead)
     self.assertEquals('utm-source-from-location', lead_utms.utm_source)
     self.assertEquals('openstat-service-from-referrer',
                       lead_openstat.service)
Beispiel #6
0
    def test__fill_form_fields_do_not_override_fieldsMappingData_and_FormData_from_techData(
            self):
        fields_mapping = [
            FieldMapping(
                target_field=Field.objects.get(id=3),
                required=True,
                html_tag='input',
                html_attr_name='name',
                html_attr_value='email',
            ),
            FieldMapping(target_field=Field.objects.get(id=1),
                         required=True,
                         html_tag='input',
                         html_attr_name='name',
                         html_attr_value='username'),
            FieldMapping(target_field=Field.objects.get(id=6),
                         required=False,
                         html_tag='input',
                         html_attr_name='id',
                         html_attr_value='id-middle-name')
        ]
        fill_leads.Command._load_pixel_fields_mapping = MagicMock(
            return_value=fields_mapping)

        events = [
            Event(event_type='field-filled',
                  field_tag='input',
                  field_name='email',
                  hash_data='*****@*****.**'),
            Event(event_type='field-filled',
                  field_tag='input',
                  field_name='username',
                  hash_data='username'),
            Event(event_type='field-filled',
                  field_tag='input',
                  field_name='name',
                  hash_data='other-name'),
            Event(event_type='field-filled',
                  field_tag='input',
                  field_id='id-middle-name',
                  field_name='middle-name',
                  hash_data='form-middle-name'),
            Event(event_type='field-filled',
                  field_tag='input',
                  field_name='name',
                  hash_data='usern'),
            Event(event_type='field-filled',
                  field_tag='input',
                  field_name='ip',
                  hash_data='ip-from-events'),
        ]
        fill_leads.Command._load_session_events = MagicMock(
            return_value=events)
        session_id = 'session_id'
        session = SessionStorage(id=session_id,
                                 ip_addr='ip-from-tech-data',
                                 domain='tech-domain')
        session.pixel = Pixel()
        lead = Lead(id=session_id)
        lead.pixel = Pixel()
        cmd = fill_leads.Command()
        res = cmd._fill_lead_fields(session, lead)

        self.assertEquals('*****@*****.**', res['email'].field_hash)
        self.assertEquals('username', res['name'].field_hash)
        self.assertEquals('username', res['username'].field_hash)
        self.assertEquals('form-middle-name', res['middle-name'].field_hash)
        self.assertEquals('ip-from-events', res['ip'].field_hash)
        self.assertEquals('tech-domain', res['domain'].field_data)